Pour programmer un ATmega32A (par exemple) (boitier sdm TQFP44) neuf il faut :
-lire les fusibles et les programmer correctement le cas échéant.
Pour cela :
- connecter le programmateur usbasp sur l'ATmega par le connecteur de programmation série (ICSP utilisant les pins MOSI, MISO, SCK, RESET, GND, et VCC). Le VCC doit être alimenté, le quartz câblé avec ses des condensateurs.
- sur le programmateur placer le jumper qui le configure en mode lent. (IMPORTANT sinon ATmega pas vu !)
- Lancer (dans un terminal ouvert dans le répertoire contenant l'exécutable java AVR-8_Burn-o-Mat) le programme AVR-8_Burn-o-Mat (avr8burnomat pour les intimes) par la commande (qui le lance en mode administrateur donc):
"sudo java -jar AVR8_Burn_O_Mat.jar"
- dans avr8burnomat:
-dans AVR type, choisir le bon uP (ici ATmega32)
-ouvrir le menu "settings" / AVRDUDE choisir:
-programmeur = usbasp
-port = usb
-faire apply
- de retour dans la fenêtre principale de avr8burnomat clique sur le bouton "Fuses"
si on utilise un quartz 16MHz :
-aller dans l'onglet "Oscillateur-Clock Options"
-aller dans le sous-onglet "External cristal or ceramic resonator"
sélectionner:
-Type = "cristal"
-Frequency range = "8.0MHz - 16.0MHz"
Puis cliquer sur le bouton tout en haut "write fuses".
Une petite fenêtre indique alors "Fuses sucessfully written"
Maintenant on peut retirer le jumper (sur le programmateur) qui place l'ATmega en mode lent. On peut aussi utiliser un autre programme de programmation. Moi j'utilise avrdude dans un terminal Linux en tapant (par exemple) ceci :
"sudo avrdude -p m32 -c usbasp -P /dev/ttyUSB0 -u -U flash:w:./Enregistreur_SDcard.hex:i"
On est obligé de taper tout ça 50 fois dans la journée ??? Heureusement que non, sous Linux, un appui sur la touche "flèche haute" dans le terminal rappelle la commande.
Taper "avrdude --help" dans le terminal pour avoir les détails des options de cette commande.