summaryrefslogtreecommitdiff
path: root/n
diff options
context:
space:
mode:
Diffstat (limited to 'n')
-rw-r--r--n/avr/doc/howto.txt71
1 files changed, 71 insertions, 0 deletions
diff --git a/n/avr/doc/howto.txt b/n/avr/doc/howto.txt
new file mode 100644
index 0000000..e68503a
--- /dev/null
+++ b/n/avr/doc/howto.txt
@@ -0,0 +1,71 @@
+*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.