domingo, 24 de abril de 2022

Adaptador de los módulos DOIT ESP-1 (ESP8285) y LiLYGO T-01C3 (ESP32-C3) para poder programarlos y tener una comunicación serie, usando un Espressif ESP-Prog

 Hola a tod@s. Hoy os presento un circuito que realicé en estos días pasados. Se trata de un adaptador para poder usar el Espressif ESP-Prog (https://docs.espressif.com/projects/espressif-esp-iot-solution/en/latest/hw-reference/ESP-Prog_guide.html). Placa que sirve para programar y/o depurar los módulos ESP32, ESP8266 y derivados: ESP32-C3, ESP8285,... Además de poder realizar una comunicación serie entre uno de estos módulos y la computadora conectada al ESP-Prog por USB.

Hoy nos vamos a centrar en lo que se puede hacer con el puerto PROG de 6 pines del ESP-Prog, pero para los impacientes. Vamos al grano. 

El esquemático de este adaptador, que realicé en KiCad 6, junto con los pines usados de la placa y los módulos es el siguiente. Haced clic en las imágenes para verlas a un tamaño mayor:

 

 
 Ha sido construido usando un montaje en una placa pequeña perforada de una sola cara de 4 x 4 pads, usando componentes through-hole (resistencias y condensadores cerámicos multicapa), hilo esmaltado de cobre de unos 0.3 mm para las líneas de señal y datos, mientras que los cables de alimentación (3V3, VPROG y GND) he utilizado hilo esmaltado de 0.5-0.6 mm. Después necesitaremos unos zócalos hembra de 4 x 2 pines y otro de 3 x 2 pines. Estos también se pueden realizar juntado 2 tiras hembra de 4 pines o 3 pines respectivamente si no disponemos de los zócalos.
 
 Unas imágenes del adaptador montado:



 Aquí indico los jumpers necesarios a poner el ESP-Prog para poder utilizar mi adaptador:
 
 
 El adaptador sobre el ESP-Prog y con cada uno de los módulos comentados anteriormente:



 Para su montaje hace falta un soldador con punta fina, flux líquido de calidad para evitar posibles soldaduras entre pads cercanos, un bisturí/cúter para sacar el esmalte del hilo de cobre en donde se vayan a hacer las uniones al soldar,  una vista de cirujano y paciencia. Se recomienda comprobar las uniones con un multímetro en modo resistencia para que no existen cortos a pistas/pads que no debieran estar unidos. Una imagen del flux y de la punta del soldador usados:
 

 Consideraciones importantes en el diseño del adaptador
 
 Partiremos del esquemático que nos da Espressif de su ESP-Prog, que los podéis descargar de: https://docs.espressif.com/projects/espressif-esp-dev-kits/en/latest/_static/schematics/esp-prog/SCH_ESP32-PROG_V2.1_20190709.pdf y cuya imagen os muestro ahora:


 Existen unos componentes (resistencias y condensadores) cerca de los botones BOOT y RST que no están puestos y aparecen como NC (No Connection), en el esquemático, pero sí tienen su espacio para colocarlos. Son el condensador C16 (1 nF) y la resistencia R7 (10 kΩ) del botón RST (SW1), el condensador C19 (1 nF) y la resistencia R8 (10 kΩ) del botón BOOT (SW2). Sirven para mitigar los rebotes de la señal al pulsar cada botón si realizamos la programación manual, pulsando los botones BOOT y RST, del ESP-Prog. Son un filtro paso bajo, en definitiva. Un diagrama de esta parte del ESP-Prog:
 

 
 Yo lo que he hecho es colocarlos en el adaptador asociados a la línea correspondiente. Ver el esquemático de mi adaptador.

 Después, en las líneas de comunicación serie, Espressif hace un cambio en la denominación de estas líneas, como se puede ver en la siguiente diagrama:


 Por eso en mi esquemático aparecen conectados TX con TXD0 y RX con RXD0 de un conector al otro, colocando una resistencia (R5, R6) de 47 Ω entre cada uno de estos terminales. Que nos sirve para limitar la corriente y proteger en caso de que hubiesen  interferencias electromagnéticas (EMI). Valdrían igualmente valores de entre 10 y 100 Ω para este cometido.

 Las resistencias R1, R2, R3 y R4 de 10 kΩ en mi esquemático se usa como pull-up para no dejar las correspondientes pines de entrada en un valor flotante y que se produzcan cualquier suceso extraño con los módulos al ser programados u haciendo una comunicación serie con ellos y el ESP-Prog.
 
 Al conectar el ESP-Prog a la computadora nos aparecerán dos puertos serie. Para la programación de los módulos y para la comunicación con el PC usaremos el de numeración mayor:



 
 Por ejemplo, utilizando el ejemplo WiFiScan y programando el módulo LiLYGO T-01C3 (ESP32-C3) con el Arduino IDE, (core ESP32 2.0.3-RC1 Development Release) a 921600 bps, con el ESP-Prog no hace falta pulsar los botones cada vez que queramos subir el sketch compilado, ya que tiene un circuito que lo hace automáticamente. Una captura de esta programación exitosa:

 Y los datos transmitidos por este módulo al monitor serie del Arduino IDE una vez cargado el sketch de ejemplo:


 ¡Ojo, acordaos de seleccionar bien los parámetros de la comunicación serie! Ya que sino no veréis nada o serán caracteres sin sentido lo que aparecerá.



 Próximamente un vídeo demostrativo...

 NOTA: Seguramente con este adaptador que he creado se puedan programar módulos ESP8266 del tipo ESP-01 y ESP-01S, pero no dispongo de ninguno para probarlo, ya que los pines y su disposición son equivalentes. Se aceptan donaciones o comentarios de alguna persona que lo pruebe con estos módulos.

0 comentarios:

Publicar un comentario