¿Cómo puedo saber que USBasp está funcionando?

4

Tengo el programador USBasp y estoy intentando grabar el gestor de arranque en Amega328 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 el controladores USBasp - la instalación es bastante sencilla gracias a la guía. El dispositivo fue reconocido y funciona correctamente, según Windows.

Luego he conectado los pines de acuerdo con la hoja de datos. Después de eso, inicié Arduino IDE y seleccioné USBasp como programador:

MehedadocuentadequecadavezquepasoelmouseporencimadeTools,elIDEarduinoseretrasaporuntiempo.Peroesopodríasersimplementeunerrordesoftwarenorelacionado.

Despuésdeseleccionarelprogramadorcorrecto,hiceclicenBurnbootloaderyobtuveesteerror:

avrdude:warning:cannotsetsckperiod.pleasecheckforusbaspfirmwareupdate.avrdude:error:programmenable:targetdoesn'tanswer.1avrdude:initializationfailed,rc=-1Doublecheckconnectionsandtryagain,oruse-Ftooverridethischeck.

YaheintentadoprogramarestechipconRaspberryPI- y también he fallado . Y todavía no puedo averiguar dónde está el error. Excepto la posibilidad de que compré 2 fichas nulas.

Mi pregunta es cómo puedo probar todos los fragmentos de mi sistema y comprobar cuál está roto. Los errores de AvrDude son inútiles.

Aquí hay una imagen de mis conexiones cuando intento lo mismo (y con el mismo resultado) con AtTiny:

    
pregunta Tomáš Zato

4 respuestas

3

El mensaje de error que está viendo significa que el chip no responde al comando "habilitar el modo de programación" que el programador está enviando. O bien tiene las conexiones incorrectas o el programador está enviando los comandos demasiado rápido (la frecuencia de programación es demasiado alta).

Los nuevos chips AVR vienen configurados para usar el oscilador interno del chip como fuente de reloj, con el fusible CLOCKDIV8 ("divide la frecuencia del reloj entre 8"). Esto significa que se ejecutan a 1MHz. La frecuencia máxima de programación que admite el chip es la velocidad de reloj / 4, es decir, 250 kHz. El valor predeterminado de USBASP es de 375 kHz, que es demasiado rápido, por lo que debe ralentizarlo.

Puede hacerlo configurando el puente "slow SCK" 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 de 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, intente un número más alto, como -B12 o incluso -B60.

Actualización: esta línea en la salida de avrdude sugiere que la versión de firmware de USBASP no admite la opción -B, por lo que deberá usar el puente:

    avrdude: warning: cannot set sck period. please check for usbasp firmware update.
    
respondido por el randy
1

Recientemente, estaba tratando de hacer un pequeño proyecto usando mi atmega8, pero enfrenté este problema. Pensé que el chip tenía fallas debido a su tiempo de uso, pero recordé que la última vez que escribí un código en su interior, ¡programé los fusibles para que funcionen con su oscilador interno! Y traté de programarlo (de nuevo) pero esta vez con un cristal y…. Ta ta taaaa ... eso fue!

    
respondido por el Alex
1

Creé el Arduino Independiente , pero al intentar programarlo con USBasp, recibí el OP error. Después de seguir la pista de cyberx86 sobre cómo volver a verificar los pines, descubrí que MOSI, del adaptador de programación de AVR , se mostró incorrectamente conectado en la foto aunque, la descripción escrita del pin out fue correcto:

  

Asegúrese de consultar la asignación de pines de Arduino para obtener ayuda sobre cómo conectar esto.

     
  • 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 debe ir a MOSI, pin 17, ¡en realidad va al pin 16!

Después de corregir este problema y conectar el MOSI del AVR Programming adapter al pin 17 en el ATMega, el error desapareció.

    
respondido por el Greenonline
0

En mi caso de ATMega32A, el programador escribía demasiado rápido para el microcontrolador y la opción -B dada para establecer un período SCK (y, por lo tanto, también para la frecuencia) de velocidad variable para calificar la comunicación adecuada. Pasé demasiado tiempo haciendo este trabajo de configuración, pensé que el microcontrolador está muerto en algún momento.

  

-B Especifique el período de reloj de bits 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.

OK:

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.
    
respondido por el 4pie0

Lea otras preguntas en las etiquetas