ESP-WROOM-32-Layout USB-UART

Ich möchte, dass mein Layout Buchsenleisten enthält, um CP2102 MICRO USB mit dem 6-poligen UART TTL-Modul zu verbinden, damit ich es beim Hochladen des Codes einfach auf meine Leiterplatte kleben kann. Die 5V für das ESP werden während des Betriebs von einer externen Quelle geliefert.

Die Sache ist, dass der CP2102 die folgenden Pins hat: 5 V, 3,3 V, GND, TX, RX, DTR:

oberes Foto der Leiterplatte

Ich habe im Schema von ESP32, Abschnitt Micro-USB 5V und USB-UART nachgesehen und festgestellt, dass ich zum ordnungsgemäßen Hochladen des Codes den RTS-Pin von CP2102 benötige, auf den nicht zugegriffen werden kann:

serielle Verkabelung

Es scheint also eine fehlende Pinbelegung (RTS) zum Hochladen des Codes zu geben. Ich habe kein Modul für Micro-USB&UART gefunden, das alle gewünschten Pins enthält.

Gibt es eine Lösung dafür? Oder sollte ich den Micro-USB-5-V- und USB-UART-Abschnitt in meinem Layout implementieren?

Danke.


Aktualisieren:

Also habe ich das Board bekommen und der USB-zu-UART-Abschnitt sieht so aus:

schematische Darstellung

Ich habe versucht, eine Skizze in das Board hochzuladen, und habe folgende Meldung erhalten:

Connecting........_____....._____....._____....._____....._____....._____....._____....._____....._____....._____

Ich habe wie immer bei ESP32 die BOOT-Taste gedrückt und nichts passiert! Ich habe auch Spannungen über IO0 gemessen: 3,3 V und 0 V, wenn ich den Knopf drücke.

Endlich bekam ich die Nachricht:

A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header

Mein Design sieht genauso aus wie in der Referenz vorgeschlagen, aber ich konnte immer noch keine Skizze hochladen.

Sie müssen den Programmierprozess untersuchen, um zu verstehen, wofür diese im Vergleich zu den möglichen Alternativen verwendet werden, und Ihre eigene Entscheidung treffen.
Hast du es zum Laufen gebracht? Danke

Antworten (2)

Benötigen Sie RTS? Ja und nein. Gemäß den Referenzschemata für den ESP-WROOM-32 wird der RTS-Pin (zusammen mit DTR) benötigt, wenn Sie möchten, dass der Programmierprozess automatisch neu gestartet und das ESP-Gerät in den richtigen „Boot“-Modus zum Programmieren und dann versetzt werden kann automatisch neu starten und im regulären Boot-Modus ausführen, nachdem die Programmierung abgeschlossen ist. Wenn Sie den RTS-Pin nicht haben, müssen Sie einen separaten Mechanismus (wie einen Druckknopf) verwenden, der direkt mit dem ESP-WROOM-32-Pin IO0 verbunden ist, damit Sie ihn im richtigen Boot-Modus für die Programmierung einschalten können .

Ich bin mit diesem Prozess einigermaßen vertraut, da ich den ESP-Programmierer / Stromkreis in meine eigene benutzerdefinierte Leiterplatte aufgeteilt habe, wobei ich den gleichen Referenzschaltplänen folge, die Sie sich ansehen.

Gemäß den Referenzschemata scheint es, dass ich sowohl den RTS-Pin als auch den Druckknopf für IO0 benötige. Ich habe das komplette Board (Nudemcu-32s) und wenn ich einen Code hochladen möchte, muss ich den Taster von IO0 (BOOT) eine Weile drücken, sonst bekomme ich einen schwerwiegenden Fehler: "Zeitüberschreitung beim Warten auf Paketheader". Also aus meiner Erfahrung ist der Taster sowieso notwendig.
@Elektriker, dann ist es sehr wahrscheinlich, dass das Design falsch ist. Ich bin anfangs auf dasselbe Problem gestoßen, als ich zum ersten Mal meine benutzerdefinierte ESP32-Programmierplatine hergestellt habe, aber wenn es richtig gemacht wird, ist der Druckknopf nicht erforderlich (wie ich herausfand, als ich meine Schaltung reparierte). Wenn Sie sich bereits auf die Drucktaste verlassen, benötigen Sie wahrscheinlich kein RTS, das aus der Programmierschaltung kommt.

Für einen stärker automatisierten Flash- und Reset-Binärdatei-Upload müssen Sie DTR- und RTS-Pins verbinden. Unten ist ein Schaltplan, wie man eine ordnungsgemäße Datenübertragung auf einer ESP32-MCU-Platine erreicht.Geben Sie hier die Bildbeschreibung ein

und jeder kann ein PCB-Design in KiCad auf diesem GitHub-Repo herunterladen: https://github.com/aeonSolutions/AeonLabs-MCU-Burner-USB-to-UART-TTL

Geben Sie hier die Bildbeschreibung ein

Siehe die Antworten in dieser Frage ESP32 mit FTDI-Programmierer

ist es besonders wichtig, welcher Transistor für die IO0- und RST-Verbindungen verwendet wird? Ich denke so etwas wie ein S8050?
nein wirklich nein. Sie müssen nur einen auswählen, der in der Lage ist, für die entsprechenden Datenübertragungs-Bit/s schnell umzuschalten
@ robbrown92 Der S8050 passt auch als direkter Ersatz für den BSS138 in die Schaltpläne