Objectif
Programmer un ATmega8 ou ATmega168 en utilisant le langage (les librairies) Arduino sans utiliser le board Arduino.
Liens
Aide pour programmation AVR ISP:
Pin mappings:
Comment est-ce possible?
Arduino correspond en fait à plusieurs composantes distinctes:
- Un ensemble de librairies software
- Un bootloader
- Un setting de "fuses" spécifique pour les ATmega8/168 (fréquence, utilisation d'une clock externe, etc)
- Un board comprenant des caractéristiques spécifiques (port USB, port ISP, clock - cristal, convertisseur de tension, etc)
On peut utiliser certaines de ces composantes sans utiliser les autres. Pour programmer des ATmega on n'a pas besoin de bootloader si on a un programmeur ISP. De plus, on a pas nécessairement besoin du board, de toutes les pins, de la clock, etc.
Dans cette rencontre je montrerai comment on peut utiliser les librairies Arduino et utiliser d'autres settings de "fuses" à l'aide d'un programmeur ISP.
Outils
- Un programmeur ISP (tels que STK500 ou AVRISP2)
- Un port ISP (on peut utiliser un board Arduino pour cela)
- Un ATmega8 ou 168
avr-gcc et avrdude (c.f. cette page pour de l'aide)
Makefile (ou Makefiles.zip) (ou encore cette version pour le STK500: Makefile_stk500 : cherchez le mot-clé "aalex" dans le texte pour voir ce que j'ai modifié)
Ce qui se passe
En gros le Makefile ajoute une méthode main au programme Arduino:
void main() {
setup();
for (;;)
loop();
}Et inclut les librairies Arduino. Puis il compile le tout! Bref Arduino n'est pas un langage en soi: c'est du C++...
Comment faire
make # compile le code make writefuse # ATTENTION: toujours vérifier que ce sont les bonnes fuses make upload # envoie le programme sur le ATmega
Sur Windows AVR Studio: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1196617535 (à essayer...)
