Laboratoire – Systèmes en temps réel

publicité
Département de génie électrique
Auteur :
Professeur
:
Pascal Poirier
Jean-Marc Beaulieu
Laboratoire – Systèmes en temps réel
Présentation de la carte de développement STK-500
Présentation de la carte de développement STK-500................................ 2
Introduction ..................................................................................................................... 2
Description matérielle ................................................................................................. 4
Les différentes sections ............................................................................................... 4
Connexions de la carte STK-500 ................................................................................ 4
Configuration des cavaliers......................................................................................... 5
Description des LEDs et des boutons poussoirs.......................................................... 8
Connexion aux ports d’E/S ....................................................................................... 10
Interface RS-232 ....................................................................................................... 11
Connecteurs pour les microcontrôleurs..................................................................... 12
Modes de programmation.......................................................................................... 13
Connecteurs d’extension ........................................................................................... 14
Test de fonctionnement (ou comment je sais que la carte fonctionne) ..................... 15
1
Présentation de la carte de développement STK-500
Introduction
La carte de développement STK-500 permet de concevoir et tester des
applications pour la plupart des microcontrôleurs AVR Flash d’ATMEL Corporation.
Elle est polyvalente et 100% configurable. Voici en résumé les caractéristiques
importantes de la carte pour la réalisation du laboratoire en temps réel :
•
•
•
•
•
•
•
•
•
•
•
•
Compatible avec AVR Studio®
Alimentation régulée pour une tension de 10-15V CC
Connecteurs pour les microcontrôleurs AVR 8-pin, 20-pin, 28-pin et 40-pin
Programmation « In-System Programming » (ISP) des microcontrôleurs AVR
Reprogrammation des microcontrôleurs AVR
8 boutons poussoir pour usage général
8 LEDs pour usage général
Port d’E/S facilement accessibles par les connecteurs externes
Interface RS-232 avec le PC pour la programmation et le contrôle
Interface RS-232 additionnel pour usage général
2 connecteurs d’extension pour des modules externe ou pour le prototypage (nonutilisé)
2 Mo DataFlash intégrée pour le stockage des données non-volatiles (non-utilisé)
La carte STK-500 est compatible avec AVR Studio 3.2 ou les versions plus
récentes. Pour obtenir une version d’AVR Studio ou les autres outils d’AVR, consultez le
site Internet d’ATMEL, www.atmel.com.
La carte STK-500 supporte plusieurs microcontrôleurs dont le ATmega163 qui
sera utiliser dans le cadre des laboratoires. Pour une description plus complète des
microcontrôleurs supportés, consultez la guide de l’usager disponible à l’adresse
suivante :
http://www.atmel.com/atmel/products/prod204.htm
L’ensemble de départ comprend tous les accessoires nécessaires à la réalisation
du laboratoire. Dans notre cas, il sera utilisé dans un environnement Windows® 2000. La
figure 1 montre la configuration par défaut qui sera utilisée pour vérifier le bon
fonctionnement de la carte et du microcontrôleur avec l’exemple 2 écrit par Volker Oth.
2
Figure 1 - Configuration par défaut
3
Description matérielle
Les différentes sections
La carte STK-500 est divisée en plusieurs sections. La figure 2 montre les
différentes composantes ainsi que les sections importantes de la carte. Chaque section est
expliquée un peu plus en détails ci-bas. Pour une description plus complète des
différentes sections, consultez le guide de l’usager de la carte.
Figure 2 – Composantes de la carte STK-500
Connexions de la carte STK-500
La carte STK-500 doit être alimentée par une source de tension externe entre 10 et
15 Volts CC capable de fournir 500 mA minimum. L’interrupteur « Power » permet
d’allumer ou éteindre la carte. Lorsque la carte est allumée, le LED situé près de
l’interrupteur devient rouge. Le « Status LED » passera du rouge, au jaune, jusqu’au vert.
Le « vert » indique qu’il n’y a pas de problèmes et que la carte est prête à fonctionner. Le
LED vert situé au-dessus de la section « cavaliers » (voir figure 5) indique que la tension
d’alimentation du microcontrôleur est présente.
4
Pour programmer ou configurer le microcontrôleur, un lien série RS-232 est
nécessaire entre la carte et le PC. Connectez un des ports de communication (COM1 par
exemple) au connecteur « RS-232 CTRL » de la carte STK-500. AVR Studio détectera
automatiquement lequel des ports est utilisé pour le contrôle si votre carte de
développement est bien alimentée. La figure 3 montre comment effectuer les
branchements de la carte avec l’alimentation et le PC. Le deuxième connecteur RS-232
(RS-232 SPARE) est utilisé comme port de communication entre la microcontrôleur et un
autre système (PC ou autre microcontrôleur).
Figure 3 - Connexion de l'alimentation et de l'interface RS-232
Configuration des cavaliers
La carte de développement STK500 peut être utilisée pour de multiples
applications et dans plusieurs modes. Dans le cadre de l’exemple présenté dans le
document « Procédure pour construire un nouveau projet avec AVR Studio et AVRGCC », les cavaliers de la carte sont configurés par défaut. Pour le laboratoire de ce
cours, la configuration des cavaliers sera également par défaut.
5
Figure 4 - Configuration par défaut des cavaliers
Description des cavaliers
Cavalier
VTARGET
AREF
RESET
XTAL1
OSCSEL
BSEL2
Défaut
Connecté
Connecté
Connecté
Connecté
Connecté(1-2)
Non-Connecté
PJUMP
Non-Connecté
Description des paramètres par défaut
« On-board VTARGET » alimentation connectée
« On-board Analog Voltage Reference » connecté
« On-board reset system » connecté
« On-board clock system » connecté
« On-board » oscillateur sélectionné
Non-monté1. Utilisé pour la programmation « hautvoltage » du ATmega161 et ATmega1632
Non-monté. Utilisé pour la programmation « hautvoltage » du AT90S2333 et AT90S4433
Paramètres cible Vcc, VTARGET
Le VTARGET contrôle la tension d’alimentation, au niveau du connecteur, du
microcontrôleur choisi. Il peut être contrôlé par AVR Studio ou alimenté par une source
externe. Si le cavalier VTARGET est monté (connecté), la tension d’alimentation « onboard » est connecté. La tension d’alimentation « on-board » peut être ajustée entre 0-6V
directement à partir d’AVR Studio. Vérifiez toujours les fiches techniques de votre
1
2
« Non-monté » signifie que le cavalier n’est pas connecté.
Le microcontrôleur ATmega163 peut aussi être programmé en mode « ISP » (In-system programming).
6
microcontrôleur pour connaître ses tensions d’alimentations avant d’ajuster la tension
VTARGET.
Si le cavalier VTARGET est déconnecté, la cible Vcc doit être fournie par une
source externe sur une des broches des connecteurs « PORT ».
Quand vous utilisez une source externe pour VTARGET, l’usager doit ajuster
cette VTARGET à un niveau plus élevé que AREF (analog reference voltage). Utilisez
toujours une référence (GND) commune quand vous utilisez une tension externe
VTARGET.
Tension de référence analogique, AREF
La tension de référence analogique (AREF) peut fournir la tension de référence
pour le convertisseur A/D intégré. Si le cavalier AREF est monté, la tension de référence
« on-board » est connectée à l’AREF de l’AVR. Cette tension peut être ajustée entre 06V mais, ne dépassez pas la valeur de VTARGET!
Quand le cavalier AREF est déconnecté, la tension AREF doit être fournie par
une source externe à la broche REF du connecteur PORTE/AUX.
Si vous utilisez une source externe pour l’AREF, l’usager doit s’assurer que la
VTARGET est à un niveau supérieur à l’AREF. Ceci peut être facilement vérifié en
regardant la valeur de VTG inscrite dans AVR Studio avant d’ajuster AREF.
Paramètres de réinitialisation, RESET
Le cavalier RESET contrôle le signal de réinitialisation du STK500. Quand le
cavalier RESET est monté, le maître MCU contrôle le signal de réinitialisation de l’AVR.
Quand le cavalier est non-monté, le signal de réinitialisation est déconnecté. Cette option
est pratique pour les applications prototypes utilisant un circuit de réinitialisation externe.
Le cavalier RESET doit toujours être monté lorsque vous utilisez un
microcontrôleur en mode « programmation haut-voltage ». Si vous avez un circuit de
réinitialisation externe, celui-ci doit permettre au maître MCU de contrôler la ligne de
réinitialisation pendant la programmation. Le bouton « RESET » est déconnecté si le
cavalier RESET est non-monté.
Paramètres d’horloge, XTAL1 et OSCSEL
Le STK500 inclus plusieurs options d’horloge pour la cible AVR. La
configuration des cavaliers XTAL1 et OSCSEL contrôle le choix de l’horloge. OSCSEL
détermine quel signal sera acheminé vers la broche XTAL1 du microcontrôleur.
7
Quand le cavalier XTAL1 est connecté, l’horloge interne du STK500 est utilisée
comme l’horloge principale de la cible AVR. Si le cavalier XTAL1 est non-monté,
l’horloge interne est déconnectée. Ceci permet d’utiliser une horloge externe ou un cristal
comme horloge source de la cible AVR. Une source externe d’horloge ou un cristal peut
être relié sur le connecteur PORTE.
L’horloge interne du système est choisie avec le cavalier OSCSEL. Si le cavalier
est monté sur les broches 1 et 2, le signal d’horloge « on-board software » est connecté.
Si le cavalier est monté sur les broches 2 et 3, le cristal « on-board » est connecté. Si
aucune des broches n’est montée, le signal « on-board » XTAL1 est déconnecté.
Quand vous programmez l’AVR en mode haut-voltage, OSCSEL devrait être
monté sur les broches 1 et 2 pour donner au maître MCU le contrôle de l’horloge cible.
BSEL2
Le cavalier BSEL2 connecte le signal « Byte Select 2 » pour la programmation
haut-voltage de l’ATmega161 et l’ATmega163. Ce cavalier devrait être monté seulement
en mode programmation haut-voltage pour les deux microcontrôleurs mentionnés
précédemment. Pour une description complète du signal « Byte Select 2 », consultez les
fiches techniques des microcontrôleurs à la section « Programming ».
PJUMP
Le cavalier PJUMP relie la broche de programmation des microcontrôleur
AT90S2333 et AT90S4433 aux lignes de programmation quand vous utilisez le mode
haut-voltage. Ce cavalier devrait être monté seulement en mode programmation hautvoltage pour les deux microcontrôleurs mentionnés précédemment.
Description des LEDs et des boutons poussoirs
La carte STK-500 possède 2 boutons poussoir et 3 LEDs pour des fonctions
spéciales et une indication de l’état de la carte. La figure 5 montre l’emplacement des
différents boutons poussoirs et LEDs.
8
Figure 5 - Boutons poussoirs et LEDs
Le bouton « RESET » réinitialise le microcontrôleur visé lorsqu’il est appuyé. Le
maître MCU n’est pas affecté par ce bouton. Quand le cavalier « RESET » n’est pas
connecté, le bouton « RESET » n’a aucun effet sur le microcontrôleur.
Les versions futures d’AVR Studio peuvent mettre à jour le maître MCU de la
STK-500. AVR Studio détectera automatiquement une vieille version du logiciel et
mettra à jour celui-ci dans la mémoire FLASH du maître MCU. Pour ce faire, l’usager
doit appuyer sur le bouton « PROGRAM » et alimentant la carte. AVR Studio explique
clairement comment effectuer la mise à jour.
Le LED « Main Power » est branché directement sur l’alimentation principale de
la carte. Ce LED est toujours allumé lorsque la carte est sous tension.
Le LED « Target Power » est connecté sur les lignes d’alimentation (VTG) du
microcontrôleur utilisé. Ce LED est allumé lorsque l’alimentation est bien appliquée au
microcontrôleur.
Le LED « Status » est un LED 3 couleurs. Pendant la programmation il est jaune.
Quand le microcontrôleur est programmé correctement, il devient vert. S’il s’est produit
une erreur pendant la programmation, il deviendra rouge. Consultez le guide de l’usager
section 7 pour plus de détails concernant les problèmes au niveau de la programmation.
Pendant le démarrage de la carte, le LED passe du rouge au jaune et ensuite au vert qui
indique que le maître MCU est prêt.
9
La carte STK-500 possède aussi 8 LEDs ainsi que 8 boutons poussoirs pour usage
général. Cette section est complètement indépendante du reste de la carte. C’est pourquoi
il est nécessaire brancher les connecteurs 10 broches correspondant sur ceux des ports
d’E/S pour utiliser cette section de la carte. La figure 1 montre comment les brancher aux
ports d’E/S. Le fil rouge du câble plat indique la broche 1. Vérifiez que la broche 1 est
bien branchée de part et d’autre à la broche 1 des connecteurs. Pour une description
complète de l’implémentation des LEDs ainsi que des boutons poussoirs, consultez le
guide de l’usager de la carte.
Connexion aux ports d’E/S
Tous les ports d’Entrés/Sorties de la carte STK-500 sont accessibles via les
connecteurs d’E/S. La figure 6 montre l’emplacement de ceux-ci.
Figure 6 - Ports d'Entrés/Sorties
La figure 7 montre la disposition des broches des ports d’E/S. Le PORT A est
utilisé comme entrée des signaux analogiques pour le convertisseur
Analogique/Numérique (ADC). C’est le port qui sera utiliser pour l’acquisition des
signaux analogiques dans le laboratoire. Le connecteur PORTE/AUX possède quelques
signaux spéciaux. Le microcontrôleur utilisé en laboratoire (ATmega163) ne possède pas
de PORT E. Par contre, les broches « RST », « REF », « XT1 » et « XT2 » sont
connectées au microcontrôleur. Voyons de plus près à quoi servent ces broches.
10
Figure 7 – Disposition des broches des différents ports d’E/S
•
•
•
•
REF : Tension de référence analogique
XT1 : XTAL broche 1
XT2 : XTAL broche 2
GND (broche 6) : Masse analogique
Interface RS-232
La carte STK-500 possède 2 ports RS-232. Le premier (RS-232 CTRL) est utilisé
pour la communication avec AVR Studio. L’autre (RS-232 SPARE) peut être utilisé pour
la communication entre le microcontrôleur visé et le port série du PC. Pour utiliser
l’interface RS-232 du microcontrôleur, les broches du UART doit être connectée
physiquement au RS-232.
Le connecteur 2 broches nommé « RS-232 SPARE » peut être utilisé pour la
connexion entre le convertisseur RS-232 et les broches du UART du microcontrôleur
visé. Utilisez un fil double (fournit dans le kit de départ) pour effectuer cette connexion.
La figure 8 montre comment brancher l’interface RS-232 pour la communication entre le
microcontrôleur et le PC.
11
Figure 8 - Connexion de l'interface RS-232
Connecteurs pour les microcontrôleurs
Le module de programmation est composé des 8 connecteurs DIP situés dans la
partie blanche au milieu de la carte (figure 9). C’est dans un de ces connecteurs que le
microcontrôleur peut être inséré pour être programmé ou utilisé dans une application. Un
seul microcontrôleur à la fois devrait être inséré dans les connecteurs DIP.
La mémoire FLASH des microcontrôleur est garantie pour 1000 opérations de
programmation; la vie utile d’une mémoire flash est beaucoup plus longue.
La coche du connecteur doit correspondre à la coche dans le boîtier du
microcontrôleur. Si le microcontrôleur est insérer à l’envers, cela peut endommager le
micro ou même la carte STK-500.
La figure 9 montre les différents connecteurs ainsi que l’emplacement du
microcontrôleur ATmega163.
12
Figure 9 - Module de programmation
Modes de programmation
Le microcontrôleur inséré dans le connecteur peut être programmé par AVR
Studio de 2 façons différentes :
1) La programmation ISP (ISP Programming).
2) La programmation Haut-Voltage (High-voltage Programming).
Dans le cadre du laboratoire, c’est la programmation ISP qui sera utilisée. Tous
les microcontrôleurs de la famille AVR peuvent être programme en mode ISP à
l’exception des 3 suivants : AT90C8534, ATtiny11 et ATtiny28. La figure 10 montre la
connexion entre « ISP6PIN » et « SPROG3 » qui doit être faite avec le câble plat 6
broches (fournit dans le kit de départ) pour programmer le ATmega163 en mode ISP.
Vérifiez que la broche 1 est bien branchée de part et d’autre à la broche 1 des
connecteurs. De plus, la configuration des cavaliers doit être conforme à la figure 4.
Les autres connecteurs servent pour les différents formats de microcontrôleur de
la famille AVR.
Pour en connaître plus sur la programmation Haut-Voltage, consultez la guide de
l’usager de la carte STK-500.
13
Figure 10 - Connexion pour programmer le ATmega163 en mode programmation ISP
Connecteurs d’extension
La carte STK-500 possède 2 connecteurs d’extension, de chaque côté du module
de programmation. Tous les ports d’E/S, les signaux de programmation et de contrôle des
microcontrôleurs sont acheminés aux connecteurs d’extension. Ces connecteurs
permettent facilement le prototypage d’applications avec la STK-500. La figure 11
montre l’emplacement des ces connecteurs. La disposition des broches est montrée à la
figure 12.
14
Figure 11 - Connecteurs d'extension
Figure 12 - Disposition des broches des connecteurs d'extension
Test de fonctionnement (ou comment je sais que la carte fonctionne)
Pour s’assurer que la carte STK-500 fonctionne bien, allumez-la et vérifiez que
les 3 LEDs d’état (Main Power , Target Power et Status) sont allumés et que la maître
MCU est prêt (voir section 2.4 et figure 5). Si tout est correct, le programme de test peut
être chargé dans le microcontrôleur.
15
Une fois AVR Studio installé (voir document Procédure pour installer AVR
Studio et son compilateur C), ouvrez AVR Studio en double-cliquant sur l’icône « AVR
Studio ». Le chemin par défaut est « Menu Démarrer ! Programmes ! Atmel AVR
Tools ». Une fois AVR Studio ouvert, cliquez sur l’icône « AVR » dans la barre d’outils
ou ouvrez le menu « Tools » et sélectionnez « STK500/… ». La configuration par défaut
ne devrait pas nécessiter aucun changement. Choisissez le microcontrôleur utilisé dans la
section « Device » soit ATmega163. Le mode de programmation doit être comme
présenté sur la figure 13. Cliquez sur le bouton « … » dans la section « Flash » et
parcourrez jusqu’au fichier « gcctest2.hex ». Cliquez sur le bouton « Program » de cette
même section et attendez le résultat. Ce programme fait courir un LED sur les LEDs à
usage général. Si le LED se promène de droite à gauche, la carte est fonctionnelle ainsi
que le microcontrôleur utilisé.
Figure 13 - Programmer le microcontrôleur pour tester le fonctionnement
16
Téléchargement