Forum: Analoge Elektronik und Schaltungstechnik äquivalent zu interrupt change gesucht


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von Daniel S. (schuballaa)


Lesenswert?

Hallo, ich wollte den esp8266 benutzen um ihn aus dem deepsleep mittels 
interrupt change zu wecken.

Im deepsleep allerdings reagiert er nicht auf interrupts.

Als workaround habe ich einen esp32 genommen der auf 1/0 interrupt 
reagiert.

Dennoch würde mich interessieren ob und wenn wie man so etwas ohne einen 
weiteren Microcontroller umsetzten könnte.

ich suche also etwas, was bei änderung (reed kontakt) also Hight zu Low 
oder Low zu High den esp8266 aufweckt (kurzes 0 an rst pin) und dann 
wieder den zustand annimmt vom reed sensor.

Mich interessiert nur, wie man es ohne mcu lösen würde.... nicht wie der 
esp8266 evtl. doch dazu gebracht werden könnte... ich habe wie gesagt 
eine microcontroller lösung, würde mich dennoch sehr dafür 
interessieren, einmal um was zu lernen und 2. weil ich lieber den 
esp8266 verwenden würde.

vielen dank
Daniel

von ergo70 (Gast)


Lesenswert?

IMHO kann man den 8266 extern nur über den RST Pin wieder aus dem 
deepsleep aufwecken.

von Daniel S. (schuballaa)


Lesenswert?

ergo70 schrieb:
> IMHO kann man den 8266 extern nur über den RST Pin wieder aus dem
> deepsleep aufwecken.

deine Meinung wird durch meine Erfahrung gestützt...

von ergo70 (Gast)


Lesenswert?

Vielleicht den Wert in einem PISO Register wie dem 74HC165 
zwischenspeichern und nach dem Aufwachen auslesen?

von Daniel S. (schuballaa)


Lesenswert?

und wie das aufwecken triggern?

von Daniel S. (schuballaa)


Lesenswert?

ich glaube es geht eher in richtung Taktflankengesteuertes D-Flipflop...

von foobar (Gast)


Lesenswert?

Den Reed-Kontakt auf einen Pin geben (zum späteren Abfragen) und 
zusätzlich über eine Kondensator auf den RST-Pin legen.

von Daniel Stingl (Gast)


Lesenswert?

foobar schrieb:
> Den Reed-Kontakt auf einen Pin geben (zum späteren Abfragen) und
> zusätzlich über eine Kondensator auf den RST-Pin legen.

Würde nicht in beide Richtungen funktionieren

von Stefan F. (Gast)


Lesenswert?

Daniel S. schrieb:
> ich suche also etwas, was bei änderung (reed kontakt) also Hight zu Low
> oder Low zu High den esp8266 aufweckt (kurzes 0 an rst pin) und dann
> wieder den zustand annimmt vom reed sensor.

Das nennt sich Monoflop.

von Daniel S. (schuballaa)


Lesenswert?

wie sähe ein schaltplan konkret aus? so kann ich das nicht 
nachvollziehen

von Stefan F. (Gast)


Lesenswert?

Daniel S. schrieb:
> wie sähe ein schaltplan konkret aus? so kann ich das nicht
> nachvollziehen

Benutze mal Google. Dafür gibt es wirklich reichlich Aufsätze und 
Schaltungsvorschläge im Netz. Sogar im Elektronik Kompendium und in der 
Artikelsammlung von mikrocontroller.net. Oder wenn man sich ganz dumm 
stellt: bei Wikipedia, kein Scherz.

von Matthias D. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo, mit dem Standard-Baustein 74HC123

* Nexperia / NXP: 
https://www.nexperia.com/products/analog-logic-ics/synchronous-interface-logic/multivibrators/74HC123D.html
* Datasheet 
https://assets.nexperia.com/documents/data-sheet/74HC_HCT123.pdf

kann man mit minimalem Bauteilaufwand auf beide Flanken triggern und den 
gewünschten Reset-Impuls erzeugen (hier 100ms).

