Modifications

Sauter à la navigation Sauter à la recherche
aucun résumé de modification
Ligne 1 : Ligne 1 :  
{{Pololu-Romi-32U4-NAV}}
 
{{Pololu-Romi-32U4-NAV}}
   −
{{traduction}}
+
Cette section explique comment programmer la famille des carte 32U4 de Pololu avec la chaîne de compilation avr-gcc et AVRDUDE. Cette section est destiné au utilisateurs avancés qui ne veulent pas utiliser Arduino IDE domme décrit dans la section précédente.
 +
 
 +
== Prérequis ==
 +
Si vous utilisez Windows, Pololu recommande de télécharger [http://winavr.sourceforge.net/ WinAVR], qui contient la chaîne de compilation avr-gcc et un outil en ligne de commande appelé [http://www.nongnu.org/avrdude/ AVRDUDE] qui est utiisé pour téléverser le programme via le bootloader de l'A-Star. Si la version GNU Make de WinAVR crash sur votre ordinateur alors vous pouvez opter pour [https://github.com/pololu/make/releases version la version GNU Make de Pololu].
 +
 
 +
Si vous utilisez Mac OS X, Pololu recommande de télécharger le [http://www.obdev.at/products/crosspack CrossPack pour développement AVR].
 +
 
 +
Si vous utilisez Linux, vous aurez besoin d'installer avr-gcc, avr-libc et AVRDUDE. Les utilisateur d'Ubuntu peuvent obtenir les logiciels nécessaires à l'aide de:
 +
 
 +
<nowiki>sudo apt-get install gcc-avr avr-libc avrdude</nowiki>
 +
 
 +
Après avoir installé les pré-requis, ouvrez une invite de commande et essayez les commandes suivantes pour vous assurer que tous les utilitaires nécessaires soient bien disponibles
 +
 
 +
<nowiki>avr-gcc -v
 +
avr-objcopy -V
 +
make -v
 +
avrdude</nowiki>
 +
 
 +
Si une quelconque commande échoue alors assurez vous que les exécutables nécessaires sur votre ordinateur et assurez vous que leurs répertoires soient bien mentionnés dans la variable d'environnement PATH.
 +
 
 +
== Compiler un programme d'exemple ==
 +
Copier le code d'exemple suivant dand un fichier nommé "main.c":
 +
 
 +
<syntaxhighlight lang="C">
 +
#define F_CPU 16000000
 +
#include <avr/io.h>
 +
#include <util/delay.h>
 +
 +
int main()
 +
{
 +
  DDRC |= (1 << DDC7);    // Configurer broche 13 en sortie
 +
  while(1)
 +
  {
 +
    PORTC |= (1 << PORTC7);  // Allumer la LED.
 +
    _delay_ms(500);
 +
    PORTC &= ~(1 << PORTC7);  // Eteindre la LED.
 +
    _delay_ms(500);
 +
  }
 +
}
 +
</<syntaxhighlight>
 +
 
 +
Dans le même répertoire, créer un fichier nommé "Makefile" avec le contenu suivant:
 +
 
 +
<syntaxhighlight>PORT=\\\\.\\USBSER000
 +
MCU=atmega32u4
 +
CFLAGS=-g -Wall -mcall-prologues -mmcu=$(MCU) -Os
 +
LDFLAGS=-Wl,-gc-sections -Wl,-relax
 +
CC=avr-gcc
 +
TARGET=main
 +
OBJECT_FILES=main.o
 +
 
 +
all: $(TARGET).hex
 +
 
 +
clean:
 +
rm -f *.o *.hex *.obj *.hex
 +
 
 +
%.hex: %.obj
 +
avr-objcopy -R .eeprom -O ihex $< $@
 +
 
 +
%.obj: $(OBJECT_FILES)
 +
$(CC) $(CFLAGS) $(OBJECT_FILES) $(LDFLAGS) -o $@
 +
 
 +
program: $(TARGET).hex
 +
avrdude -p $(MCU) -c avr109 -P $(PORT) -U flash:w:$(TARGET).hex</syntaxhighlight>
 +
 
 +
Vérifier que la variable PORT dans le Makefile contient le nom du port série (Virtual Com Port) sur lequel est branché le microcontrôleur. Sous Windows, {{fname|\\\\.\\USBSER000}} devrait fonctionner sur l'A-Star est le seul périphérique USB connecté utilisant le pilote {{fname|usbser.sys}}. Il est possible de changer cette valeur par le nom du Port COM en cours d'utilisation (ex: {{fname|COM13}}).
 +
 
 +
Dans une invite de commande, naviguer vers le répertoire contenant le les fichiers Makefile et main.c. Si vous exécutez le commande {{fname|make}}, le code devrait être compilé pour produire un fichier nommé "main.hex".
 +
 
 +
== Programmer ==
 +
Pour programmer le périphérique A-Star, il sera nécessaire de le placer en mode bootloader. Une façon d'activer le Bootloader est de réinitialiser deux fois l'AVR en 750 ms.
 +
 
 +
La plupart des cartes de la famille 32U4 (de Pololu) ont un bouton Reset qui permet de redémarrer la carte. Sur toutes les cartes de la famille 32U4, un bouton poussoir peut être connecté entre les broches RST et GND, il pourra agir comme bouton Reset (un fil fera également l'affaire).
 +
 
 +
Une fois le périphérique en mode Bootloader puis exécuter rapidement la commande {{fname|make program}} pour envoyer le programme sur la carte. Si vous attendez plus de 8 secondes alors le microcontrôleur quitte le mode Bootloader et l'AVR démarre alors le programme utilisateur présent sur la carte.
    
{{Pololu-Romi-32U4-TRAILER}}
 
{{Pololu-Romi-32U4-TRAILER}}
29 917

modifications

Menu de navigation