Hallo Ich arbeite mit dem ESP-01 WiFi Modul. Jetzt ist es mir aber lästig, immer die Buttons für RST und GPIO0 in der richtigen Reihenfolge zu drücken, um in den Programmiermodus zu gelangen; Ziel soll ein "Arduino" Stil sein, bei dem CTS (?) auf LOW geht und dann den Bootloader startet. Aufgabenstellung ist trivial, aber tatsächlich funktioniert es nicht (habe gerade einen Aufbau mit µC -overkill) RST low, nach ca 200ms GPIO0 auf LOW, nach weiteren ca 200ms RST auf High, dann 200ms und GPIO0 auf High. Leider komme ich damit nicht in den Prog.modus, auch mit Zeiten *10 kein Erfolg. Gibt es hier gewisse Mindestanforderungen an die Länge der Low-Zustände? Danke schonmal vorab Gruß Timo
Hallo, schau Dir mal an, wie NodeMCU das macht, zumindest funktioniert es damit aus der IDE. Gruß aus Berlin Michael
Tim schrieb: > RST low, nach ca 200ms GPIO0 auf LOW, nach weiteren ca 200ms RST auf > High, dann 200ms und GPIO0 auf High. Ein Timing gibt es da garnicht. Einfach GPIO0 auf low (Jumper/Taster) und dann auf die Resettaste drücken. Wenn man in den Kommando-Modus will, GPIO0 auf high (Pullup, Jumper weg/Taster nicht drücken) und auf Reset drücken. Es kommt nur darauf an, welchen Zustand GPIO0 am Ende des Resets hat. Was wann vorher und nachher passiert ist egal, ebenso wie lange Reset gedrückt wird. Ich verwende esptool.py und einen FTDI USB-seriell Adapter. Im Readme von esptool steht: > esptool uses the RTS and DTR modem status lines to automatically > enter the bootloader. Connect RTS to CH_PD (which is used as > active-low reset) and DTR to GPIO0. So habe ich das mit dem Adapter verdrahtet und alles geht automatisch. MfG Klaus
@Tim: Mit dem µC funktioniert es genau so, wie du es beschrieben hast. Wenn es nicht funktioniert, hast Du im Aufbau irgend einen Fehler. Hier wurde es ebenfalls so umgesetzt und es funktioniert tadellos: http://www.forum-raspberrypi.de/Thread-projekt-esp8266-programmierer-version-2-0
:
Bearbeitet durch User
OK, danke für die Hinweise. Eine Frage stellt sich mir noch: - bei der Programmierung mit der NodeMCU Schaltung: muss da ein bestimmtes Board oder eine Programmierung in der Arduino IDE eingetellt werden, damit die Steuersignale korrekt angesprochen werden? Gruß Tim
Tim schrieb: > bei der Programmierung mit der NodeMCU Schaltung: muss da ein > bestimmtes Board oder eine Programmierung in der Arduino IDE eingetellt > werden, Ja! Das NodeMCU findest du in der Boards Liste.
Nachtrag und Abschluss: - Problem waren irgendwelche HF Störungen, die den ESP nicht aus dem Reset kamen liesen; logische High Pegel lag "scheinbar" an -> Oszi sagte es jedenfalls. Einen 100nF von Reset nach Masse und alles war gut -> also doch HF Störungen, zumal das Phänomen mit einem 10cm angeschlossenn Kabel nachvollziehbar war. - mein Ansatz mit dem µC funktioniert nun tadellos - eine andere Resetschaltung ist dies hier: http://www.ba0sh1.com/esp8266-breakout-board-im-tindie/ Aufgrund der langen Ladecharakteristik ist diese nicht für die automatische Programmierung nutzbar, aber eine gute Ein-Knopf Alternative, da quasi Reset und Programmierung mit einem Taster bedient wird und sich über die Drucklänge definiert (-> Ladekurve C) - Die NodeMCU hat einen Haken: sie benötigt zwei Pins. Sofern man die Verriegelung nicht braucht, kann man auch direkt RTS und DTR auf Reset und GPIO0 führen. Nebenbei: Die Ansteuerung der Pins wird auch beim "Generic ESP8266" ausgeführt, sprich es muss nicht zwangsläufig ein anderes Board ausgewählt werden. - da mein Wunsch nach einer Ein-Pin Lösung noch aussteht, werden ich jetzt mal probieren mit einem Monoflop zu arbeiten, sprich DTR liefert das Triggersignal und GPIO0 wird entsprechend angesteuert.
Hallo, Monoflop sollte ja kein Problem sein, es muß ja GPIO0 nur noch kurz auf Low bleiben wenn Rest wieder High ist. Mehr als ein paar ms wird der ESP-Bootloader ja nicht brauchen um die beiden Pins für den Bootmode abzufragen. Gruß aus Berlin Michael
Tim schrieb: > Nebenbei: Die Ansteuerung der Pins wird auch beim > "Generic ESP8266" ausgeführt, sprich es muss nicht zwangsläufig ein > anderes Board ausgewählt werden. Ist es nicht beim NodeMCU invertiert? (habe selber keinen)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.