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, J3
vaya J4
a una placa con 7 LED RGB APA102 direccionables. J3
proporciona señales SPI de reloj y datos, y J4
proporciona energía y tierra.
Tengo un reloj LED en el pin PB2
o SCK
en los encabezados del ISP, y el pin de datos del LED en PB4
el que no se comparte con los encabezados del ISP. PB3
controla 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?
^ haga clic en eso y podrá navegar tanto por el esquema como por la PCB porque Upverter está limpio.
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.
RESET
y VBAT
no 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.
rioraxe