Table of Contents

Instructions d’installation pour Windows

Cette partie contient l’ensemble des informations nécessaires à l’installation du logiciel de développement AVR avec le système d’exploitation Windows.

Installation

Pour réaliser cette installation vous devez disposer des logiciels suivant disponibles, en téléchargement, sur la page internet des fournisseurs ou sur le CD de support fournit dans le HomeLab Kit.

1. Studio AVR

Le Studio AVR 4 IDE (Integrated Development Environment) est le logiciel de base pour l’écriture des codes source, la compilation et le transfert du programme vers le contrôleur. Le Studio AVR peut être téléchargé depuis la page du site de la société Atmel.

2. WinAVR

WinAVR est un compilateur GNU-GCC pour microcontrôleurs AVR. Il s’agit d’un logiciel libre disponible en téléchargement sur la page internet de la société Sourceforge. Au cours de l’installation WinAVR propose un nom de dossier par défaut contenant un long numéro de version. Nous vous suggérons de remplacer ce nom de dossier par celui-ci :

C:\WinAVR

3. Librairie HomeLab

La librairie HomeLab est un ensemble de fonctions conçues pour le HomeLab Kit et les contrôleurs AVR. En utilisant cette librairie, la programmation devient bien plus facile et efficace. La dernière version de la librairie est disponible en téléchargement sur la page internet de HomeLab. Cette librairie doit être installée dans le même dossier d’installation du logiciel WinAVR.

4. Driver pour le port COM virtuel

Un driver est nécessaire pour connecter le programmeur USB JTAG-ICE avec votre ordinateur. Le driver doit être installé avant de connecter le programmeur. Le nom du fichier du driver est “CDM x.xx.xx.exe”, où les “x” correspondent au numéro de version. Après l’installation du driver vous pouvez connecter le programmeur JTAG-ICE grâce au port USB et laisser Windows détecter automatiquement le matériel. Vous devez voir la notification dans la barre des tâches Windows.

Notification de la détection d'un nouveau matériel

Selon le nombre de port virtuel défini précédemment, Windows assigne le numéro de port suivant au nouvel appareil. Un nouveau nom de port COM (numéro de série) est généré quand le matériel est connecté à un autre port USB du même ordinateur. Certaines versions du Studio AVR Studio ne peuvent pas utiliser le programmeur si le numéro du port COM excède le nombre 10 et le nombre 4 est réservé au debugger. Pour remédier à cette situation vous pouvez modifier le numéro du port assigné dans le Device manager et le choisir parmi la liste COM0…COM4. Cliquer ici pour voir la procédure complète .

Créer un nouveau projet

Pour écrire un programme pour le contrôleur il est nécessaire de créer un espace projet. Le projet contient habituellement différents fichiers tels que les codes source, les fichiers en-tête, les fichiers des programmes compilés, etc… Il est fortement conseillé de créer un nouveau dossier pour chaque projet (qui est proposé par New Project Wizard).

Les étapes suivantes doivent être réalisées lors de la création d’un nouveau projet avec l’aide de l’assistant

1. Ouvrir le studio AVR et cliquer sur New Project. Si la boite de dialogue ne s’ouvre pas automatiquement sélectionner Project - New project dans la barre de menu. Cliquer sur Next.

2. La boite de dialogue suivante concerne le compilateur et les réglages par défaut. Sélectionner le compilateur AVR GCC. Sur la droite, entrer le nom du projet et le nom du fichier source principal. Le nom du fichier source principal doit avoir l’extension ”.c”. Deux boites de dialogue doivent être vérifiées afin de créer le nouveau dossier et le fichier initial. Vous devez aussi définir le dossier dans lequel le projet va être créé. Une fois que les paramètres sont corrects appuyer sur Next.

NB! Si AVR GCC est manquant dans la liste du compilateur, c’est qu’il n’est pas correctement installé. Dans ce cas le logiciel WinAVR doit être réinstallé avant de commencer d’écrire le code source en C.

3. Dans la boite de dialogue suivante sélectionnez la plateforme du debugger ainsi que le microcontrôleur. Le HomeLab Kit utilise la plateforme du debugger JTAG ICE et le microcontrôleur ATmega128. Une fois que les paramètres sont corrects appuyer sur Finish.

4. L’espace du projet est maintenant créé et une nouvelle fenêtre s’ouvre qui permet de commencer à écrire le code source du programme.

5. Avant la première compilation il est nécessaire de régler certains paramètres du projet. Les paramètres importants sont la fréquence du contrôleur ainsi que la méthode d’optimisation. Le contrôleur HomeLab fonctionne à une fréquence de 14,7456 MHz (14745600 Hz). La fréquence peut être réglée dans les propriétés du projet en Hz (et non en MHz) : Project → Configuration Options → General. La méthode d’optimisation doit rester -Os, s’il n’y a pas nécessité d’utiliser une autre méthode.

6. Afin d’utiliser les fonctions de la librairie HomeLab le logiciel doit être correctement installé. A chaque création d’un nouveau projet il est nécessaire d’ajouter la librairie à la liste des objets liés. Pour ce faire, aller dans Project → Configuration Options → Libraries et add object puis choisir “libhomelab.a”.

S’il manque l’objet libhomelab.a dans la liste à gauche c’est que la librairie n’est pas correctement installée. Il est nécessaire de la réinstaller.

Test des réglages

Si l’environnement de développement vient juste d’être réglé il est nécessaire de le tester afin d’être certain qu’il est correct. La manière la plus simple est d’écrire un petit programme de test et de le transférer vers le contrôleur.