Der IC hat auch schon Schmitt-Trigger an den Eingängen für schlechte 
Flanken. Muss man mal aufbauen und testen mit den realen Input-Signalen. 
Auch ob das Retrigger-Verhalten korrekt ist.

Für den Rest siehe Schaltung im Anhang.

von Daniel S. (schuballaa)


Lesenswert?

Matthias D. schrieb:
> Hallo, mit dem Standard-Baustein 74HC123
>
> * Nexperia / NXP:
> 
https://www.nexperia.com/products/analog-logic-ics/synchronous-interface-logic/multivibrators/74HC123D.html
> * Datasheet
> https://assets.nexperia.com/documents/data-sheet/74HC_HCT123.pdf
>
> kann man mit minimalem Bauteilaufwand auf beide Flanken triggern und den
> gewünschten Reset-Impuls erzeugen (hier 100ms).
>
> Der IC hat auch schon Schmitt-Trigger an den Eingängen für schlechte
> Flanken. Muss man mal aufbauen und testen mit den realen Input-Signalen.
> Auch ob das Retrigger-Verhalten korrekt ist.
>
> Für den Rest siehe Schaltung im Anhang.

Endlich mal eine Hilfreiche Antwort die ich auf dem steckbrett Probieren 
kann. Ich danke dir.

von Mario M. (thelonging)


Angehängte Dateien:

Lesenswert?

Funktioniert nur nicht. Zum Triggern auf beide Flanken empfiehlt TI 
obige Schaltung.

von Matthias D. (Gast)


Angehängte Dateien:

Lesenswert?

Mario M. schrieb:
> Funktioniert nur nicht. Zum Triggern auf beide Flanken empfiehlt TI
> obige Schaltung.


Ja das stimmt. Man muss wohl beide Monoflops benutzen im IC, weil der 
andere Eingang jeweils konstanten Pegel haben muss.

Und später beide Signale auf OR-Gate 74HC32 führen.

von Matthias D. (Gast)


Lesenswert?

Mario M. schrieb:
> Funktioniert nur nicht. Zum Triggern auf beide Flanken empfiehlt TI
> obige Schaltung.

@Daniel S. möchte **jeweils einen Impuls** für H->L und L->H erzeugen. 
Die TI Schaltung mit der /Q-Rückführung generiert das so nicht glaube 
ich.

Naja, die Grund-Schaltung sollte jetzt klar sein.

von c-hater (Gast)


Lesenswert?

Matthias D. schrieb:

> Ja das stimmt. Man muss wohl beide Monoflops benutzen im IC, weil der
> andere Eingang jeweils konstanten Pegel haben muss.

Jepp.

> Und später beide Signale auf OR-Gate 74HC32 führen.

Oder ein "wired OR" aus zwei Dioden und einem Widerstand. Der Widerstand 
ist typisch sowieso schon da, bleiben also die zwei Dioden. 
Sinnvollerweise Schottky. BAT48 o.ä.

Im konkreten Fall könnte man es allerdings wohl bei einem Monoflop 
belassen. Hier hilft, was sonst stört: mechanische Kontakte prellen.

D.h.: jeder Pegelwechsel durch den Reed-Kontakt produziert in 
Wirklichkeit eine kurze Folge von Pegelwechseln in beide Richtungen.

von Daniel Stingl (Gast)


Lesenswert?

Gegen pellen ginge ja ein kleiner kondensator

von Stefan F. (Gast)


Lesenswert?

Daniel Stingl schrieb:
> Gegen pellen ginge ja ein kleiner kondensator

Er will das Prellen ausnutzen, nicht unterbinden.

von Matthias D. (Gast)


Angehängte Dateien:

Lesenswert?

c-hater schrieb:
> Oder ein "wired OR" aus zwei Dioden und einem Widerstand.

Ja, Dioden OR-Gate hatte ich auch schon gedacht.

Eine Korrektur: Die Pegel am Eingang waren genau falsch herum. Damit es 
hier jetzt richtig steht, die richtige Version im Anhang.

