Forum: Mikrocontroller und Digitale Elektronik ESP8266 mit CH340 lässt sich nicht flashen


von Tim (laserranger)



Lesenswert?

Hallo zusammen,

Ich habe mir eine eigene Platine für ein Matrix-Led Display erstellt. 
Das Herz ist ein ESP-12f (ESP8266), welcher über einen CH340 geflasht 
werden soll.
Ein Screenshot der Schaltung ist im Anhang (Stromversorgung & Displays 
nicht dargestellt).

Leider kann der CH340 nicht mit dem ESP kommunizieren:
1
A fatal esptool.py error occurred: Failed to connect to ESP8266: Timed out waiting for packet header

Was ich bereits versucht habe:
- Schaltplan x-mal gecheckt auf Richtigkeit
- Flash-Parameter geprüft
- Manuellen Flash-Modus erzwungen (IO0 auf GND beim Start): Modus 
funktioniert (entsprechende Nachricht vom ESP wird gesendet)
- Pins am ESP per Oszi geprüft:
   - RXD & TXD: auf beiden findet beim Flashversuch Kommunikation statt
   - EN/RST: meines Erachtens i.O. unter Berücksichtigung der 
Vorraussetzungen für erfolgreiches booten (Espressif Dokumentation)
   - IO0/Flash-Pin: wohl als Clock-Out konfiguriert (26 MHz Signal)

Besonders der letzte Punkt macht mich stutzig. Basierend auf dem letzten 
Kommentar von hier:
https://www.esp8266.com/viewtopic.php?f=160&t=16248&start=4
... habe ich die TX Leitung vom CH340 getrennt, jedoch mit gleichem 
Ergebnis.

Ich hoffe jemand hier hat keine Tomaten vor den Augen wie ich und 
erkennt den Fehler...

Danke schonmal.

: Bearbeitet durch User
von Matthias L. (lindner8712)


Lesenswert?

Hast du eine Möglichkeit rx und tx am ESP zu Brücken?
Damit könntest du mit jedem Terminal Programm (putty, hterm) mal testen 
ob such das ankommt was du erwartest.
Check das mal...

Wenn der ESP in den Bootloader wechselt, sieht ja dannach aus wenn du 
die Meldung bekommst kannst ja eigentlich nur sein das er nix empfängt.

Die Kunstschaltung mit Reset und dem IO Pin funzt bei CH340 manchmal 
nicht wirklich gut, im Zweifelsfall manuell in den Bootloader wechseln.

von Tim (laserranger)


Lesenswert?

Wenn ich RX und TX brücke bekomme ich keine Antwort. Der ESP ist 
währenddessen aber aktiv, eventuell zieht der das high oder low?
TX vom CH340 hat definitiv Aktivität, aber näher analysiert habe ich das 
noch nicht.

Manueller Bootloader geht, aber flashen kann ich in dem Modus trotzdem 
nicht.
Wobei die Reset Schaltung am Flash-Start ja eh wieder ihr eigenes Ding 
macht.

von Matthias L. (lindner8712)


Lesenswert?

Spätestens wenn du den Reset dauerhaft auf low ziehst hält er die Füße 
still.. Da er ja im Bootloader steht halte ich es fur maximal 
unwahrscheinlich das er RX auf low zieht... Solange du das Echo nicht 
bekommst wird es auch nix mim flashen,

Hatte mal nen ähnlichen Fall, am Ende hab ich den ESP ausgelötet und 
dann festgestellt das der CH340 oder die leiterbahn /pad kaputt war

von Dieter S. (hotsystems)


Lesenswert?

Hast du den Reset des ESP-12F wirklich nicht beschaltet ?
Der sollte doch besser mit einem 10k gegen 3,3V gelegt werden.

von Tim (laserranger)


Lesenswert?

Also... ich habe jetzt nochmal ein paar Sachen versucht:
- TX/RX überbrückt und mit Oszi beobachtet: Nachrichten per USB werden 
korrekt über TX übermittelt
- an RX kommen die Signale an (ESP zieht weder high noch low), aber über 
USB sehe ich davon nichts
- Reset-Pin während o.g. zusätzlich auf low gezogen -> kein Unterschied

Der Reset Pin ist tatsächlich unbeschaltet, der ESP hat intern einen 
Pull-Up, siehe im Datenblatt Seite 13:
https://docs.ai-thinker.com/_media/esp8266/docs/esp-12f_product_specification_en.pdf

Eine zweite identische Platine funktioniert genauso wenig, daher würde 
mich ein Defekt vom CH340 wundern.

Edit: achja, habe auch die RX und TX Leitung durchgepiepst, kein Defekt 
an der Stelle

: Bearbeitet durch User
von Dieter S. (hotsystems)


Lesenswert?

Tim schrieb:
> Der Reset Pin ist tatsächlich unbeschaltet, der ESP hat intern einen
> Pull-Up, siehe im Datenblatt Seite 13:

