29 décembre 2006

De UIPS à AVRDUDE

Tags :

posté dans Electronique |

Deux outils se disputent la vedette en ce qui concerne la programmation des microcontrôleurs AVR d'Atmel : UISP et AVRDUDE. L'un et l'autres ont des avantages et des inconvénients, mais le passage de l'un à l'autre coince parfois.

Le modèle d'adaptateur est le suivant :

Sur ma configuration, le port utilisé est /dev/parport2. Nous avons donc pour un ATTiny2313 UISP :

  • effacement de la mémoire flash :
% uisp -dlpt=/dev/parport2 --erase -dprog=dapa -dno-poll
Atmel AVR ATtiny2313 is found.
Erasing device ...
Reinitializing device Atmel
AVR ATtiny2313 is found.
  • écriture :
% uisp -dlpt=/dev/parport2 -dprog=dapa -dno-poll -v --upload if=out.hex
AVR Direct Parallel Access succeeded after 0 retries.
Atmel AVR ATtiny2313 is found.
Uploading: flash ####
(total 98 bytes transferred in 0.15 s (655 bytes/s)
  • vérification :
% uisp -dlpt=/dev/parport2 -dprog=dapa -dno-poll -v --verify if=out.hex
AVR Direct Parallel Access succeeded after 0 retries.
Atmel AVR ATtiny2313 is found.
Verifying: flash ####
(total 98 bytes transferred in 0.07 s (1415 bytes/s)
  • lecture fuses :
% uisp -dlpt=/dev/parport2 -dprog=dapa -dno-poll -v --rd_fuses
AVR Direct Parallel Access succeeded after 0 retries.
Atmel AVR ATtiny2313 is found.
Fuse Low Byte      = 0x64
Fuse High Byte     = 0xdf
Fuse Extended Byte = 0xff
Calibration Byte   = 0x50  --
 Read Only Lock Bits          = 0xff
BLB12 -> 1
BLB11 -> 1
BLB02 -> 1
BLB01 -> 1
LB2 -> 1
LB1 -> 1

Avec AVRDUDE :

  • effacement :
% avrdude -p t2313 -c dapa -P /dev/parport2 -i 5 -e
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e910a
avrdude: erasing chip
avrdude: safemode: Fuses OK
avrdude done.  Thank you.
  • écriture et vérification :
% avrdude -p t2313 -c dapa -P /dev/parport2 -i 5 -U flash:w:out.hex
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e910a
avrdude: NOTE: FLASH memory has been specified, an erase cycle
         will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "out.hex"
avrdude: input file out.hex auto detected as Intel Hex
avrdude: writing flash (130 bytes):
Writing | ################################################## | 100% 0.12s
avrdude: 130 bytes of flash written
avrdude: verifying flash memory against out.hex:
avrdude: load data flash data from input file out.hex:
avrdude: input file out.hex auto detected as Intel Hex
avrdude: input file out.hex contains 130 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 0.09s
avrdude: verifying ...
avrdude: 130 bytes of flash verified
avrdude: safemode: Fuses OK
avrdude done.  Thank you.
  • lecture fuses :
% avrdude -p t2313 -c dapa -P /dev/parport2 -i 5  -U hfuse:r:-:b -U lfuse:r:-:b
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e910a
avrdude: reading hfuse memory:
Reading | ################################################## | 100% 0.00s
avrdude: writing output file "<stdout>"
0b11011111
avrdude: reading lfuse memory:
Reading | ################################################## | 100% 0.00s
avrdude: writing output file "<stdout>"
0b1100100
avrdude: safemode: Fuses OK
avrdude done.  Thank you.

Notez l'utilisation de l'option -i permettant de spécifier le délai pour le signal d'horloge (en microsecondes). Selon l'adaptateur, la longueur du câble parallèle, etc... on peut rencontrer quelques problèmes et perdre beaucoup de temps à comprendre d'où vient le problème :

% avrdude -p t2313 -c dapa -P /dev/parport2
avrdude: AVR device not responding
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.
avrdude done.  Thank you.
Article posté on Vendredi, 29 décembre 2006 à 11:23 dans Electronique. Vous pouvez suivre les commentaires sur cet article via un feed RSS 2.0. Vous pouvez laisser un commentaire. Le Ping n'est actuellement pas autorisé.

Laisser un commentaire

*
Pour prouver que vous n'êtes pas un bot, recopiez le code ci-dessous
Anti-Spam Image