ESP8266 Reset bei Interrupt-Signal

Gast #5019852
Lesenswert?

Hallo Leute!

Ich hoffe, ihr könnt mir helfen. Vermutlich hab ich mich total verrant.

Ich habe einen ESP8266-12 (der tut auch soweit wunderbar) und einen 
MCP21037, auch das funktioniert.

Nun möchte ich bei Tastendruck mit dem Interrupt des MCP den ESP aus dem 
Tiefschlaf holen. Im Prinzip muss ich ja nur RESET kurz auf Ground 
ziehen... und mit einem extra Taster tut das auch wie es soll.
Aber ich steh völlig auf dem Schlauch, wie ich das vom MCP aus 
hinbekomme. Denn den Interrupt direkt verwenden kann ich nicht, da der 
nicht nur ein kurzes Signal abgibt.
Ich hätte hier noch ein NE555 rumliegen... aber mit dem bekomm ich nur 
Positiv-Impulse (oneshot monostable) ... wie zieh ich RESET kurzzeitig 
auf Ground? Bestimmt denke ich nach meinen 100 verschiedenen Versuchen, 
die ich schon unternommen hab, einfach viel zu kompliziert.

Eine Idee war auch noch (hatte ich auch hier im Forum gefunden) mit 
einem ATTiny85 und PCINT. Aber mein Programmer ist verschollen und ich 
wollte jetzt keinen Neuen kaufen... der muss ja wieder auftauchen!

Hat jemand eine tolle Idee für mich? :)

Danke
#5019891
Lesenswert?

wenn der Ausgang des MCP Low Aktiv ist, sollte es reichen diesen über 
einen 33nF - 100nF Kondensator an den RESET-Pin des ESP anzuschließen. 
Damit kommt nur eine ein kurzer Impuls am ESP an wenn der Ausgang nach 
Low schaltet. Ansonsten kann man den Ausgang vorher noch mit einem 
Transistor invertieren.

Sascha
#5019987
Lesenswert?

Ich hatte vor einer Weile die gleiche Idee und wollte dabei auch noch 
einen so gering wie möglichen Standbyverbrauch haben. Habs dann so 
gemacht: https://github.com/8n1/esp8266-16x-smart-button

Stromverbrauch im Standby geht gegen Null.

Was ich allerdings nicht so gut finde ist dass man das System zuerst 
"initialisieren" (interrupts auf dem MCP konfigurieren) muss. Da ist mir 
keine schöne Lösung eingefallen.

Der interrupt pin vom MCP kann als active HIGH oder active LOW 
konfiguriert werden. Ich hab den Interrupt pin an den enable pin vom LDO 
gehängt. P Kanal MOSFET vor dem Regler wäre die alternative gewesen.


Achja, anstatt den ESP zu resetten könnte man den ESP auch über dessen 
CH_PD pin komplett deaktiviern und aktivieren. Ist glaub einfacher da 
man den nicht"pulsen" muss.
Gast #5020707
Lesenswert?

@Joe: Danke, genau sowas hab ich gesucht. Ich werde das erstmal testen, 
aber sollte funktionieren.


@Sascha: Das klingt fast zu einfach um zu funktionieren. Vielleicht ist 
es doch nicht ganz so einfach? Denn ich hab es damit nicht 
hinbekommen... oder ich bin zu doof. :/


@Johannes: Danke für den Hinweis, aber das kannte ich schon. Nur hat 
mein LDO zum einen kein Enable-Pin und zum anderen sorgt das dafür, dass 
der ESP immer komplett starten muss, weil er seine Spannung ja ganz 
verliert. Das wollte ich gerne vermeiden. Deswegen kommt auch die 
CH_PD/Enable Variante nur äußerst ungern in Frage.

Ich hab mir in der Mittagspause ein paar unterschiedliche nMOSFET beim 
örlichen Laden besorgt. Dann kann ich das lange Wochenende weiter 
basteln und tüfteln.
#5020723
Lesenswert?

Momo schrieb:
> Ich hab mir in der Mittagspause ein paar unterschiedliche nMOSFET beim
> örlichen Laden besorgt.

Du benötigst vor allem einen mit möglichst geringer Gate-Threshold 
("logic level mosfet").
Der 2n7002 funktioniert gut bei 5V, bei 3.3V auch gerade noch so, wenn 
er keine großen Ströme schalten muss, was hier der Fall ist.
Gast #5020773
Lesenswert?

Ich habe leider nicht exakt den 2n7002 auf die Schnelle bekommen können. 
Die Auswahl war recht überschaubar, aber ich denke, ich hab was 
passendes gefunden: BS107A
Hab ja zur not auch noch die 5V von vor dem LDO, die ich nutzen könnte 
zum Schalten (darf nur nicht an den ESP, der verträgt das nicht, das 
weiß ich).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren