AVRDUDE lanza "objetivo no responde". con USBASP y ATMEGA48PA

Hasta ahora pude reprogramar un circuito con un ATMEGA48PA sin problema. Hasta que obtuve (después de que aparentemente se programó con éxito):

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
         0x19 != 0x00
avrdude: verification error; content mismatch

Ahora, cada vez que intento programarlo, obtengo:

avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: programm enable: target doesn't answer. 1 
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

En ese último programa fallido (el que tiene el error de verificación) bajé el pin de reinicio manualmente. ¿Podría eso haber hecho tanto daño? Según mi multímetro, el PIN de restablecimiento se activa de forma predeterminada (por lo que se supone que todavía está configurado como restablecido).

¿cambiaste los bits del fusible una última vez que la programación realmente funcionó?
¿Estabas ejecutando el atmega con un cristal o sin?
¿Has probado con otro chip?
Por lo general, recibo ese mensaje cuando no tengo el microcontrolador alimentado por el programador, o accidentalmente conecto incorrectamente el programador al microcontrolador. Seguro que lo has comprobado varias veces, pero por si acaso.
@miceuz No, no lo hice. Nunca cambié los fusibles, por lo que debería haber estado usando el oscilador interno dividido por 8. Sin embargo, la placa tiene un cristal de 8MHz.
@LeonHeller No, no lo he hecho. Está en un paquete de montaje en superficie. Puedo cambiarlo, pero primero quería saber si alguien tenía alguna sugerencia.
@capcom Tengo una PCB con un conector ISP de 6 pines, por lo que solo hay dos formas de conectarlo. No uso la energía del programador, uso una fuente externa.
@Eduardo ¿algún éxito en este tema?

Respuestas (1)

Puede fusionar la interfaz ISP de Atmega48 si corrompe el flujo de datos de programación entrante, pero sería muy difícil de hacer. Aunque, lo he visto suceder con flujos de bytes desplazados que podría haber causado su anulación manual de la línea de reinicio (pero aún muy poco probable).

También es posible que el USBASP necesite una actualización de firmware (como sugiere el mensaje de advertencia) o simplemente necesite volver a actualizarse. Es decir, simplemente tuviste mala suerte con tu tiempo y realmente esta es una falla no relacionada en el USPASP.

avrdude es terrible para depurar problemas de comunicación de programación. Es mejor usar AVR Programmer (parte de AVR Studio) para esto.

Para conocer el procedimiento de diagnóstico general, consulte esta pregunta:

Activación de la protección contra cortocircuitos avrispMKII al programar

Funcionó con el mismo programador y el mismo firmware. También puedo programar un Arduino (ATMEGA328P) sin problema con ese programador, por lo que puede darse el caso de corrupción de fusibles.