ESP8266 Diseño de ICSP: ¿qué pautas de diseño de circuito evitarán fallos / daños?

0

Estoy trabajando en un proyecto que está todo en el tablero en este momento. Estoy cerca de la versión final, así que planeo diseñar PCB para el lanzamiento (no uso comercial, solo para algunos amigos míos).

El microcontrolador es un ESP8266-12E, y quiero poder programarlo después de haber sido soldado a PCB (por lo tanto, ICSP). Para lograrlo, planifiqué un pin-strip para exponer:

  • RX
  • TX
  • GPIO0
  • GPIO2 (no estoy seguro de eso, algún esquema no lo usa)
  • GPIO15
  • CHPD
  • VCC
  • GND

de acuerdo con los esquemas del programador que puede encontrar en línea (por ejemplo, esta o esto ).

Así es como se usan los pines 'relevantes para la programación' en mi proyecto:

  • Los pines RX y TX se usan para la conexión del módulo GPS.
  • GPIO2 utilizado como 'serie de depuración'
  • GPIO0 utilizado como salida
  • GPIO15 no se usa

Nunca trabajé con ICSP, así que estoy bastante confundido acerca de algunos puntos:

  1. Resistencias en los esquemas de los programadores (como el segundo enlace que publico): debo colocarlos en la placa del programador (que luego se conectará a la tira con un cable para programar) o debería colocarse en la PCB ?

  2. ¿Hay alguna otra guía de diseño de PCB / esquema que debo saber para realizar de manera segura un procedimiento de Programación en el Circuito sin dañar otros dispositivos PCB / IC o el microcontrolador? (por ejemplo, pull-up / down, desacoplamiento, etc.)

pregunta Noisemaker

1 respuesta

1

Primero debe comprender qué y cómo se utilizan estos GPIO. También puede consultar esto . En la práctica, para el funcionamiento normal y el arranque desde la memoria flash, GPIO15 debe ser BAJO, y GPIO0 y GPIO2 deben ser ALTOS al inicio. Cuando quiera cargar una nueva imagen, todo lo que tiene que hacer es poner GPIO0 en estado BAJO durante el inicio, mientras que los otros dos GPIO permanecen como antes, y luego el ESP8266 está listo para recibir el programa a través de la interfaz UART.

Además, la CHPD debe ser ALTA en todo momento, de lo contrario, el IC no se ejecutará en absoluto. CHPD significa "CHip Power Down" y, a pesar de que tiene un mal nombre, está activo en un nivel bajo.

Ahora, para poner el ESP8266 en el modo de inicio que es necesario cuando desea programarlo, debe quitar la energía y aplicar nuevamente, enviar un pulso BAJO en el pin RST o enviar un pulso BAJO en el Pin CHPD.

Por lo tanto, las resistencias pull-up / pull-down que usted menciona deben colocarse en la PCB principal. De todos modos, son necesarios para el funcionamiento normal de la placa (como el pull-up en el pin CHPD). No confíe en los pull-up / pull-down internos que pueden estar presentes en el IC.

De lo anterior también se puede ver que básicamente solo GPIO0 y la interfaz UART son realmente necesarios para programar el ESP8266. No hay necesidad de usar GPIO15 y GPIO2. Y el CHPD podría usarse para restablecer el IC, pero esto no es necesario, ya que podría hacer lo mismo al quitar y volver a aplicar la fuente de alimentación.

A partir de estos pines, creo que solo la interfaz UART debería ser revisada en tu caso, ya que ya la tienes conectada a otro IC. Si fuera usted, si quisiera estar 100% seguro, probablemente usaría alguna forma de interrupción (por ejemplo, puentes o interruptores) entre el ESP8266 y el módulo GPS. Durante el funcionamiento normal, mantendrá los dos circuitos integrados conectados. Pero cuando quiera cargar una nueva imagen, deberá interrumpir esta conexión para que no haya interferencia del módulo GPS a las señales de su programador que podrían hacer que el proceso de carga falle.

Un último consejo amistoso! Antes de hacer su PCB, simplemente pruebe el circuito que desea implementar en el tablero y confirme que funciona o haga las modificaciones necesarias.

    
respondido por el nickagian

Lea otras preguntas en las etiquetas