mikrocontroller.net

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


Autor: Momo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Joe F. (easylife)
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: Sascha W. (sascha-w)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Johannes S. (8n1)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Momo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Joe F. (easylife)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Momo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Joe F. (easylife)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der BS107A ist sehr gut, funktioniert auch mit 3.3V

: Bearbeitet durch User
Autor: Richard B. (r71)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Momo schrieb:
> Nur hat mein LDO zum einen kein Enable-Pin

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.