TP Pic 09
TP Pic 09
TP Pic 09
Page 1 sur 30
Chapitre 1 LE COMPILATEUR 1 INTRODUCTION 1.1 MICROCONTROLEUR PIC Un microcontrleur est un microprocesseur RISC (Reduced Instruction Set Computeur) comportant un nombre d'instructions rduit et disposant de ports d'entre/sortie pour communiquer avec l'environnement extrieur, de registres internes, de mmoire et d'une horloge interne ou externe. Les microcontrleurs PIC sont des microcontrleurs fabriqus par la socit Microchip qui fournit par ailleurs gratuitement la plate-forme logiciel de dveloppement MPLAB IDE. L'intrt est, pour un faible cot, de disposer d'un composant programmable de nombreuses fois, pouvant tre utilis de faon autonome : plus besoin d'ordinateur une fois le composant programm. L'utilisation d'un microcontrleur dans une application simplifie notablement les montages lectroniques entranant par la mme occasion un gain de temps et de cot. Les domaines d'utilisation principaux sont la robotique, la domotique, l'industrie. 1.2 LES OUTILS POUR REALISER UNE APPLICATION Pour dvelopper une application fonctionnant laide dun microcontrleur, il faut disposer dun compilateur et dun programmateur. Compilateur : Fabrique le programme Programmateur : Transfert le programme du PC au PIC (hard+soft)
Le compilateur est un logiciel traduisant un programme crit dans un langage donn (C, basic, assembleur) en langage machine. Ce logiciel peut aussi comporter un debugger permettant la mise au point du programme, et un simulateur permettant de vrifier son fonctionnement. Editeur : criture du programme en assembleur Compilateur : transforme lassembleur en langage machine Simulateur dbuggeur : Vrification, mise au point, simulation
MPLAB IDE Le fabricant Microchip fournit gratuitement le logiciel MPLAB IDE tlchargeable sur le site www. microchip.com Le programmateur permet de transfrer le programme compil (langage machine) dans la mmoire du microcontrleur. Il est constitu dun circuit branch sur le port COM du PC, sur lequel on implante le PIC, et dun logiciel permettant dassurer le transfert. Il existe diffrents logiciels, nous utiliserons Icprog.
V. Chollet - tp-pic-09.doc - 08/02/2009 Page 2 sur 30
1.3 LANGAGE DE PROGRAMMATION UTILISE Dans l'environnement MPLAB, Le programme doit tre crit en assembleur, langage peu volu, peu convivial, et donc peu accessible aux tudiants bac+2. On prfre donc un langage de programmation volu : basic ou c. Notre choix se porte sur le langage c tudi par ailleurs en cours d'informatique d'instrumentation. Le code source crit en langage c doit donc tre compil en assembleur l'aide d'un compilateur c. On utilisera le compilateur CC5X dans sa version gratuite tlchargeable sur www.bknd.com. Cette version gratuite permet d'crire environ 1ko de programme. On peut alors intgrer CC5X dans l'environnement MPLAB. Ainsi CC5X devient un outil de MPLAB dans lequel l'criture, la simulation et le debugging du programme en c devient alors possible. 2 COMPILATEUR CC5X 2.1 INSTALLATION Cette installation a dj t ralise. Les indications suivantes vous sont fournies pour l'installation sur votre ordinateur personnel. Crer un rpertoire CC5X o vous le souhaitez sur le disque dur de votre PC. Tlcharger CC5X free sur le site www.bknd.com Dcompresser ce fichier. Le rpertoire CC5X contiendra le fichier excutable cc5x.exe et les fichiers de dfinition (header .h) des microcontrleurs utilisables avec CC5X. 2.2 CARACTERISTIQUES La version gratuite est limite 1 ko de programme. Les divers types de variables sont cods de la faon suivante : Type char : forcment non signs sur 8 bits Type signed char : 8 bits signs. Type int : 8 bits signs Type unsigned int : 8 bits non signs Type long : 16 bits signs Type unsigned long : 16 bits non signs Type bit : 1 bit Type float : nombre virgule flottante cod sur 24 bits. La version commerciale utilise des types entiers sur 24 et 32 bits et des nombres virgule fixe.
Page 3 sur 30
3 MPLAB IDE v7.31 3.1 INSTALLATION Cette installation a dj t ralise. Les indications suivantes vous sont fournies pour l'installation sur votre ordinateur personnel. Crer un rpertoire MPLAB sur le disque dur de votre ordinateur. Tlcharger MPLAB sur le site www.microchip.com Dcompresser le fichier. Suivre les indications lors de l'installation. Pour pouvoir utiliser le debugger, il faut ensuite corriger le fichier TLCC5X.INI situ dans le rpertoire MPLAB IDE\Core\MTCSuites : Il faut remplacer Target=HEX par Target=COD et sauvegarder la modification. 3.2 - CONFIGURATION Dclaration du compilateur CC5X : Menu Project/Set Langage Tool Locations. Cette configuration a dj t ralise. Les indications suivantes vous sont fournies pour votre ordinateur personnel.
Page 4 sur 30
4 CREATION D'UN NOUVEAU PROJET 4.1 DEFINITION DU PROJET AVEC L'ASSISTANT Dans le menu Project, slectionner Project Wizard. Cela lance un assistant permettant de dfinir certaines options du projet.
Page 5 sur 30
Page 6 sur 30
La 4me tape permet d'ajouter ventuellement un fichier dj cr, par exemple un programme source en c. Si on dsire crire le programme ultrieurement, il faut cliquer sur annuler.
Page 7 sur 30
Ayant annul cette dernire tape, on dsire maintenant ouvrir une fentre pour l'criture du programme en langage c. Pour cela, dans le menu fichier, slectionner new :
4.2 LES OPTIONS Pour fonctionner correctement, CC5X a besoin d'accder aux donnes spcifiques du PIC slectionn. Ces donnes sont dfinies dans des fichiers de dfinition (header .h) situs dans le rpertoire o CC5X a t install. Il convient de dfinir ce chemin dans une fentre ouverte par le menu Project/Build Options.
Page 8 sur 30
Si ncessaire, remplacer program Files par Progra~1 car les noms de fichiers trop longs ne sont pas accepts.
Appliquer la modification
Page 9 sur 30
5 DEBUGGER Pour pouvoir utiliser le Debugger, il faut slectionner MPLAB SIM dans le menu Debugger :
Dans le menu Debugger, de nouvelles slections apparaissent. Choisir settings pour dfinir quelques options pour la simulation, en particulier la frquence de l'horloge dpendant du PIC choisi (4 Mhz pour un 16F84A).
Page 10 sur 30
Page 11 sur 30
Chapitre 2 PREMIER PROJET 1 CREATION DU NOUVEAU PROJET Lancer MPLab. Dans le menu Projet, slectionner new.
Dfinir le nom de votre projet et le rpertoire pour la sauvegarde. Dfinir les options :
Page 12 sur 30
Appliquer la modification
Page 13 sur 30
Puis il faut dfinir les options propres au microcontrleur choisi : Menu configure/configuration bits
Page 14 sur 30
2 ECRITURE DU PROGRAMME EN C Dans le menu File, slectionner New. Cela fait apparatre la zone de texte pour lcriture du programme.
Taper dans la zone de texte, sans pour linstant chercher comprendre, le programme suivant :
void main(void) {
Sauvegarder ensuite le fichier que lon nommera par exemple sorties.c dans le mme rpertoire que le projet : Menu File/Save as Le fichier ainsi cr doit alors tre ajout comme fichier source dans le projet :
Page 15 sur 30
Ouvrir alors le fichier sorties.c que vous venez de crer. On peut bien sr ouvrir un autre fichier .c condition quil soit dans le mme rpertoire. Quelle que soit la mthode, nous obtenons :
Page 16 sur 30
Nous verrons dans le chapitre suivant, le fichier devant tre transfr dans le PIC.
Page 17 sur 30
4 SIMULATION Comme indiqu au chapitre 1, il faut prciser au logiciel que loutil de mise au point est MPLAB SIM grce au menu Debbuger, Select Tool :
Dans le menu Debugger, de nouvelles slections apparaissent. Choisir settings pour dfinir quelques options pour la simulation, en particulier la frquence de l'horloge dpendant du PIC choisi (4 Mhz pour un 16F628 utilis avec lhorloge interne (Cf Configuration bits INTRC I/O sur on).
Page 18 sur 30
Avant de simuler le fonctionnement du programme, il faut dfinir ce quil convient dobserver. Pour cela slectionner Watch dans le menu View :
La compilation ayant t ralise auparavant, on peut slectionner Add symbol, RA0 pour visualiser ltat de RA0 lors de la simulation du programme. Puis slectionner dans la liste Add SFR : CMCON et TRISA pour visualiser ltat de ces registres. Slectionner aussi PORTA pour voir le mot binaire disponible sur le port A du pic.
Lancer lexcution de la simulation. On observe alors la modification des valeurs des registres et du port de sortie. Noter que PORTA et les bits RA0, RA1 etc affichent en ralit la mme information qui est le mot binaire disponible sur le port de sortie, donc de chaque bit RA0 RA7.
Page 19 sur 30
Chapitre 3 LE PROGRAMMATEUR 1 CONSTITUTION DU PROGRAMMATEUR Le programmateur de PIC est constitu dun circuit imprim reli par cble au port COM de lordinateur. Ce programmateur PIC-01 sera reli une alimentation stabilise 16V. Les alimentations stabilises traditionnellement rgles 12 V pour les TP dlectronique devront donc tre ajustes 16 V. Le PIC-01 permet la programmation des microcontrleurs PIC de chez MICROCHIP (familles PIC12Cxxx, PIC12Cxxx, PIC16Cxxx et PIC16Fxxx), ainsi que les EEPROM sries (famille 24 Cxx). Connectable sur le port srie de tout compatible PC, il fonctionne avec un logiciel sous Windows 95/98/NT/2000 et maintenant XP. Il supporte les botiers DIP 8, 18, 28 et 40 broches permettant la programmation de plus de 60 composants diffrents.
Le PIC utilis sera plac sur un premier support tulipe, duquel il ne devra pas tre t, afin dviter de tordre puis casser les pattes du microcontrleur lors des manipulations. On veillera ne pas se tromper sur le sens de branchement du PIC sur le programmateur : 2 INSTALLATION DU LOGICIEL Le logiciel IC-prog fonctionne avec le programmateur PIC-01. Les mises jour du logiciel sont tlchargeables sur www.seeit.fr Dcompresser les fichiers tlchargs dans un rpertoire. Bien vrifier que le fichier systme icprog est bien prsent dans ce rpertoire.
Page 20 sur 30
3 CONFIGURATION 3.1 Configuration sous Windows XP Sous WindowsXP, avec lexplorateur Windows, il faut slectionner le fichier ICprog.exe. Faire un clic droit sur le fichier ICprog.exe. Dans le menu Proprits , slectionner longlet Compatibilit , cocher la case situe dans le cadre Mode de compatibilit , puis slectionner Windows 2000 dans le menu droulant.
3.2 - Configuration\Hardware F3 Permet de configurer l'interface de programmation entre le logiciel et la carte de programmation. Programmateur : JDM programmer pour le programmateur PIC-01 Ports : COM1 ou COM2. Dans tous les cas la LED verte de votre programmateur doit sallumer lorsque vous effectuez une opration de lecture ou dcriture. Si ce nest pas le cas changez de port slectionn. Dlais I/O : Ce rglage dpend du PC utilis, essayez sur 1 ou sur 20 en cas de problme de programmation. Interface : Slectionner toujours Windows API.
Page 21 sur 30
Communication : Permet dinverser les signaux envoys ou reus sur le port srie. En gnral aucune case nest coche. Pour la configuration exacte en fonction du programmateur utilis, se rfrer au fichier MiseEnOeuvreXXX-XX.doc se trouvant sur la disquette livre avec le PIC01. 3.3 - Configuration\Options\Misc Priorit: Permet de dfinir la priorit du logiciel par rapport aux autres logiciels fonctionnant en multitches sous Windows. En gnral utiliser le mode normal . Utiliser le mode haute pour que ICprog soit prioritaire par rapport aux autres logiciels. Active Driver NT/2000/XP : Sous Windows 95/98/ME cette option nest pas accessible. Sous Windows NT/2000/XP cocher cette case. Vrifier dans ce cas que le fichier ICprog.sys se trouve bien dans le mme rpertoire que ICprog.exe. Active Vcc Control pour JDM : Ne pas cocher cette case. Mettre toutes les sorties au niveau haut : Cette fonction permet de mettre toutes les sorties du port parallle au niveau haut lorsque le port srie est utilis et de mettre toutes les sorties du port srie au niveau haut lorsque le port parallle est utilis. Cette fonction sert uniquement lorsque lon utilise un programmateur spcial ayant la fois le port srie et le port parallle de connect sur le PC.
V. Chollet - tp-pic-09.doc - 08/02/2009 Page 22 sur 30
PREMIERE PROGRAMMATION 16F628 4.1 - PRINCIPE Le logiciel du programmateur utilise un buffer, cest dire une mmoire intermdiaire entre les fichiers sur disques et les mmoires programmables des composants, tableau hexadcimal visualis l'cran. Pour programmer un composant partir dun fichier il faut dabord charger le contenu dun fichier dans le buffer laide de la commande Fichier\Ouvrir fichier , puis transfrer le contenu du buffer vers le composant avec le menu Commande\Tout programmer . 4.3 TEST DE VIRGINITE Relier le programmateur PIC-01 au port COM du PC par lintermdiaire du cble. Placer un PIC dans le bon sens sur le support adquat. Alimenter le programmateur laide de lalimentation stabilise rgle 16 V (vrifier au voltmtre). Lancer le logiciel ICprog. Menu Commande/Test de virginit, permet de vrifier si le composant est vide.
Page 23 sur 30
Addition de tous les octets constituant le programme prsent dans le composant. Cela permet didentifier un programme par rapport un autre et vrifier sils sont identiques. Cette valeur se modifie automatiquement lorsque l'on modifie le programme lcran.
Si le composant est vierge ou effac tous les bits de la mmoire seront au niveau logique 1 (FF). Cette fonction est utiliser avant toute programmation car il nest pas possible de programmer un composant correctement si celui-ci nest pas vierge ou na pas t effac pralablement. Si ce nest pas le cas, il faut effacer le composant : menu "Commande\Tout Effacer". 4.3 CHOIX DU COMPOSANT, CONFIGURATION Permet de slectionner un microcontrleur PIC du type 12Cxxx, 12Fxxx, 16Cxxx, 16Fxxx, 18Fxxx pour une utilisation avec le programmateur PIC-01. Pour les composants de la srie 16C54/55/56/57/58, le mode de programmation est diffrent et il faut utiliser le programmateur PIC-02. Diffrentes options apparatront galement dans le cadre "Configuration" permettant de modifier les registres de configurations. Pour connatre l'utilisation de ces registres veuillez consulter le datasheet du fabricant concern. Cependant quelques informations vous sont donnes ci-dessous pour les microcontrleurs PIC. Un choix entre plusieurs oscillateurs peut tre ralis. Cette slection dpend du type doscillateur connect sur les entres OSC1/CLKIN OSC2/CLKOUT lors de lutilisation du microcontrleur sur son circuit final aprs programmation. Pour les modes XT, un oscillateur quartz ou un oscillateur TTL/C-MOS connect sur les entres OSC1/CLKIN et OSC2/CLKOUT. Pour le mode RC, un pont RC connect sur lentre OSC1/CLKIN, (frquence moins prcise). et la est est
Page 24 sur 30
Validation ou non du WDT : En validant cette case par une croix, le "Watchdog timer" sera activ. Cest dire quun oscillateur interne indpendant de loscillateur externe sera fonctionnel mme si le microcontrleur est en position sommeil. Validation ou non du PWRT : En validant cette case par une croix, le "Power-up Timer" sera activ. Le microcontrleur effectuera sa mise sous tension un Reset gnral dune dure de 72ms, le temps que la tension dalimentation se stabilise. Validation ou non du MCLR : En validant cette case par une croix, le "Memory Clear" sera activ. Il sera possible de faire une remise zro externe par la broche GP3\MCLR\Vpp du microcontrleur. Cette borne sera relie au +5V du pic travers une rsistance (2,2 k par exemple). Validation ou non du CP : En validant cette case par une croix, le "Code Protect" sera activ. Le programme intgr dans la mmoire du composant ne sera pas lisible si lon fait une re-lecture de celui-ci. Cependant le composant reste effaable pour tre reprogramm si celui -ci contient une mmoire Flash. Attention si vous cochez cette case, le composant ne pourra pas tre vrifi aprs programmation et un message derreur interviendra systmatiquement lors de la vrification du composant aprs programmation. On vitera donc de cocher cette case. Dautres explications sur le rle des fusibles seront donnes plus loin.
Page 25 sur 30
Le programme peut tre affich en hexadcimal ou en assembleur dans la fentre Adresse-Program Code. On constate que le Checksum a chang de valeur. Vrifier que la configuration des fusibles correspond celle de la compilation du programme dans MP Lab, puis choisir Commande/ Tout programmer.
Aprs avoir programm le PIC, le logiciel effectue une vrification. Si le message Echec de la vrification ladresse 0000h apparat, il sagit le plus souvent dune tension dalimentation insuffisante du programmateur. Sinon recommencer la programmation aprs avoir effac le composant !
Lorsque le transfert du programme dans le pic est ralis, le logiciel procde une vrification. Si un message derreur apparat, il peut sagir dun mauvaise connexion du programmateur (erreur de port srie) ou dune mauvaise alimentation du programmateur.
Page 26 sur 30
UTILISATION DU PIC DANS UN MONTAGE Le microcontrleur ayant t programm, il faut maintenant tester le fonctionnement du circuit dans le montage auquel il est destin. Mettre le programmateur hors tension en coupant lalimentation stabilise. Sortir dlicatement le PIC et son premier support de la carte programmateur. Utiliser une pince ou un tournevis gliss entre les deux supports.
Implanter le composant et son support sur une platine dessais type Labdec. Raliser le cblage du montage correspondant au programme sur la platine Labdec :
470 470
2,2 k
Mettre sous tension et tester le fonctionnement. Si tout sest droul normalement, les leds branches sur les sorties mises 1 dans le programme sont allumes, les autres sont teintes .
Page 27 sur 30
R O V
Exercice 1
Lire le chapitre 1 du livret polycopi puis rpondre aux questions suivantes : 1/ De quels outils logiciels faut-il disposer pour raliser une application utilisant un PIC. 2/ Quel est le rle du compilateur ? Quel est le rle du programmateur ?
Contrle :
Exercice 2
Suivre le chapitre 2 pour raliser un premier projet et utiliser le simulateur de MPLab.
Contrle :
Exercice 3
Lire le chapitre 3 afin dtre capable de raliser la programmation du pic. Au vu du schma de la platine de test quel doit tre ltat de RB0 pour allumer la led rouge ? Ecrire un programme en langage c, permettant dallumer simultanment les leds rouge et verte, la led orange tant teinte.
Contrle :
Compiler ce programme. Programmer le controleur laide dIcprog en transfrant le fichier hexadcimal dans le pic. Implanter le pic sur la platine de test et vrifier le bon fonctionnement.
V. Chollet - tp-pic-09.doc - 08/02/2009 Page 28 sur 30
Exercice 5 : Timer 0
Ecrire un programme qui fait clignoter la frquence de 4 Hz, la led rouge connecte sur la sortie RB0 du port B. Compiler, programmer le pic et tester le fonctionnement.
Contrle :
Exercice 7 : Comparateur
Ecrire un programme dlivrant sur la sortie RB0, le rsultat de la comparaison de la tension Vin applique sur RA1 et de la tension de rfrence interne rgle 1,25 V. Compiler, programmer le pic et tester le fonctionnement par action sur le potentiomtre P de la platine de test.
Contrle :
Contrle :
Ecrire le programme permettant au pic de raliser la fonction dcrite ci-dessus. Compiler, programmer le pic et tester le fonctionnement.
Page 29 sur 30
Contrle :
Page 30 sur 30