Outils pour utilisateurs

Outils du site


robotics:computing:astuces_sur_les_atmel_avr

avrdude: error: programm enable: target doesn't answer. 1

Lors de la programmation de votre Atmel AVR avec avrdude, vous pourriez obtenir cette erreur :

$ sudo avrdude -p m48 -c usbasp -U lfuse:w:0xc2:m

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.


avrdude done.  Thank you.

Elle est souvent due à des fuse bits placés pour utiliser un oscillateur externe. Pour changer cela, il suffit de brancher un oscillateur à quartz (4 MHz par exemple) entre la broche XTAL1 et XTAL2 de votre AVR. Branchez également une capacité de 15 pF entre XTAL1 et la masse et entre XTAL2 et la masse.

Ensuite, vous pouvez programmer votre AVR pour qu'il utilise l'oscillateur interne. Voici la ligne de commande avrdude pour un ATMEGA48 utilisant un programmeur usbasp :

$ sudo avrdude -pm48 -cusbasp -Ulfuse:w:0xc2:m

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9205
avrdude: reading input file "0xc2"
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.00s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xc2:
avrdude: load data lfuse data from input file 0xc2:
avrdude: input file 0xc2 contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 1 bytes of lfuse verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Maintenant vous pouvez retirer votre oscillateur à quartz et les capacités, vous devriez être capable de programmer votre AVR.

avrdude: Warning: cannot query manufacturer for device: error sending control message: Operation not permitted

Si vous avez cette erreur dont voici la trace complète :

$ avrdude -pm48 -cusbasp -Uflash:w:test_AVR.hex:a
avrdude: Warning: cannot query manufacturer for device: error sending control message: Operation not permitted
avrdude: error: could not find USB device "USBasp" with vid=0x16c0 pid=0x5dc

Il s'agit simplement d'un problème de droits d'accès au device. Pour le corriger il faut rajouter une règle udev :

echo "SYSFS{idVendor}==\"16c0\", SYSFS{idProduct}==\"05dc\", MODE=\"0660\", GROUP=\"plugdev\"" | sudo tee /etc/udev/rules.d/90-usbasp_VOTI.rules

Il faudra faire attention à affecter correctement les variables udev selon votre matériel et votre environnement.

robotics/computing/astuces_sur_les_atmel_avr.txt · Dernière modification: 2012/09/20 10:52 (modification externe)