Diseño ESP-WROOM-32 USB-UART

Quiero que mi diseño incluya encabezados hembra para conectar el MICRO USB CP2102 al módulo UART TTL de 6 pines para poder "pegarlo" a mi PCB mientras carga el código. Los 5 V para el ESP se suministrarán desde una fuente externa durante el funcionamiento.

La cosa es que el CP2102 tiene los siguientes pines: 5V, 3.3V, GND, TX, RX, DTR:

foto superior de PCB

Miré en el esquema de ESP32, sección micro USB 5V y USB-UART y vi que para cargar el código correctamente necesito el pin RTS de CP2102, que no es accesible:

cableado en serie

Entonces parece que falta un pin out (RTS) para cargar el código. No encontré ningún módulo para micro USB y UART que contenga todos los pines deseados.

¿Hay alguna solución para ello? ¿O debería implementar la sección micro USB 5V y USB-UART en mi diseño?

Gracias.


Actualizar:

Entonces obtuve la placa y la sección USB a UART se ve así:

diagrama esquemático

Intenté subir un boceto a la pizarra y recibí el siguiente mensaje:

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

Presioné el botón BOOT como siempre hago con ESP32 y ¡no pasó nada! También medí voltajes a través de IO0: 3.3v y 0V cuando presiono el botón.

Finalmente me llego el mensaje:

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

Mi diseño tiene el mismo aspecto que sugiere la referencia, pero aun así no pude cargar un boceto.

Debe estudiar el proceso de programación para comprender para qué se utilizan frente a las posibles alternativas y tomar su propia decisión.
¿Lo hiciste funcionar? Gracias

Respuestas (2)

¿Necesita RTS? Si y no. Según los esquemas de referencia para ESP-WROOM-32, se necesita el pin RTS (junto con DTR) si desea que el proceso de programación pueda reiniciarse automáticamente y poner el dispositivo ESP en el modo de "Arranque" correcto para programar y luego reinícielo automáticamente y ejecútelo en el modo de arranque normal después de que haya terminado de programar. Si no tiene el pin RTS, entonces tendrá que usar un mecanismo separado (como un botón pulsador) conectado directamente al pin IO0 ESP-WROOM-32 para que pueda encenderlo en el modo de arranque correcto para la programación. .

Estoy algo familiarizado con este proceso, ya que he separado el programador ESP / circuito de alimentación en mi propia PCB personalizada, siguiendo los mismos esquemas de referencia que está viendo.

De acuerdo con los esquemas de referencia, parece que necesito tanto el pin RTS como el botón pulsador para IO0. Tengo la placa completa (nudemcu-32s) y cuando quiero cargar un código debo presionar el botón de IO0 (BOOT) por un tiempo, de lo contrario obtengo un error fatal: "se agotó el tiempo de espera del encabezado del paquete". Entonces, según mi experiencia, el botón pulsador es necesario de todos modos.
@Electrician, es muy probable que el diseño sea incorrecto, entonces. Inicialmente me encontré con el mismo problema cuando hice por primera vez mi PCB programador ESP32 personalizado, pero si se hace correctamente, entonces el botón pulsador no es necesario (como descubrí cuando arreglé mi circuito). Si ya confía en el botón pulsador, entonces probablemente no necesitará que RTS salga del circuito del programador.

Para una carga de archivos binarios flash y reinicio más automatizada, debe conectar los pines DTR y RTS. A continuación se muestra un esquema de circuito sobre cómo lograr una transmisión de datos adecuada en una placa MCU ESP32.ingrese la descripción de la imagen aquí

y cualquiera puede descargar un diseño de PCB en KiCad en este repositorio de GitHub: https://github.com/aeonSolutions/AeonLabs-MCU-Burner-USB-to-UART-TTL

ingrese la descripción de la imagen aquí

Ver las respuestas en esta pregunta ESP32 con programador FTDI

¿Importa particularmente qué transistor se usa para las conexiones IO0 y RST? Estoy pensando en algo como un S8050?
no realmente no Solo necesita seleccionar uno que pueda cambiar rápidamente para los bps de transferencia de datos correspondientes
@ robbrown92, el S8050 también se ajusta a los esquemas como reemplazo directo del BSS138