Tengo el programador USBasp y estoy tratando de grabar el cargador de arranque en Atmega328 para que pueda usarse como un chip de reemplazo en la placa Arduino (los chips de reemplazo con el cargador de arranque instalado son bastante caros).
He instalado los controladores USBasp : la instalación es bastante sencilla gracias a la guía. El dispositivo fue reconocido y funciona correctamente, según Windows.
Luego conecté los pines de acuerdo con la hoja de datos. Después de eso, inicié Arduino IDE y seleccioné USBasp como programador:
He notado que cada vez que paso el mouse sobre Tools
el IDE de arduino se retrasa por un tiempo. Pero eso podría ser simplemente un error de software no relacionado.
Después de seleccionar el programador correcto, hice clic Burn bootloader
y recibí este error:
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.
Ya he estado intentando programar este chip con Raspberry PI, y también he fallado . Y todavía no puedo averiguar dónde está el error. Excepto la posibilidad de que compre 2 fichas nulas.
Mi pregunta es cómo puedo probar todos los fragmentos de mi sistema y verificar cuál está roto. Los errores de AvrDude son inútiles.
Aquí hay una imagen de mis conexiones al intentar lo mismo (y con el mismo resultado) con AtTiny:
El mensaje de error que está viendo significa que el chip no responde al comando "habilitar el modo de programación" que está enviando el programador. O tienes mal las conexiones, o el programador está enviando los comandos demasiado rápido (frecuencia de programación demasiado alta).
Los nuevos chips AVR vienen configurados para usar el oscilador interno del chip como fuente de reloj, con el conjunto de fusibles CLOCKDIV8 ("divide la frecuencia del reloj entre 8"). Esto significa que funcionan a 1MHz. La frecuencia de programación máxima que admite el chip es la velocidad de reloj / 4, es decir, 250 kHz. El USBASP está predeterminado en 375 kHz, que es demasiado rápido, por lo que debe reducir la velocidad.
Puede hacer esto configurando el puente "SCK lento" de su USBASP, si tiene uno, o usando la opción avrdude -B:
avrdude -c usbasp -p m328p -B 5 -U flash:w:bootloader.hex:i
El número después de la opción -B selecciona la velocidad de programación (específicamente, el período del reloj, el inverso de la frecuencia, por lo que los números más altos significan frecuencias más lentas). Si -B 5 no funciona, pruebe con un número más alto, como -B12 o incluso -B60.
Actualización: esta línea en la salida de avrdude sugiere que su versión de firmware USBASP no es compatible con la opción -B, por lo que deberá usar el puente:
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
Recientemente, estaba tratando de hacer un pequeño proyecto usando mi atmega8, pero me encontré con este problema. Pensé que el chip tenía fallas debido a su tiempo de uso, pero recordé que la última vez que escribí código dentro de él, ¡programé los fusibles para que funcionara con su oscilador interno! Y traté de programarlo (otra vez) pero esta vez con un cristal y…. Ta ta taaaa… eso fue!
Creé el Arduino autónomo , pero al intentar programarlo con un USBasp, recibí el error del OP. Después de seguir la pista de cyberx86 sobre la verificación de los pines, descubrí que MOSI, del adaptador de programación AVR , se mostraba incorrectamente conectado en la foto , aunque la descripción escrita del pin out era correcta:
Asegúrese de consultar la asignación de pines de Arduino para obtener ayuda con el cableado.
- El pin MISO de su adaptador irá al pin 18 o al pin digital Arduino 12 de su chip Atmega.
- El pin SCK de su adaptador irá al pin 19 o al pin digital Arduino 13 de su chip Atmega.
- El pin RESET de su adaptador irá al pin 1 de su chip Atmega.
- El pin MOSI de su adaptador irá al pin 17 o al pin digital Arduino 11 de su chip Atmega.
En la foto, el cable (verde oscuro) que debería ir a MOSI, pin 17, ¡en realidad va al pin 16!
Después de corregir este problema y conectar el MOSI del adaptador de programación AVR al pin 17 en el ATMega, el error desapareció.
En mi caso de ATMega32A, fue el programador escribiendo demasiado rápido en el microcontrolador y la opción -B dada para avrdude establecer el período SCK (y, por lo tanto, también la frecuencia) para calificar lo que permitió una comunicación adecuada. Pasé demasiado tiempo haciendo que esta configuración funcionara, pensé que el microcontrolador estaba muerto en algún momento.
-B Especifique el período de reloj de bit JTAG/STK500v2 (us).
con error:
me@comp:~$ sudo avrdude -c usbasp -p m32
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.
DE ACUERDO:
me@comp:~$ sudo avrdude -c usbasp -p m32 -B 5 // you may increase this value
// to set even lower frequency
avrdude: set SCK frequency to 187500 Hz
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e9502
avrdude: safemode: Fuses OK (E:FF, H:99, L:E1)
avrdude done. Thank you.
ciberx86
Tomáš Zato
ciberx86
ciberx86
ciberx86