Pololu-Romi-32U4-Programmer-AVRDUDE

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche

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 WinAVR, qui contient la chaîne de compilation avr-gcc et un outil en ligne de commande appelé 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 version la version GNU Make de Pololu.

Si vous utilisez Mac OS X, Pololu recommande de télécharger le 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:

sudo apt-get install gcc-avr avr-libc avrdude

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

avr-gcc -v
avr-objcopy -V
make -v
avrdude

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":

#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

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, \\\\.\\USBSER000 devrait fonctionner sur l'A-Star est le seul périphérique USB connecté utilisant le pilote usbser.sys. Il est possible de changer cette valeur par le nom du Port COM en cours d'utilisation (ex: 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 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 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.


Basé sur "Guide utilisateur de la carte de contrôle Romi 32U4" de Pololu (https://www.pololu.com/docs/0J69) - Traduit en Français par shop.mchobby.be CC-BY-SA pour la traduction
Toute copie doit contenir ce crédit, lien vers cette page et la section "crédit de traduction". Traduit avec l'autorisation expresse de Pololu (www.pololu.com)

Based on "Pololu Romi 32U4 Control Board User’s Guide" from Pololu (https://www.pololu.com/docs/0J69) - Translated to French by shop.mchobby.be CC-BY-SA for the translation
Copies must includes this credit, link to this page and the section "crédit de traduction" (translation credit). Translated with the Pololu's authorization (www.pololu.com)