Comment programmer un microcontrôleur AVR d'Atmel



Introduction

Cette page explique comment programmer un microcontrôleur AVR avec la méthode ISP à 6 broches (In System Programming, ce qui veux dire programmation à même le circuit).

ISP 6 Pins pinout: avr_isp-pinouts.html

goto top Retour en haut


Concepts

goto top Retour en haut


Outils

Il faut tout d'abord un cable ISP reliant l'ordinateur au microcontrôleur. Voici quelques options:
Atmel AVR ISP

Atmel AVR ISP

Atmel ISP mkII

Atmel ISP mkII


goto top Retour en haut


Exemples

Exemples utilisant UISP:
Tout d'abord, sachez que /dev/avr est un lien symbolique vers le port série auquel l'adaptateur est branché (eg: /dev/ttyS0). Aussi, n'oubliez pas de changer l'argument -dpart pour votre MCU si vous utilisez autre chose qu'un ATmega8.

Programmation des fuses d'un atmega8:
# uisp -dprog=stk500 -dpart=atmega8 -dserial=/dev/avr --wr_fuse_h=0xc9 --wr_fuses_l=0x9f

Programmation d'un fichier hex dans un atmega8:
# uisp -dprog=stk500 -dpart=atmega8 -dserial=/dev/avr --erase --upload --verify if=n64_to_wii.hex
Notes: --erase pour effacer la flash AVANT de programmer le fichier hex. --verify permet de relire le contenu de la flash pour s'assurer qu'il n'y a pas eu d'erreurs.

Exemples utilisant AVRDUDE et un ISP mkII USB:

Programmation des fuses d'un Atmega8:
# avrdude -p m8 -P usb -c avrispmkII -Uhfuse:w:0xc9:m -Ulfuse:w:0x9f:m
Notes: l'option -p précise le type de microcontrôleur à programmer. Pour obtenir la liste, essayez 'avrdude -p list -P usb -c avrispmkII' (comme 'list' est un type invalide, avrdude liste tout les types supportés).

Programmation d'un fichier hex dans un atmega8:
# avrdude -p m8 -P usb -c avrispmkII -Uflash:w:n64_to_wii.hex -B 1.0
Note: L'argument -B permet de contrôler le rythme de l'horloge de programmation (en microsecondes). Cette fréquence ne doit pas dépasser le quart de celle de l'horloge du CPU.

goto top Retour en haut


Trucs et astuces

Voici quelques détails qui échappent souvent aux débutants:

goto top Retour en haut


Les marques de commerce utilisées dans ce site appartiennent à leurs propriétaires respectifs.
Copyright © 2002-2017, Raphaël Assénat
Site codé avecSite codé avec vimDernière mise à jour: 1 Février 2015 (Dimanche)