30 Avril
2007:
Je viens de découvrir ceci:
programmateur USBASP
Un programmateur USB
simple à réaliser pour les
microcontrôleurs ATMEL AVR, basé sur un ATMEGA8.
Le logiciel de programmation associé au programmateur USBASP
est « AVRDude »
J'ai testé: ça fonctionne très bien
avec mes ATmega8 et ATmega32.
Ce soft fonctionne en ligne de commande: sous Linux, il faut taper dans un terminal une commande comme par exemple:
- sudo avrdude -p m32 -c usbasp -P /dev/ttyUSB0 -u -U flash:w:/chemin/truc.hex:i
(pour plus de détails sur les paramètres, taper avrdude --help dans un terminal)
Il existe des interfaces
graphiques (GUI) qui permettent de l'utiliser
confortablement, je
citerai:
- avrdude-gui
(ce fichier zip contient avrdude)
- AVR8-Burn-O-Mat (logiciel en java, multiplateforme
donc, et beaucoup plus
confortable pour programmer les fuses)
Site du concepteur du programmateur USBASP:
J'utilise couramment ce programmateur
- sous Windows (avec AVR8-burn-O-Mat)
- sous Linux (avec AVR8-burn-O-Mat et avrdude)
Août 2009:
Note pour Linux: si
avrdude vour retourne le message d'erreur suivant:
avrdude: Warning: cannot query
manufacturer for device: error sending control message: Operation not
permitted, c'est que vous n'avez pas les droits d'acces en
ecriture au peripherique USB. (Lancez avrdude en "sudo", vous verrez...
)
Astuce: sous Linux (gnome,
comme par exemple Ubuntu) pas besoin de programme spécial pour
lancer avrdude. Il suffit de créer un script nautilus (un fichier texte
auquel on donne la permission d'exécution) avec comme contenu:
#!/bin/bash
gnome-terminal --command="avrdude -p m32 -c usbasp -P ttyUSB0 -u -U flash:w:./ape2008.hex:i"
(remplacer le nom du fichier.hex {ici ape2008.hex} par le bon). le ./
qui le précède indique le chemin relatif (c.a.d que le script doit être
dans le répertoire du .hex)
ttyUSB0 : voir dans /dev si c'est le bon (ça peut être ttyUSB1 par exemple)
On peut aussi lancer la commande directement dans un terminal ouvert manuellement...
Pratique pour reprogrammer un ATmega pour lequel on ne dispose pas des sources ou du compilateur mais juste du .hex
Voici les options pour la commande avrdude. Les possibilités ne manquent pas !
Usage: avrdude [options]
Options:
-p Required. Specify AVR device.
-b Override RS-232 baud rate.
-B Specify JTAG/STK500v2 bit clock period (us).
-C Specify location of configuration file.
-c Specify programmer type.
-D Disable auto erase for flash memory
-i ISP Clock Delay [in microseconds]
-P Specify connection port.
-F Override invalid signature check.
-e Perform a chip erase.
-O Perform RC oscillator calibration (see AVR053).
-U :r|w|v:[:format]
Memory operation specification.
Multiple -U options are allowed, each request
is performed in the order specified.
-n Do not write anything to the device.
-V Do not verify.
-u Disable safemode, default when running from a script.
-s Silent safemode operation, will not ask you if
fuses should be changed back.
-t Enter terminal mode.
-E [,] List programmer exit specifications.
-x Pass to programmer.
-y Count # erase cycles in EEPROM.
-Y Initialize erase cycle # in EEPROM.
-v Verbose output. -v -v for more.
-q Quell progress output. -q -q for less.
-? Display this usage.
Enfin voici un lien vers une page qui vous décrira la fonction de chaque jumper placés sur la carte USBASP.