*Title: Howto AVR *Author: Ni * Intro On utilisera principalement des ATmega8 et des ATmega8535. Ce sont des microcontrolleur 8 bits, avec 8 Ko de flash, 16 Mips, 28 ou 40 pattes, 1 Ko de ram, un bus TWI, SPI, un USART, la programmation en circuit, des entrées analogiques, des sorties PWM... Le tout pour environ 6 Euros. * Les sites à aller voir [http://www.atmel.com/products/avr/] Lire la datasheet du ATmega8. L'ATmega8535 ne différe que par le nombre de pattes et la ram. Regarder les app-notes. [http://www.avrfreaks.net/] Pas mal d'infos sur les AVRs, un forum, des projets examples... [http://www.nongnu.org/avr-libc/] Le site de la libc pour AVR. Tout ce qu'il faut pour développer. _Lire_ particulièrement la doc, de haut en bas. Il y a un programme d'exemple, mais on ne devrais pas manquer de programmes d'exemples au robot d'ici quelque jours. * Les outils de dev Sur le serveur du robot : gcc. Sur les Windows, on peut faire fonctionner gcc avec AVR Studio. Pour la programmation, il y a avrdude, programmation de l'AVR avec 3 fils. * Programmation avec avrdude Le programmateur utilise trois pattes de l'AVR, attention à ne pas griller le port parallèle en réglant ces pattes en sortie. On devrais metre des résistances en série sur le programmateur pour éviter ça. De même, attention à ne pas griller le MAX232 relié au port série. L'option |-p| permet de choisir le composant, l'option |-c| le programmateur. Par exemple pour programmer le premier ATmega8 sur le programmateur du robot : avrdude -p m8 -c robot0 -E noreset ... L'option |-E| démare le composant aprés la programmation (relache le reset). On peut aussi choisir l'état des autres pistes. Avrdude peut tenir dans les dernier octets d'eeprom le nombre de programmations du composant, pour initialiser ce nombre, faire avec un nouveau composant, utiliser l'option |-Y| : avrdude -p m8 -c robot0 -E noreset -Y 0 Il faut ensuite choisir le mode d'oscillation de l'AVR, voir la datasheet pour les détails sur les HFUSE et LFUSE. Attention, un mauvais réglage et on peut avoir du mal à récupérer l'AVR en utilisant la programmation ISP. Pour oscillation sur quartz avec un quartz de plus de 8 MHz sur un ATmega8 : avrdude -p m8 -c robot0 -E noreset -U lfuse:w:0xff:m -U hfuse:w:0xc9:m Pour programmer la flash : avrdude -p m8 -c robot0 -E noreset -U flash:w:fichier.hex -y En bonus, pour reseter l'AVR depuis le PC : avrdude -p m8 -c robot0 -E noreset Pour un autre composant, regarder la datasheet, vérifier 5 fois, demander à d'autres personnes de vérifier et ajouter les commandes dans ce document.