Forum: Mikrocontroller und Digitale Elektronik ESP 8266 USB Programmer Reset Problem


von Kai M. Tegtmeier (Gast)


Lesenswert?

Hallo, zusammen! Nach langer Abwesenheit melde ich mich auch mal wieder 
in diesem Forum. Ich beschäftige mich zur Zeit mit der Programmierung 
vom ESP 8266-01 mit dem USB Programmer von Reichelt (diesem hier: 
https://www.reichelt.de/entwicklerboards-esp8266-usb-programmer-debo-esp8266-usb-p215827.html?&trstct=pos_1)

Ich benutze die aktuelle Arduino IDE 1.8.7 mit der ESP 8266 Board 
Erweiterung (also Programmierung über ESPTOOL). Ich bin noch nicht ganz 
in der Thematik drin, habe daher ein paar Fragen:

- welchen Programmer stelle ich sinnvollerweise für meine Hardware 
(s.o.) in der Arduino IDE ein? AVRisp mk II scheint zu funktionieren, 
aber gibts vielleicht noch einen, der das unten beschriebene Problem 
nicht hat?

- Der erste Upload nach dem Einstecken klappt immer. Der zweite bricht 
mit Fehlermeldung warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed
error: espcomm_upload_mem failed

ab. Ich muss dann den Programmer incl. ESP8266 einmal aus dem USB-Port 
rausziehen und wieder reinstecken. Scheint ja ein Problem mit dem 
Programmiermodus zu sein. Programmer und ESP8266 haben keinen 
Reset-Taster an Bord. Gibts eventuell noch eine elegantere Lösung, den 
ESP8266 wieder in den Programmiermodus zu bringen?

Vielen Dank im Voraus!
Gruß
Kai Markus

von Michael U. (amiga)


Lesenswert?

Hallo,

Kai M. Tegtmeier schrieb:
> Scheint ja ein Problem mit dem
> Programmiermodus zu sein. Programmer und ESP8266 haben keinen
> Reset-Taster an Bord. Gibts eventuell noch eine elegantere Lösung, den
> ESP8266 wieder in den Programmiermodus zu bringen?

Einen Resettaster an den "Programmer" anbauen...

Oder wenn man nicht löten will und etwas zuviel Geld hat diese Version 
nehmen:

https://www.ebay.de/itm/NEU-ESP8266-Flasher-fur-ESP-01-ESP-11-ESP32-Arduino-NodeMCU-USB-Seriell-CP2104-/282830066779?hash=item41d9fc545b

Die hat auch die Resetlogik der NodeMCU drauf, man muß aus der 
ArduinoIDE also garkeine Tasten drücken, nur ptogrammieren.

Gruß aus Berlin
Michael

: Bearbeitet durch User
von Timo N. (tnn85)


Lesenswert?

Soweit ich das hier schon gelesen habe, ist der Spannungsregler auf dem 
"Programmer" (eigentlich nur ein USB auf Seriell-Wandler) zu schwach für 
die Versorgung des ESP8266-01. Vermutlich saugt das Board nach dem 
ersten Programmieren dem Programmer den Strom weg und der Programmer ist 
in einem undefinierten Zustand, der erst durch erneutes Verbinden mit 
dem PC behoben wird?

Versuch mal den ESP8266 extern mit 3,3V zu versorgen.
Die Einstellung Programmer in der IDE bezieht sich nur auf AVR 
Mikrocontroller und nicht auf den ESP8266. Damit wird nur ein so 
genannter Bootloader auf den AVR gebrannt, damit er überhaupt als 
Arduino über eine serielle Schnittstelle programmierbar ist.
Wie das die IDE beim ESP8266 macht... keine Ahnung. Vermutlich bei jedem 
programmieren des ESP8266 implizit.

von Michael U. (amiga)


Lesenswert?

Hallo,

eigentlich sieht es auf dem Bild des Programmers nach einen AMS1117 als 
3,3V-Regler für den ESP aus, das sollte gehen. Evtl. noch 100µ parallel 
zum Ausgang des Reglers zusätzlich.

Software in der IDE sind die ESP-Python-Tools, die IDE will nur die COM 
wissen und ruft das intern auf wenn ein ESP als Board ausgewählt ist.
Ich vermute eher, der ESP landet irgendwie falsch. Wenn die mit dem 
Schalter GPIO0 schalten will der ESP einen Reset bei GPIO0 = Low. Dann 
geht er in den Programmiermode. Danach kann GPIO0 wieder auf H, schon 
während des Flashens.
Bleibt der auf Low startet der ESP nach Ende des Flashens nicht das 
Programm sondern geht direkt wieder in den Programmiermode.

Ich finde die Lösung ohne Resetmöglichkeit am ESP zumindest 
fehleranfällig.

Gruß aus Berlin
Michael

von Kai M. Tegtmeier (Gast)


Lesenswert?

Hallo, und vielen Dank für die hilfreichen Antworten!

Als Erstmaßnahme habe ich jetzt erst mal den Programmer mit einem 
Reset-Taster versehen. Das Flashen klappt jetzt auch, wenn auch nicht 
immer. Gefühlt wird die Ausbeute schlechter, wenn ich die serielle 
Geschwindigkeit auf > 115200 setze.

Eventuell schaue ich noch mal, ob ich nicht einen Arduino Uno als 
Programmieradapter nutzen kann, den habe ich noch rumliegen....

Aber ihr habt Recht, bei dem Programmer auf den Reset-Taster zu 
verzichten, halte ich für nicht wirklich gelungen...

Viele Grüße aus Hamburg
Kai Markus

von Stefan F. (Gast)


Lesenswert?

Kai M. Tegtmeier schrieb:
> Gefühlt wird die Ausbeute schlechter, wenn ich die serielle
> Geschwindigkeit auf > 115200 setze.

Das ist bei mir auch gelegentlich so, trotz eigener Stromversorgung. 
Deswegen flashe ich den Chip nur noch mit 115200 Baud. So viel zeit muss 
sein.

von Michael U. (amiga)


Lesenswert?

Hallo,

gelegentlich lasse ich gelten bei losen ESP8266-03/07/12 Modulen, einem 
recht alten ESP8266-01 und USB-Adapter mit Dupontkabeln dazwischen lasse 
ich gelten.
Ansonsten gehen CH34x, CP210x und FTDI hier immer zuverlässig mit 921600 
bei allen ESp-Modulen (NodeMCU, Wemos D1 mini und noch ein paar Exoten.
Serielle Konsole steht mehr gewohnheitsmäßig auf 115200, manchmal setze 
ich auch 74880auch bei der seriellen im ESP wenn ich die Bootmeldungen 
mitlesen will.

Gruß aus Berlin
Michael

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.