¿Por qué no puedo leer el ATmega328P desde una placa Arduino usando USBasp?

He estado usando una placa USBasp y AVRDUDE para programar con éxito chips ATtiny13 . Pensé en echar un vistazo al chip de mi Arduino ( ATmega328P ), pero parece que AVRDUDE no puede leer el chip.

$ ./avrdude -p m328p -c usbasp

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


avrdude.exe done.  Thank you.

Revisé las conexiones en la placa de prueba varias veces (saqué el chip del Uno y conecté el pinout del USBasp al chip directamente). ¿El ATmega328P necesita un oscilador externo para ser programado (hay uno en la placa USBasp)?

Respuestas (1)

El ATmega en un Uno está sincronizado por un cristal externo, en contraste con un AVR listo para usar que está configurado para su resonador RC interno. Esto significa que para leer el ATmega, debe aplicar un reloj externo, digamos 1 ~ 20 MHz, o usar el encabezado ICSP que está en la placa Uno para comunicarse con el controlador. Este encabezado ICSP de 6 pines en realidad está diseñado para programar el AVR en circuito, por lo tanto, 'In Cicruit Serial Programmer'.