Programar un ATTINY85 en la PCB me está causando algunos problemas

Me está costando mucho conseguir el encabezado AVR ISP en mi placa de circuito para permitirme flashear el chip. Básicamente, con un ATTINY85 tienes que compartir pines de programación con pines usados ​​por tu programa. Creo que algo acerca de este intercambio está causando problemas.

En el siguiente esquema, J3vaya J4a una placa con 7 LED RGB APA102 direccionables. J3proporciona señales SPI de reloj y datos, y J4proporciona energía y tierra.

Tengo un reloj LED en el pin PB2o SCKen los encabezados del ISP, y el pin de datos del LED en PB4el que no se comparte con los encabezados del ISP. PB3controla un interruptor de alta potencia en los LED para evitar que consuman corriente en el modo de suspensión.

Cuando intenté actualizar un programa con esta configuración, al principio pareció funcionar, aunque pude ver pulsos rojos en los LED, lo que me sorprendió. Pero el último paso de la carga, el paso de verificación que comprueba que el programa se escribió correctamente, falló. Y ahora ya no se puede programar el chip ya que avrdude solo daavrdude: initialization failed, rc=-1

Logré quitar el chip de la placa y lo puse en un zócalo solo en una placa de prueba. En ese estado, pude flashearlo sin problemas, y funcionó muy bien cuando lo volví a soldar a la placa. Pero cuando traté de flashearlo nuevamente en ese tablero, sucedió exactamente lo mismo. Claramente, algo en mi circuito tiene la culpa. Pero no estoy seguro de qué.

¿Qué impide que mi circuito permita que parpadee el ATTINY85? Y, si es necesario, ¿qué puedo hacer para aislar los componentes de las señales de programación que no deberían conocer?

Colgante Chakra de Squeegy 46acb26f5f80a881 - Upverter http://upverter.com/Squeegy/46acb26f5f80a881/Chakra-Pendant/embed_img/14256226900000/

^ haga clic en eso y podrá navegar tanto por el esquema como por la PCB porque Upverter está limpio.

Es posible que sea necesario conectar VCC en el encabezado del ISP. Por ejemplo, Atmel JTAGICE3 se basa en el pin VCC para impulsar el objetivo con el nivel de voltaje adecuado. Entonces, otra herramienta ISP o ICE puede requerir lo mismo.

Respuestas (1)

No veo un pull up en la línea de reinicio. ¿El micro viene configurado por defecto con un pull up interno activo? De lo contrario, es posible que pueda programar porque el ISP pone el micro en reinicio de todos modos, pero el último paso puede fallar porque necesita salir del reinicio momentáneamente.

Solo algo para comprobar.

Esa es la primera vez que escucho que podría ser necesaria. Como dije, puedo programar el chip en un zócalo de placa de prueba sin resistencia en el pin de reinicio. Pero supongo que una resistencia de 10K entre RESETy VBATno podría doler. Cuanto más pienso en esto, más parece un buen movimiento cambiar a un ATTINY84 con 14 pines, en lugar de 8. De esa manera, tengo suficientes pines para no tener que compartir operaciones en ejecución y roles de programación.
Sí, recomiendo probar primero una dominada de 10k. Lo más probable es que estés atascado en el reinicio. ¡Déjame saber si funciona!