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