Forum: Mikrocontroller und Digitale Elektronik ESP8266 Reset bei Interrupt-Signal


von Momo (Gast)


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

von Joe F. (easylife)


Lesenswert?

Mit einem n-channel Mosfet (z.B. 2N7002).

https://i.stack.imgur.com/7vbjq.png

Wenn am Gate ein High anliegt, wird er leitend, und zieht dir den Reset 
auf GND.
Zu empfehlen ist noch ein Pulldown am Gate (z.B. 10K), damit der Fet 
immer einen definierten Zustandt hat.

: Bearbeitet durch User
von Sascha W. (sascha-w)


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

von Johannes S. (8n1)


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.

von Momo (Gast)


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.

von Joe F. (easylife)


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.

von Momo (Gast)


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).

von Joe F. (easylife)


Lesenswert?

Der BS107A ist sehr gut, funktioniert auch mit 3.3V

: Bearbeitet durch User
von Richard B. (r71)


Lesenswert?

Momo schrieb:
> Nur hat mein LDO zum einen kein Enable-Pin

Wie viel zieht der so? 40-100µA?

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.