Das Schaltbild ist mir bekannt. Ist dein ESP-12F von Ai-Thinker ?
Den bauen auch andere und da habe ich schon sparsamere Teile gesehen.

von Tim (laserranger)


Lesenswert?

> Das Schaltbild ist mir bekannt. Ist dein ESP-12F von Ai-Thinker ?
> Den bauen auch andere und da habe ich schon sparsamere Teile gesehen.

Ja, der hier: 
https://www.lcsc.com/product-detail/_Ai-Thinker-_C82891.html

von Dieter S. (hotsystems)


Lesenswert?

Ok, macht es denn Probleme, da noch einen Widerstand ran zu löten.
Nur zum testen.

von Tim (laserranger)


Lesenswert?

Einen 10k Widerstand auf 3,3V habe ich mal eben dran gelötet, leider 
keine Verbesserung.
Ich kriege aber auch weiterhin kein Echo wenn ich RX/TX verbinde, daher 
würde ich tendenziell den ESP als Verursacher ausschließen, oder nicht?

von Dieter S. (hotsystems)


Lesenswert?

Ja, das Echo sollte schon kommen.
Was mir aber noch aufgefallen ist, du verwendest den EN-Pin, im 
Wemos-Schaltbild wird der RST-Pin verwendet.

von Stephan S. (uxdx)


Lesenswert?

zum flashen: GPIO0 auf LOW gwzogen?

EN (Pin3) auf HIGH gezogen? Warum C6 an EN?

http://stefanfrings.de/esp8266/index.html

von Tim (laserranger)


Lesenswert?

Dieter S. schrieb:
> Ja, das Echo sollte schon kommen.
> Was mir aber noch aufgefallen ist, du verwendest den EN-Pin, im
> Wemos-Schaltbild wird der RST-Pin verwendet.

Ja, das geht wohl beides. Ich habe bei einer früheren Platine mit 
gleichem Problem auch mal umgelötet von EN auf RST, hat keinen 
Unterschied gemacht.

> zum flashen: GPIO0 auf LOW gwzogen?
ja, das macht die Transistorschaltung nach dem CH340 automatisch, sieht 
aufm Oszi plausibel aus
> EN (Pin3) auf HIGH gezogen? Warum C6 an EN?
ja, siehe Antwort drüber. C6 wird im Zusammenhang mit der 
Transistorschaltung empfohlen für bessere Stabilität
> http://stefanfrings.de/esp8266/index.html

von Chris K. (kathe)


Lesenswert?


von Thomas Z. (usbman)


Lesenswert?

Q5 npn? Sollte das kein PNP sein?

von Stephan S. (uxdx)


Lesenswert?

Tim schrieb:
>> EN (Pin3) auf HIGH gezogen? Warum C6 an EN?
> ja, siehe Antwort drüber. C6 wird im Zusammenhang mit der
> Transistorschaltung empfohlen für bessere Stabilität
>> http://stefanfrings.de/esp8266/index.html

Wo steht das da???

: Bearbeitet durch User
von Tim (laserranger)


Lesenswert?

Chris K. schrieb:
> GPIO15 auch beachten
> https://github.com/esp8266/esp8266-wiki/wiki/Boot-Process
gemessen LOW

> Q5 npn? Sollte das kein PNP sein?
ist das so? bei allen Referenzschaltungen sind das zwei NPN

> Wo steht das???
hier: 
https://pcbartists.com/design/embedded/esp32-ch340-programmer-schematic/

von Stephan S. (uxdx)


Lesenswert?


: Bearbeitet durch User
von Tim (laserranger)


Lesenswert?

Der C6 hält EN eine kurze Zeit LOW, damit die Transistorschaltung 
funktioniert.
Aber da fehlt wohl tatsächlich noch ein Pull-Up am EN. Ich versuche das 
später mal.

von Thomas G. (Firma: Frickelhauptquartier) (taximan)


Lesenswert?

Tim schrieb:

> Aber da fehlt wohl tatsächlich noch ein Pull-Up am EN. Ich versuche das
> später mal.

Ich habe EN immer direkt auf high gezogen, läuft damit. 
Pull-Up-Widerstand dürfte fehl am Platze sein.

: Bearbeitet durch User
von Tim (laserranger)


Lesenswert?

So, ich habe wieder Zeit gefunden mich damit zu beschäftigen.
Ich habe alles mögliche versucht, komme aber immer noch nicht weiter...

- EN -> 10k Pull-Up
- GPIO15 -> 10k Pull-Down
- GPIO2 -> 10k Pull-Up
- GPIO0 -> 10k Pull-Up

Momentan ist alles o.g. gleichzeitig drin, keine Veränderung. Das 
einzige was sich je verändert hat war, als ich GPIO2 per 10k auf low 
gezogen habe, dann hat die interne LED beim flashen anders geblinkt.
Das flashen war aber trotzdem nicht erfolgreich, gleicher timeout wie 
auch sonst.

Mit jeder Veränderung bin ich noch ratloser als vorher :(

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.