1. Connecter le programmateur avec le panneau ATmega128. Etre certain que le programmateur est correctement relié au connecteur JTAG (le câble est connecté directement au panneau du contrôleur – voir l’image suivante). Connecter l’alimentation du panneau du contrôleur (une petite LED verte doit s’allumer si la source d’alimentation d’énergie est connectée).

Copier le simple code source en C :

#include <avr/io.h>
#include <homelab/delay.h>
 
int main(void)
{
	// pin PB7 to output
	DDRB = 0x80;
 
	// endless cycle
	while (true)
	{
		// pin PB7 invertion
		PORTB ^= 0x80;
		hw_delay_ms(500);
	}
}
Boutons de compilation et du programmeur

Compiler le projet avec la commande Build (F7 au clavier). Etre certain que la compilation a réussi. Pour cela le message suivant doit apparaître à l’écran :

  Build succeeded with 0 Warnings...

2. Ouvrir la fenêtre du contrôleur avec Tools → Program AVR → Auto Connect. Etre certain que le tab Program est ouvert.

Si la fenêtre décrite ne s’ouvre pas et le message Connection Failed apparaît à l’écran c’est que la connexion avec le panneau ou le programmeur n’est pas correcte. Dans un premier temps il faut vérifier que le microcontrôleur est correctement alimenté (La LED verte est allumée) et que le programmeur est correctement relié au connecteur JTAG. Une fois ces vérifications faites, vérifier le numéro du port COM assigné par Windows. S’il est supérieur à 9, le studio AVR ne pourra pas reconnaître le programmeur. Il faut alors suivre les instructions au début de ce document afin de définir un numéro de port compris entre 0 et 4.

3. Dans la fenêtre du programmeur insérer dans la section Flash dans le champ Input HEX File l’endroit où est stocké le fichier compilé en appuyant sur le bouton ”…”. Le programme compilé se trouve habituellement dans le dossier du projet puis dans le dossier default. Le fichier à le même nom que le projet avec l’extension ”.hex”, par exemple “labor1.hex”.

Après avoir sélectionné le fichier correct cliquer sur le bouton Program qui transfère le programme au contrôleur. Si tout se déroule correctement le message suivant doit être visible en bas de la fenêtre :

OK
Reading FLASH input file.. OK
Setting device parameters for jtag programming ..OK
Entering programming mode.. OK
Erasing device.. OK
Programming FLASH ..       OK
Reading FLASH ..       OK
FLASH contents is equal to file.. OK
Leaving programming mode.. OK

D’après le programme la LED embarquée (PB7) doit commencer à clignoter. Si cela fonctionne cela signifie que l’environnement de programmation est correctement configuré et que vous avez réalisé avec succès votre premier programme. Félicitations !

Débugger

La liste des registres dans le débugger du ATmega128.

Débugger un programme signifie rechercher les éventuelles erreurs dans le programme. Pour ce faire on crée un programme qui s'appelle un débugger, il vérifie le programme pas à pas en arrêtant le programme si nécessaire. Une telle exécution du programme permet de vérifier les valeurs des variables à tout moment, le contenu des registres ainsi que la séquence d'exécution du programme. Le débugger est particulièrement utile lorsque le programme traite avec des programmes plus complexes où il est souvent compliqué de trouver les erreurs. Dans les micro-contrôleurs, il est aussi important que l'exécution du programme soit faite au pas à pas dans le contrôleur et permet de voir de plus les valeurs du registre en changeant les véritables sorties (??) At microcontrollers, it is also important that implementing the program step-by-step is done in the controller and allows to see in addition to the values of the registers also change of real outputs. Pour utiliser le débugger, deux conditions doivent être remplies: le micro-contrôleur doit être compatible avec le débugger et vous devez avoir obligatoirement le matériel informatique (hardware??) nécessaire - le programmeur JTAG qui est capable de débugger. Certains programmeurs bon marché qui utilisent l'interface de programmation ISP permet de transférer un programme compilé au contrôleur mais ne permet pas de le débugger.

Pour démarrer le programme dans le mode débugger avec le Studio AVR, le programme doit être compilé en appuyant sur le bouton build (F7) puis il doit être démarré avec la commande Run (F5). Il est possible d'ajouter au code source des break point (F9) à l'endroit où l'on veut faire une pause dans l'exécution. Si l'exécution du programme se déroule correctement jusqu'au break point, le programme s'arrête et l'état du micro-contrôleur peut être contrôlé en l'état. L'exécution du programme peut être relancée en donnant la commande Run à nouveau ou en utilisant l'exécution au pas à pas en utilisant la commande Step Into (F11).

L'utilisation de variables flottantes

Il est parfois nécessaire d'utiliser des variables flottantes dans un programme AVR. Lorsqu'on les utilise dans des calculs ou lorsqu'on veut les afficher à l'aide d'une fonction de type printf il est nécessaire de configurer les options du projet comme suit:

1. Ouvrir le menu option du projet par Project → Configuration Options. Dans l'onglet de configuration Libraries, où l'on retrouve l'objet libhomelab.a de la librairie du HomeLab, ajouter les objets libprintf_flt.a et libm.a.

2. Ensuite, ouvrir l'onglet Custom Options puis choisir la section [All files]. Ajouter dans la partie droite -lprintf_flt et -lm. Dans la partie [Linker Options] ajouter -uvfprintf.

3. Appuyer sur OK et quitter la fenêtre de configuration.