Ich habe mir mal ein eigenes ESP32 Dev Board zusammengestrickt. Leider funtioniert die Programmierung mit dem esptool.py nicht. Der SOC resetet nicht und geht auch nicht in den Download. DTR und RTS werden vom Programmieradapter sauber gesendet. Könntet ihr mal über die Schaltung schauen?
Der 10k Pullup an IO0 kommt mir irgendwie spanisch vor. Der gehört eigentlich an den EN. Zusätzliche 100nF von EN nach GND schaden auch nicht.
Hi Christopher, ja, danke - den Pullup hab ich rausgenommen. Keine Ahnung wo ich das gesehen habe.
Hmm, ich habe jetzt einfach mal platt DTR an EN und RTS an DIO gelötet. Funktioniert 1A. Wozu das rumgehampel mit den Transistoren?
> Wozu das rumgehampel mit den Transistoren?
Das dürfte daran liegen, dass die DTR- und RTS-Leitung von verschiedenen
Terminalprogrammen und in verschiedenen Situationen unterschiedlich
genutzt werden. Wenn der USB-Adapter nicht initialisiert ist (z.B. nur
Stromversorgung angeschlossen aber kein USB-Host) oder wenn der PC den
Serial Port nicht geöffnet hat, sind beide Signale Idle HIGH. Ein
Terminal, mit dem du mit dem Gerät kommunizieren möchtest, könnte sie
durch die Verbindung aber Active LOW setzen. Außerdem wechseln diese
Signale kurz nach dem Anschließen des USB-Adapters an den PC öfter hin
und her. All das habe ich heute mehrfach beobachtet, als ich meine
Schaltung analysiert habe.
Das blöde ist jetzt, wenn jemand das Signal auf LOW setzt, das du fest
mit dem EN-Eingang des ESP32 verbunden hast, dann ist der Chip im Reset
und kommt da auch nicht mehr raus, bis die Verbindung wieder geschlossen
wird. Die Idee, die ich so verstanden habe, ist, dass mit diesem
XOR-Gatter (oder sowas ähnlichem) beide Leitungen (EN und IO0) HIGH
gehalten werden, wenn entweder beide Signale (DTR und RTS) gleichzeitig
HIGH oder gleichzeitig LOW sind. Also die beiden Zustände, die auftreten
können, wenn man nichts besonderes macht. Nur wenn die Signale
unterschiedlich gesetzt werden, passiert was.
Soweit die Theorie. In der Praxis scheint das auf den üblichen
Dev-Boards wohl zu laufen. Jedenfalls hatte ich da nie Probleme. Beim
nach Schema nachgebauten Aufbau wackelt es aber immer wieder. Uploads
starten nicht oder der Chip resettet mehrmals beim Anschließen oder beim
Schließen des Serial-Monitors. Ich bin mir noch nicht sicher, wie ich
damit umgehe. Vielleicht lasse ich diese Beschaltung in fertigen
Produkten auch einfach weg und verlange für Firmware-Uploads das Stecken
eines Jumpers und manuelles Ab- und Anstecken des USB-Kabels.
Danke für den Link. Die wesentlichen Informationen sind ziemlich versteckt in dem langen Thread. Ich habe meinen Aufbau jetzt geändert. Den 100nF-Kondensator zwischen IO0 und GND habe ich behalten, den Kondensator zwischen EN und GND habe ich auf 10µF vergrößert. Ohne den kleinen geht's nicht. Und beim großen haben 4,7µF auch nicht gereicht. Ich hatte beim Verbinden oder Trennen mit PuTTY sonst immer wieder mal Resets. Außerdem mehrere Resets beim Anschließen an den PC-USB-Port. Mit diesen Keramik-Kondensatoren (und natürlich den beiden Transistoren) läuft es nach einigen Tests stabil!
Yves G. schrieb: > Danke für den Link. Die wesentlichen Informationen sind ziemlich > versteckt in dem langen Thread. Ist doch schön, zu hören, dass es geholfen hat. Danke für Deine Rückmeldung.
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.