von Stefan F. (Gast)


Lesenswert?

Da der Reset Eingang des ESP ohnehin LOW Aktiv ist könnte man auch einen 
NPN Transistor mit zwei Widerständen vor der Basis an 1Q und 2Q 
anschließen. Das wäre dann ein NOR Gatter,

von Daniel S. (schuballaa)


Lesenswert?

der esp wird ja resettet, man kann im programm ha dann nach dem 
aufwachen einen debounce delay implementieren. das prellen ist 
vernachlässigbar.

von Daniel S. (schuballaa)


Lesenswert?

vielen Dank, die bauteile sind eh noch unterwegs :)

von Matthias D. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Da der Reset Eingang des ESP ohnehin LOW Aktiv ist könnte man auch einen
> NPN Transistor mit zwei Widerständen vor der Basis an 1Q und 2Q
> anschließen. Das wäre dann ein NOR Gatter,

Ja, je nach verwendeten Ausgängen der Monoflops ist ein AND-Gate oder 
NOR-Gate hinten.

In Dioden-Logik, klassisches Transistor-Gater (auch 
Single-Transistor-NOR möglich) oder 74HCXXX-Gatter ...

/1Q und /2Q verwenden, L-Pegel durchreichen als L-Pegel
1
/1Q /2Q RST (active low)
2
L   L   L
3
L   H   L
4
H   L   L
5
H   H   H

=> AND-Gate verwenden.

ODER

1Q und 2Q verwenden, H-Pegel durchreichen als L-Pegel
1
1Q  2Q  RST (active low)
2
L   L   H
3
L   H   L
4
H   L   L
5
H   H   L

=> NOR-Gate verwenden.

von Apollo M. (Firma: @home) (majortom)


Lesenswert?

Daniel S. schrieb:
> Endlich mal eine Hilfreiche Antwort die ich auf dem steckbrett Probieren
> kann. Ich danke dir.

Äh, hilfreich?!
Statt dem Hühnerfuter nimmt man einen Slave uC e.g. pic12/16xx und hat 
dann auch noch einen timed watchdog/sleep mode, better adc, ...

Echt rückwärtsgewandt euer Rumgespiele! Wenn schon mit uC, dann bestimmt 
nicht unnötig kombiniert mit diskreter Logik!

von Stefan F. (Gast)


Lesenswert?

Apollo M. schrieb:
> Echt rückwärtsgewandt euer Rumgespiele! Wenn schon mit uC, dann bestimmt
> nicht unnötig kombiniert mit diskreter Logik!

Der TO möchte aber genau diese diskrete Logik durch Ausprobieren kennen 
lernen. Das wird kein Design zur Massenproduktion.

von Peter D. (peda)


Lesenswert?

Daniel S. schrieb:
> Im deepsleep allerdings reagiert er nicht auf interrupts.

Doch, man kann ihn mit dem Timer zyklisch aufwecken.
So ein Kontakt ist ja recht träge. Es sollte also reichen, ihn alle 50ms 
aufzuwecken und den Kontakt abzufragen.

Man sollte aber erstmal ein Strombilanz aufstellen, vielleicht reicht ja 
der Lightsleep mit 150µA schon aus.

Die ESP8266 und ESP32 scheinen wohl DRAM zu benutzen, der zyklisch 
refresht werden muß. Daher der Deepsleep, der den Strom zum Refreshen 
abschaltet.

Die meisten anderen MCs haben intern SRAM, d.h. ziehen <1µA bei Erhalt 
des RAM. Ein extra Deepsleep benötigen sie daher nicht.

von Stefan F. (Gast)


Lesenswert?

Peter D. schrieb:
> Es sollte also reichen, ihn alle 50ms
> aufzuwecken und den Kontakt abzufragen.

Aber das Aufwachen dauert beim ESP8266 lange, ich meine es war mehr als 
150ms. Dann wäre er mehr wach, als im Schlaf.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.