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:
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.
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.
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.
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
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
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.
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?
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
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???
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.
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.
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 :(