He estado programando un ATMega644PA con avr-gcc y avrdude en linux por un tiempo sin problemas. Bueno hasta que decidí cambiar algunos fusibles. Había estado usando la opción para avrdude -p ATMEGA644P
para programar el chip a pesar de que el chip es ATMega644P A .
Después de leer la hoja de datos (y leer los fusibles en el chip) hice lo siguiente
avrdude -v -c avrispmkII -p ATMEGA644P -P usb -U lfuse:w:0x63:m
El chip ya no se comunicaría. Después de eso me di cuenta de que el problema puede haber sido que configuré los bits para el reloj externo en lugar del oscilador de cristal, pero incluso con el uso de un ATTiny para generar una señal de 1 MHz al pin apropiado en mi Mega644, todavía no obtengo nada.
¿Alguna idea de por qué el chip no responde? ¿Podría ser que la causa sea la definición de avrdude para la versión P del chip en lugar de la versión PA?
Y finalmente, ¿qué puedo hacer para rescatar mi chip? He oído que puede ser posible con la programación de alto voltaje o JTAG. ¿Sería capaz de hacer eso con un STK500?