Home
Introduction à la programmation de microcontrôleurs
Contents
1. pe Page 3 3 novembre 2002 2 LE CIRCUIT FIG 1 le circuit en configuration utilisation L7805CV 25 HE 6 12V 10 pF 100 nF Zenef 12V n 100k i Utilisation Dotz D13 Masse 18 Q Suppor tulipe pour strap ou raccordement FIG 2 le m me en configuration programmation L7805CV 6 12V 10 ue 18 4 MHz RET H O 22pF OT E d Utilisation Dotz D13 Masse 18 JML Page 4 3 novembre 2002 2 LE CIRCUIT 2 Le circuit Vous constaterez ais ment que le circuit est d une simplicit biblique Cette simplicit ne dispense toutefois pas de quelques commentaires J ai dessin deux variantes du sch ma l une relative la configuration utilis e pour l exploita tion l autre pour la programmation Vous jouerez utilement au jeu des erreurs pour trouver les diff rences 2 1 Quartz Pour fonctionner le PIC16F84 a besoin d un quartz qui va lui permettre de d finir une fr quence d horloge Les 16F84 courants supportent une fr quence de 4MHZ ce qui est d j une belle performance mais il existe des F1 qui roulent 20 MHz Un conseil il existe des quartz de 4 000 MHz et des quartz de 4 096 MHz Pour ma part je pr f re la deuxi me fr quence qui permet apr s une division judicieuse 4096 2 2 de faire un chronom tre ou toute autre appli cation n cessitant une base de temps Le qua
2. assembleur appliqu la programmation des PIC Vous pourrez utilement vous reporter ce sujet un document de fond La programmation des PICs de BIGONOFE par exemple sur http www abcelectronique com bigonoff Le travail r alis par le code d ent te est assez classique on fixe l origine du code dans la m moire du PIC peut tre pas n cessaire puisque 0 est l adresse par d faut puis on fait un reset des sorties du port apr s quoi on d fini les 5 broches du port comme autant de sorties RAO RA4 Cette manipulation ne peut se faire qu en s lectionnant la page 1 de la m moire le registre trisa n tant pas accessible depuis la page 0 3 3 5 Le corps du programme Le programme proprement parler n est constitu que de 6 lignes une tiquette qui servira boucler 4 lignes qui affectent successivement les valeurs 1 et 0 la pin 2 RA3 du PIC en laissant passer une tempo entre chaque changement apr s quoi la derni re ligne reboucle sur l tiquette d finie plus haut On ne peut plus simple donc 3 3 6 Les temporisations Vous n aurez aucun mal d monter le m canisme des tempos de 60 30 10 5 sec etc Elle s obtiennent par r p tition d une tempo de base rep r e par l tiquette waitO L analyse de cette derni re est int ressante Les deux premi res lignes qui suivent l tiquette ne sont parcourues qu une seule fois Elles initialisent le compteur count1 200 va
3. Boucles r alisant une tempo l mentaire Charge count1 avec va Charge count2 avec va leur d cimal leur d cimal Le 200 Le 200 Page 9 JUL 3 novembre 2002 3 NOTRE PREMIER PROGRAMME d2 decfsz count2 1l d cremente et saute ligne suiv si zero goto d2 si diff rent de zero decfsz count1 1 d cremente countl si count2 zero goto d1 boucle interne si count2 lt gt zero return end 3 3 Commentaires sur ce code 3 3 1 Indentations Le langage assembleur dicte certaines r gles parmi celles ci le respect d un certain forma lisme dans la mise en forme du code source Les d clarations de variables sont cadr es gauche tous les xxx equ xxx Les directives LIST ou _ CONFIG sont pr c d es d un blanc tabulation ou espaces s Les tiquettes sont cadr es gauche Les lignes de code sont comme les directives CONFIG ou LIST pr c d es d un blanc Le cadrage des commentaires pr c d s d un est indiff rent 3 3 2 La directive CONFIG J ai laiss en ent te les lignes qui d finissent les param tres combin s par une fonction ET et qui d finissent la configuration souhait e Ces quelques lignes auraient aussi bien pu tre remplac es par une simple ligne _ CONFIG H 3FF1 La valeur hexa 3FFl donne en binaire 0011 1111 1111 0001 Vous vous reporterez utilement la documentation existante pour retrouver la signification des dif
4. Elle impose en effet de taper chaque fois le mot de passe administrateur Le deuxi me aspect important est la n cessit de mettre en place et de param trer correctement trois variables d environnement PPSETUP PPDELAY et PPLPT Les valeurs correctes sont rappel es dans le fichier script de commande nomm mypp Pour ma part je pr f re plut t que d utiliser ce fichier taper une fois pour toutes les trois lignes qui suivent export PPSETUP 3 export PPDELAY 6 export PPLPT 1 Vous vous reporterez utilement au contenu de PP TXT pour la signification de ces varaibles L examen du code source de pphw et les nombreux essais effectu s d montrent que l initia lisation de PPLPT n est pas indispensable si vous utilisez le premier port parall le de votre machine L adresse 0x378 est utilis e par d faut si la variable d environnement n est pas ini tialis e Par contre il est imp ratif de cr er PPSETUP et de l initialiser 1 ou 3 Les valeurs 0 et 2 ne conviennent pas L explication du motif peut tre trouv e dans PP TXT Notre hardware minimaliste semble en effet se comporter du point de vue du soft comme un programmeur quip de buffers 7407 non inverseurs bien s r avec des fils et des r sistances on ne risque pas d inverser quoi que ce soit La variable PPDELAY ne semble pas avoir une incidence majeure du moins sur ma vieille machine M me non initialis e la programmation fonctionne correctement 5 2 L
5. la destruction de ce composant Par ailleurs si vous voulez vraiment faire preuve de prudence utilisez donc deux piles de 9V l une pour la tension de programmation l autre pour alimenter le r gulateur 5V De la sorte votre montage est totalement isol du reste du monde et la masse est impos e par le port parall le Concernant la r sistance du PIC je peux simplement vous indiquer que le seul PIC que j ai achet m a servi pour tous les essais et continue clignoter gaiement cot de mon PC J ai essay d tre tr s complet dans mon expos Cel conduit un pav de plus de 20 pages en version imprim e J esp re que le volume ne rebutera personne Par contre le lecteur devrait trouver ici du moins c est mon espoir tout ce dont il a besoin pour un premier essai 7 2 Et maintenant Arriv ce stade se pose la question de savoir quelle suite donner ce travail Chacun fera comme bon lui semble 7 2 1 Simplifier encore On pourra par exemple essayer de simplifier encore peut tre supprimer la zener 12V et les resistances associ es et laisser monter la tension de programmation 14V 5 9 Pour ma part je nai pas essay J ai r ussi conduire tous mes essais avec un seul PIC qui va continuer me rendre des services dans les prochains temps je ne souhaite pas faire cet essai au risque de d passer de quelques d cimales ce que peut supporter MCLR 7 2 2 Et les autres PIC s Une autre voie ser
6. rence de la m thode pr c dente le traitement de linuxpp zip ne cr e pas de sous r pertoire Veillez ne pas proc der dans votre r pertoire personnel faute de quoi vous auriez du mal retrouver vos petits plus tard La diff rence essentielle entre les deux m thodes r side dans le fait que le traitement de linuxpp zip donne simplement l executable sous Linux alors que la m thode pr c dente vous permet de r cup rer aussi pp exe l executable sous DOS a peut servir si votre linuxette est occup e 5 1 Les conditions pr alables l utilisation de pp Il importe de bien se souvenir le logiciel saurait vous le rappeler le cas ch ans que l acc s aux ports n est pas autoris normalement l utilisateur Lambda Ceux ci ne sont accessibles qu l administrateur Une fois n est pas coutume nous ferons donc une chose inimaginable en pure logique Linuxienne nous allons utiliser pp sous compte root Cette infraction est toutefois admissible dans la mesure ou nous sommes sur une machine isol e et qui n a pas d acc s pe Page 15 3 novembre 2002 5 TRANSFERT VERS LE PIC UTILISATION DE PP Internet ou un r seau d entreprise au moment ou elle sert de console de programmation Une autre solution aurait t de rester sous compte utilisateur et de lancer la commande pp au travers d une commande su Cette m thode est toutefois trop lourde lorsqu on se pr pare une foule d essais
7. 1 INTRODUCTION Introduction la programmation de microcontr leurs PICI16F84 sur une Linuxette Jean Marc LICHTLE 3 novembre 2002 Table des mati res Table des figures 1 Introduction 1 1 Les microcontro leurs Les microcontr leurs envahissent notre environnement sans que nous le sachions Ces petits composants se retrouvent de plus en plus dans tous les mat riels que nous utilisons quotidienne ment machine laver mulot souris ordinateur t l viseur Dot s d une logique programm e ils sont capables de r agir l environnement un peu la mani re d automates programmables Mais leurs propri t s ne se limitent pas offrir un certain nombre d entr es sorties logiques Ils sont parfois dot s de fonctions suppl mentaires telles que convertisseurs analogiques num riques horloges temps r el comptage rapide etc L int r t pour ces composants est directement fonction de leur prix Sachez que vous pouvez pour moins de 10 Euros faire l acquisition d un uc tout fait int ressant Plusieurs fondeurs se partagent ce march citons INTEL MOTOROLA AMTEL ZILOG PHILIPS et enfin MICROCHIP qui nous int resse ici 1 2 Les microcontro leurs PIC16F84 MICROCHIP est l un des grands pour ce qui concerne la fourniture de uc La gamme des produits propos s se d cline en trois grandes gammes le PIC16F84 tant l un des repr sentant de la gamme moyenne Le stockage des informations essentiellemen
8. Hz la fr quence interne est de 1 MHz 1 4 La tempo l mentaire sera achev e apr s 0 12 sec Quatre tempos waitO suivre dureront donc environ 1 2 sec waitl deux waitl dureront 1 sec etc Deux remarques Le calcul effectu ici est taill la hache Si vous souhaitez d terminer avec pr cision la dur e de la tempo 1l faudra fignoler un peu les boucles sont elles d crites 200 ou 199 fois Pour ma part je garde un mauvais souvenir des probl mes du genre nombre d arbres et nombre d intervals La temporisation par boucles successives est une horreur puisqu on consomme de la puissance pour faire passer le temps Il existe d autres techniques bien plus judicieuses et qui utilisent par exemple le chien de garde Vous n aurez aucun mal trouver le source d un logiciel utilisant cette m thode cherchez par exemple count asm sur Internet 4 L assemblage utilisation de gpasm Le paquetage gputils fournit comme nous l avons vu bri vement plus haut le logiciel gpasm qui permet d assembler le programme c est dire transformer le code source r dig en mn mo niques compr hensibles par un tre humain entra n en code machine Comme d habitude l appel de gpasm avec l extension ou h provoque l affichage d un cran d aide reproduit ci dessous Usage gpasm options file Options defaults in brackets after descriptions a FMT hex format FMT Select hex fi
9. a syntaxe de pp La syntaxe est assez simple Pour effectuer le transfert du fichier testled1 hex il suffit de taper pp n testledl hex quoi pp va vous r pondre par Programming hardware not found or is faulty PIC16F84 Programmer Version 0 6 Copyright C 1994 1998 David Tait Insert PIC press any key to continue C to abort R pondant l invitation qui vous est faite vous taperez alors sur la touche Entr e par ex ce qui aura pour effet de transf rer le programme souhait dans le PIC et d afficher Programming Setting config to X Finished in 2 secs Cp pe Page 16 3 novembre 2002 5 TRANSFERT VERS LE PIC UTILISATION DE PP L appel pp via une syntaxe pp est li au fait que pp n est pas priori dans un des sous r pertoires d sign par la variable d environnement PATH Il s en suit la n cessit de pr ciser dans quel r pertoire est rang le programme pp ici le r pertoire courant La dur e du transfert est indicative Elle va d pendre du volume du fichier L option n est importante Elle force en effet pp travailler en aveugle sans essayer de relire ce qu il a trans f r Cette option est en fait obligatoire faute de quoi pp se rendant compte que le programmeur n est pas un mod le classique va se mettre automatiquement en mode debug 5 3 Premiers essais Cr ez deux versions du logiciel transf rer avec des diff rences sensibles dans les te
10. ais aussi de n importe quelle trapanelle tournant sous Windows ou DOS Le logi ciel de transfert de donn es existe en effet pour toutes ces plateformes dans des versions certes l g rement diff rentes mais relativement compatibles Pour ce qui est de l assembleur je mai pas v rifi si on le trouvait pour DOS En cas de besoin les aficionados de Bill Gates devront donc se rabattre sur Windows 1 3 3 Les limitations Inutile de faire croire que tout est possible et que moyennant quelques astuces il devient possible de faire aussi bien et aussi confortable qu avec un starter kit Une telle affirmation serait une tromperie Le dispositif propos permet simplement d assembler un programme et de le transf rer dans le PIC II ne peut pas Lire le programme contenu dans le PIC par exemple pour v rifier que le transfert a t fait correctement Assister l utilisateur lors du d bogage en lisant la valeur des variables compteurs etc Transf rer des param tres de r glage sous forme de valeurs enregistr es dans la zone EEPROM Vous serez donc seul face la b te sans la moindre aide si celle ci ne veut pas faire ce que vous voulez Ces limitations n enl vent toutefois rien la validit du concept qui est de proposer le syst me mininaliste qui permette de d buter et ou de se d panner si d aventure on se trouve un jour confront un probl me de PIC sans avoir sous la main le mat riel qui va bien
11. ait d explorer la possibilit de programmer d autres PIC par exmple de PIC16F877 Je viens de parcourir la data sheet c est simplement Bysance 8k de RAM flash mots de 14 bits 256 octets d EEPROM 6 entr es sorties analogiques 10 bits etc le tout dans un boitier 40 pattes donc avec des E S logiques foison 216 20 Euros chez GO TRONIC catalogue 2002 2003 www gotronic fr sn pe Page 20 3 novembre 2002 9 L AUTEUR 7 2 3 Acheter un vrai programmeur J ai remarqu lors de mes surfs que les logiciels de programmation qui tournent sous LINUX utilisent g n ralement le port parall le Je ne saurais donc trop recommander dans l hypoth se ou vous voudriez par la suite faire l achat d un vrai programmeur de tenir compte de cette r alit et de choisir un mod le qui utilise ce port Attention donc car la majorit des mat riels propos s par les revendeurs utilisent le port s rie 8 Remerciements J ai la bonne habitude de remercier m me si elles ne lisent pas ma langue les personnes qui grace aux informations qu elles ont mis en place sur Internet on permis que partant de mes connaissances d lectroniques des ann es 70 et alors que je n avais jamais entendu parler au pr alable de microcontr leurs j arrive en moins de 3 mois mettre au point cet article Je distinguerais tout sp cialement BIGONOFF cit plus haut et dont le cours de PIC est mon avis une r f rence d
12. ans le domaine David TAIT lui aussi cit plus haut et qui a beaucoup publi sur le th me du hardware rapide et sale Chris WILSON l auteur de pp co auteur avec David TAIT 9 L auteur Jean Marc LICHTLE Ing nieur Arts et m tiers promotion CH73 A l poque la RAM tait constitu e de r seaux de tores magn tiques un par bit travers s cha cun de trois fils qui permettaient les op rations de lecture et d criture L expression 1 kilo de RAM avait alors une signification peut tre diff rente de celle qu elle a actuellement Il fallait le volume d une machine laver pour ranger quelques kilos de m moire sur un IBM 1130 Les commentaires sur ce travail peuvent m tre adress s l adresse suivante jean marc lichtletgadz org jml JML Page 21 3 novembre 2002
13. d instruction r duit 13 ports E S Fr quence d horloge 4 MHz pour les plus courants et jusqu 20 MHz selon le mod le Watchdog etc Le PIC16F84 fait partie d une tr s grande famille de uc produits par MICROCHIP et qui compte des dizaines de variantes diff rentes certaines pr sentant des particularit s passion nantes convertisseur A N 8 10 ou 12 bits communication s rie ou I2C etc 1 3 Objectif de la pr sente tude L objectif de la pr sente est de d crire les outils strictement n cessaires la programmation de uc avec un PC tournant sous LINUX 1 3 1 L approche classique Il est relativement simple de faire l acquisition d un starter kit chez l un des revendeurs de MICROCHIP et de se lancer dans la programmation sous Windows PIC START 272 Euros TTC mini programmeur PICO1 59 Euros TTC Ce faisant vous allez certainement arriver un r sultat rapide mais vous d penserez aussi pas mal d argent ne serait ce que pour la platine qui servira la programmation du PIC De plus sorti de l univers douillet de Windows vous ne serez pas tellement plus avanc Par ailleurs cette m thode classique impose de d placer le PIC du circuit d utilisation au pro grammateur et retour chaque essai d une nouvelle version du soft et croyez moi au d but on en fait des essais Cons quence imm diate il est vivement recommand d utiliser des supports ZIF force d insertion nulle pour m
14. f rents bits par exemple sur http www sq 1 com config html En r sum de droite gauche bits 0 et 1 01 utilisation d un oscillateur XT c est dire quartz jusqu 4 MHz bit 2 0 Watch dog timer d sactiv le chien de garde qui surveille le temps de cycle ne sera donc pas activ bit3 0 Power up timer activ la mise sous tension il va s couler une tr s l g re tempo avant que la scrutation du programme d marre bits 4 13 suite de 1 Code protect d sactiv 3 3 3 Mn moniques de configuration Dans le m me ordre d id e j ai laiss la liste d taill e des variables et mn moniques L autre technique aurait t de faire appel une directive d inclusion d un fichier contenant toutes ces nm moniques et bien d autres avec leurs valeurs respectives On aurait ainsi trouv la place de la liste une simple ligne Ces pe Page 10 3 novembre 2002 3 NOTRE PREMIER PROGRAMME include lt p16f84 inc gt C est videmment plus sobre l inconv nient est toutefois que dans la suite du code les diff rents appels des variables contenues dans le fichier inclus sont moins transparents Le d butant aura du mal faire le lien entre l appel une mn monique et une de ses fameuses variables incluses 3 34 L ent te du code source initialisation du port A Encore une fois 1l ne saurait tre question de faire de ce document un cours sur l
15. ies du port A z ro bsf status rp0 s l page m moire 1 pour acc s trisa cirf trisa reset trisa port A est d fini en sortie bcf status rp0 s lection page m moire 0 LA Code modifiable pour essais successifs start bsf porta 3 Fixe 1 le bit 3 du port A gt 5V sur broche 2 Ces np Page 8 3 novembre 2002 3 NOTRE PREMIER PROGRAMME call bcf cal wait_sec_5 porta 3 wait_sec_5 goto start 1 1 Tempo LED allum e Tempo LED teinte Boucle sur tiquette start Fixe 0 le bit 3 du port A gt 0V sur broche 2 r Sous programmes de temporisation r wait_min call cal wait _sec_30 wait _sec_30 return wait_sec_30 cal wait _sec_10 cal wait _sec_10 cal wait _sec_10 return wait_sec_10 cal wait _sec_5 call wait _sec_5 return wait _sec_5 call wait_sec call wait_sec call wait_sec call wait _sec call wait_sec return wait_sec call waitl call waitl return waitl call waitO0 call waitO call wait0 call waitO return wait0 movlw 200 movwf count1 d1 movlw 200 movw f count2 1 1 1 1 tempo 1 min non utilis e ici tempo 30 sec non utilis e ici tempo 10 sec non utilis e ici tempo 5 sec tempo 1 sec 4 tempos l mentaires
16. in du circuit en configuration utilisation Pour provoquer un reset retirer le strap la r sistance de 100 k mont e en parall le avec la zener tire alors le potentiel de MCLR vers la masse Pour monter la tension de programmation remplacer le strap par une pile 9V le tant dirig vers MCLR pe Page 5 3 novembre 2002 2 LE CIRCUIT Les barrettes s cables contacts tulipe sont d excellentes embases de straps Avec un petit an neau de thermor tractable de couleur on donne une petite touche professionnelle qui d montrera quel point le travail a t bien pens 2 4 Circuit de programmation Le PIC16F84 se programme en appliquant un signal d horloge sur la broche RB6 et les informations binaires s rialis es sur la broche RB7 Chacune des informations qui transite sur la broche 7 est valid e la retomb e du signal d horloge sur la broche 6 Les niveaux lectriques tant des niveaux TTL le plus simple est donc d employer le port parall le pour fournir les niveaux lectriques souhait s Le logiciel que nous utiliserons plus loin fournit l horloge sur la broche 3 du connecteur DB25 et les informations sur la broche 2 Des r sistances de 1k qui pourront tre mont es directement dans le capot du connecteur limitent le courant en cas de fausse manoeuvre court circuit ou autre al as L aussi les manchons thermor tractables seront d un grand secours pour isoler tout ce petit monde Le po
17. iste des fichiers PP TXT une br ve description du programmeur et des incidences sur le software princi palement les variables d environnement PROGRAM TXT mode d emploi du logiciel de transfert PP PCX le sch ma du programmeur PIC16X8X propos par Davis TAIT une version compl te assez proche d un programmeur commercial pp le logiciel de programmation sous LINUX et aussi PP EXE pour les utilisateurs de Microsoft SRC ZIP le code source en C QANDD PCX le sch ma du prgrammeur quick and dirty propos par David TAIT dont je me suis inspir pour cet article QANDD TXT une br ve description du programmeur quick and dirty TEST PCX sch ma d un circuit de test 4 diodes WALK ASM un code source pour r aliser un chenillard la temporisation est obtenue dans ce cas par un d bordement du watchdog mypp un fichier executable qui lance pp apr s avoir fix la valeur d un certain nombre de variables d environnement param trer selon votre propre configuration par exemple si vous programmez avec le port lp1 au lieu de 1p0 Attention la num rotation est de style Windows le permier port a donc le num ro 1 et non 0 comme avec LINUX Note Les fichiers graphiques au format PCX peuvent tre lus avec The Gimp Cette liste est loin d tre compl te je n ai mentionn que les fichiers principaux Les gourous trouverons aussi un Makefile et d autres friandises Une autre possibilit
18. kkkkxkxk f testledl asm i Ce code provoque un clignotement d une led raccord e la broche 2 du PIC Il est largement inspir d une programme r dig par fpederse Ma contribution a consist laguer tout ce qui n est pas strictement JML Page 7 3 novembre 2002 3 NOTRE PREMIER PROGRAMME n cessaire et mettre des commentaires dans la langue de MOLIERE J ai laiss de code des tempos de 10 30 et 60 sec de telle sorte permettre des essais des valeurs diff rentes afin de v rifier que les transferts de programmes successifs se d roulent normalement ONE D PT NS DS EE RERE VE RER ENARE E RE AERAR PS CREER EE RSR RCE ERAR ER ONE AE CASE ERA AREA LIST P 16F84 f inhx8m _CP_OFF equ H 3FFF Code protect hors service _PWRTE ON equ H 3FFF Power on timer en service _WDT_OFF equ H 3FFB Watch dog timer hors service _XT_OSC equ H 3FFD Crystal oscillator quartz CONFIG _CP_ OFF amp _PWRTE ON amp _WDT_ OFF amp _XT_OSC Combinaison des param tres Directives de configuration countl equ OC Le premier compteur count2 equ 0D Le second portb equ 06 Registre de port B porta equ 05 Registre du port A status equ 03 Le registre status rpo equ 05 Le bit 5 s lection page de m moire trisa equ 85H Reg de r glage en entr e ou sortie du port A i Programme org 0 origine clrf porta met toutes les sort
19. le format inhx8m 0 case Case insensitive D SYM VAL define SYM VAL Define SYM with value VAL e ON OFF expand ON OFF Macro expansion h help Show this usage message I DIR include DIR Specify include directory L force list Ignore nolist directives sle list chips List supported processors m dump Memory dump n dos Use DOS newlines in hex file 0o FILE output FILE Alternate name of hex file p PROC processor PROC Select processor q quiet Quiet r RADIX radix RADIX Select radix hex w 0 1 2 warning 01112 Set message level 0 v version Show version Reading header files from usr share gputils header JUL Page 12 3 novembre 2002 4 L ASSEMBLAGE UTILISATION DE GPASM Report bugs to lt URL http gputils sourceforge net gt Compte tenu des d tails contenus dans le code source propos les diff rentes options propos es ne nous servent rien Nous avons en effet fix le type de processeur 16F84 et le format de sortie inhx8m par la directive LIST en d but de code Le format des nombres est hexa par d faut Il en d coule la notation 200 qui appara t divers endroits pour forcer la lecture d un nombre d cimal L assemblage se fera donc simplement par la ligne suivante gpasm testledl asm laquelle le compilateur va r agir par l affichage suivant t11 asm 42 Message 302 Register in operand not in bank 0 Ens
20. leur d cimale ce qui explique la notation curieuse 200 Suivent deux boucles imbriqu es la boucle externe d1 goto d1 et la boucle interne d2 goto d2 Le jeu consiste ici d cr menter les compteurs et boucler gentiment tant que ceux ci ne sont pas tomb s z ro Le passage par z ro du compteur interne d2 d cr mente d1 d une unit et r initialise d2 200 La mise z ro de d1 termine la temporisation Les deux m canismes sont bas s sur des op rateurs decfsz acronyme qui signifie en bon fran ais d cr mente la variable et saute si z ro En clair la variable nomm e ici count ou count est d cr ment e la nouvelle valeur est rang e dans la variable d ou le 1 S1 cette nouvelle variable est diff rente de z ro on ex cute la ligne de code suivante sinon on saute une ligne plus loin La valeur de cette temporisation est assez facile d terminer si on garde pr sent l esprit que les lignes de code s ex cutent raison d une ligne par cycle d horloge sauf pour les branchements pe Page 11 3 novembre 2002 4 L ASSEMBLAGE UTILISATION DE GPASM qui en n cessitent deux La boucle interne n cessite donc 3 cycles Parcourue 200 fois elle consomme 600 cycles Chaque boucle externe n cessite 5 cycles plus les 600 cycles de la boucle interne le tout multipli par les 200 boucles parcourir Il vient donc tr s en gros 120000 cycles Sur un pic raccord un quartz cadenc 4 M
21. mpo risations 1 1s et 5 5s ou alors 1 5s et 5 1s L objectif est ici de charger l une des versions puis titre d exercice de charger l autre en crasant la premi re Les explications des chapitres pr c dents devraient vous permettre de cr er facilement les deux variantes J ai fait d innombrables essais parfois avec des r sultats desesp rants le d sespoir c est quand il ne se passe rien et que le doute s installe Le PIC est il foutu Ai je fait une fausse ma noeuvre Pour vous viter les affres de recherches identiques je vous donne donc quelques tuyaux L alimentation qui d bouche sur le r gulateur 5 Volts peut rester branch e en permanence Inutile de chercher faire un reset en coupant cette alimentation a ne sert rien Dans la mesure ou vous n utilisez pas les sorties RB6 et RB7 dans votre application ce qui est le cas ici vous pouvez laisser la connexion avec le port parall le en place La litt rature MICROCHIP dit que le passage en mode programmation est obtenu lorsque MCER passe de 0 12V alors que RB6 et RB7 sont tous deux OV En fait vous pourrez le v rifier ces deux broches restent bien sagement 0 lorsque le logiciel pp est au repos condition bien s r que PPSETUP soit configur correctement D s lors une cession courante pourrait se d rouler comme suit Mise sous tension le PIC se met en marche avec le programme qu il contient ou reste l arr t s il est
22. onnexion pour l utilisation 2 6 La branche de test Tout a est bien beau mais quoi cel va t 1l servir me direz vous Et bien pour un premier essai nous pourrons nous contenter d un objectif humble mais tellement utile faire clignoter une LED Cette LED sera simplement connect e la broche 2 du circuit RA3 le courant d bit sera limit par une r sistance de 1k mont e en s rie d cid ment on consomme beaucoup de 1k dans cette application Ces pe Page 6 3 novembre 2002 3 NOTRE PREMIER PROGRAMME 3 Notre premier programme 3 1 Utilitaire d assemblage Le PIC16F84 peut se programmer dans divers languages mais la langue de base celle qui est la plus performante est l assembleur Il s agit d un language tr s proche du langue machine ce qui lui conf re une efficacit in gal e Inconv nient son utilisation va vous obliger penser comme un ordinateur ce qui n est pas vident priori La premi re op ration consiste donc trouver un assembleur qui tourne sous LINUX celui qui est mis en ligne par MICROCHIP MPASM ne convenant l vidence pas puisque tournant sous Windows Vous pourrez trouver votre bonheur sur Internet pour ma part je me suis arr t au choix d un package nomm eputils Pr sent au format rpm il est tr s simple a mettre en place L auteur de gputils James BOWMAN pr sente son produit comme devant terme reproduire toutes les fonctionnalit
23. onter les PIC ce qui sale encore la note pour le d butant Les prix indiqu s sont ceux du catalogue 2002 2003 de GO TRONIC JUL Page 2 3 novembre 2002 2 LE CIRCUIT 1 3 2 L approche propos e J ai donc choisi volontairement une approche totalement diff rente Utilisation d un PC sous LINUX Dans mon application j ai remis en service un vieux P75 qur lequel j ai install une RED HAT 7 0 pas vraiment le dernier cris mais une distribution solide et fiable et qui se contente sans gros probl me d un petit espace disque Programmation directement sur la platine d utilisation sans d placer le PIC du program meur l utilisation et retour Ce concept est parfois appell programmation in situ ICP ou ICSP pour les anglophones pour In Circuit Programming ou In Circuit Serial Pro gramming Circuiterie utilisant le strict minimum de composants selon un principe tr s largement d crit par David TAIT Quick and dirty qui signifie rapide et sale Accessoirement l investissemment restera tr s faible Je wai donc aucune tape choisi la facilit Mais le r sultat justifie largement les choix ini taux Une fois pass e la phase d apprentissage et d essais vous serez en mesure de concevoir des circuits de commande efficaces base de uc dont vous pourrez modifier la programmation sur place sans toucher aux composants et avec n importe quel PC qu il s agisse de votre ch re Linuxette m
24. pour se procurer pp est de r cup rer un fichier nomm linuxpp zip Celui peut tre t l charg sur http www thepicarchive cwc net dtpa links html Il suffit alors de le copier dans le sous r pertoire qui vous sert vos essais de PIC et de suivre une proc dure tout fait classique r sum e ci dessous et d crite dans Readme now jml jml linuxpp unzip linuxpp zip Archive linuxpp zip inflating Readme now pe Page 14 3 novembre 2002 5 TRANSFERT VERS LE PIC UTILISATION DE PP extracting linuxsrc zip inflating mypp sh jml jml linuxpp unzip linuxsrc zip Archive linuxsrc zip inflating all patches inflating Makefile inflating config h inflating hex c inflating hex h inflating linux c inflating pp c inflating pphw c inflating pphw h inflating timer c inflating timer h jml jml linuxpp make gcc g 02 DLINUX lt 0 Dp 0 DD C pp c In function main pp c 356 warning return type of main is not int gcc g 02 DLINUX c o hex o hex c gcc g 02 DLINUX c o timer o timer c gcc g 02 DLINUX c 0 pphw o pphw c gcc g 02 DLINUX c o linux o linux c gcc g 02 DLINUX pp o hex o timer o pphw o linux o s pp jml jml linuxpp 1s all patches hex h linux o Makefile pp c pphw o timer c config h hex o linuxpp zip mypp sh pphw c pp o timer h hex c linux c linuxsrc zip pp pphw h Readme now timer o Attention la diff
25. re sont les options d j vues plus haut e pour erase ou n pour no read Vous avez enfin la possibilit de lancer pp en mode debug L aussi la maigreur du hardware mis en oeuvre ne nous conduira pas bien loin Comme signal plus haut pp se met en mode debug si vous entrez une ligne sans pr ciser l option n Il est donc tr s rapide d acc der cette fonctionnalit L affichage obtenu est reproduit ci dessous les interlignes correspondent des frappes de la touche Entr e qui permet de passer l tape suivante Le mode debug vous per JML Page 18 3 novembre 2002 6 ET LES UTILISATEURS DE WINDOWS mettra au minimum de v rifier la continuit de la liaison PC en faisant monter successivement les broches RB6 et RB7 du PIC root jml pp 0 6 pp Programming hardware not found or is faulty pp Hardware not connected Programming hardware not found or is faulty Hardware setup 7406 4066 using LPTI at 0378 delay 6 Debug mode entered C to exit Remove PIC VPP off VDD off RB6 low RB7 low input OK VPP on VDD on RB6 high RB7 high input BAD Start over C to exit VPP off VDD off RB6 low RB7 low input OK root jml pp 0 6 6 Et les utilisateurs de Windows Je me suis laiss dire qu il y avait des utilisateurs qui continuaient utiliser Windows Qu ils se rassurent la pr sente tude s applique en principe aussi leur cas Gpasm est crit de telle
26. rt parall le d un PC est un composant qui ne supporte absolument pas de fournir un courant de plus de 20 mA C est le motif pour lequel je choisis de le prot ger au plus pr s directement dans le connecteur Attention Vous pourriez tre tent s d utiliser des liaisons tr s longues pour vous simplifier l existence Gardez vous en bien Il vaut bien mieux acheter un cordon type rallonge de cordon d imprimante DB25 DB25 lequel sera correctement blind plut t que d allonger les fils de raccordements terminaux Autre possibilit Utiliser un connecteur Centronics femelle qui se branchera directement sur un cordon d imprimante Plus difficile trouver mon avis par ailleurs il vous faudra v rifier les num ros de broches les valeurs que je donne sont relatives des connecteurs DB25 L aussi les supports tulipes feront d excellents connecteurs pour le circuit de programmation 2 5 Utilisation des broches RB6 et RB7 Ces broches sont utilis es pour la programmation du circuit Cel ne signifie toutefois pas qu elles soient inutilisables par la suite une fois le programme en place La seule contrainte est que ces broches doivent tre libres de potentiel au moment de la programmation ce qui signifie qu elle doivent tre s par es du circuit d application L aussi des supports tulipes coup s dans des barettes s cables et des straps permettent de r aliser moindre frais une connexion pour la programmation ou une c
27. rtz est compl t par deux condensateurs 22 pF raccord s la masse 2 2 Alimentation Le circuit est aliment par un r gulateur 5V positif selon une disposition tout fait clas sique Certains auteurs pr conisent de monter un condensateur de 0 1 uF c ramique proximit imm diate de la broche VDD du circuit PIC16F84 Une branche de l alimentation est raccord e la broche MCLR du circuit broche qui com mande le reset g n ral lorsque sa tension tombe z ro Sur le circuit tel que dessin cette broche est raccord e la tension d alimentation via une r sistance de 1k dont nous verrons l int r t dans un instant Un strap permet de connecter et de d connecter MCLR 2 3 Tension de programmation Pour programmer le circuit il est n cessaire de faire passer la tension de la broche MCER 12V 12 14V suivant la data sheet C est l qu interviennent les composants qui constituent la branche d alimentation de MCLR Compte tenu du fait que la programmation est une op ration qui ne n cessite que quelques secondes j ai choisi de fournir cette tension en ins rant une pile OV la place du strap qui est figur en haut du sch ma Ce faisant la tension totale disponible passe 14V tension r duite ensuite l entr e de MCLR par la combinaison r sistance 1k et zener 12V C est simple et tr s rapide mettre en oeuvre Pour mettre le circuit en marche normale mettre le strap comme figur sur le dess
28. s des logiciels de MICROCHIP Pour l instant le logiciel est en version alpha mais l essentiel est pr sent puisque le compilateur gpasm est op rationnel Le paquetage gputils version 0 10 3 comporte par ailleurs gpdasm un desassembleur qui permet d analyser du code compil si on en poss de pas le source gpvce un visualisateur de code Vous trouverez toute la documentation n cessaire sur les prestations offertes par gputils dans la documentation livr e avec le paquetage et qui s installe classiquement dans usr share doc gputils Le paquetage gputils peut tre r cup r sur http www rpmfind net Une autre possibilit est de visiter http gputils sourceforge net 3 2 Notre premier code source Les lignes qui suivent contiennent le code source que nous allons utiliser pour notre premier essai Comme expos ci dessus le but que nous nous sommes fix est tr s simple Faire clignoter une LED aliment e par la patte 2 du circuit Le code est des plus simples sa compr hension ne devrait pas poser de probl me insurmontable pour un d butant qui ferait l effort d tudier les rudiments du langage assembleur Ce code peut se retrouver dans diverses variantes sur Internet certaines n allumant qu une LED d autres r alisant un chenillard de 8 LED La comparaison des codes sera une source d informations tr s int ressantes exkxkxkxkxkkxkxkxkxkxkxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxkkkkkkkkkkkkkkkkkk
29. sable par gpvc et qui contient une masse d informations sur le code assembl sa taille les variables etc testled1 Ilst un fichier texte qui tabli entre autre une correspondance entre les lignes de code source et leur traduction en hexa Je vous laisse juge de l int r t de ces diff rents fichiers nul doute qu arriv s au niveau gourou vous saurez en faire un savant usage Dans l imm diat ce qui nous int resse est la pr sence du fichier testled1 hex confirmation que la compilation a donn un r sultat Le tout est de savoir si ce r sultat pr sente un int r t ce sera l objet du chapitre suivant Ces pe Page 13 3 novembre 2002 5 TRANSFERT VERS LE PIC UTILISATION DE PP 5 Transfert vers le PIC utilisation de pp Le transfert vers le PIC va tre r alis au moyen d un logiciel tr s rustique avec une interface en mode texte r pondant au joli nom de pp pour PIC Programmer L auteur de ce produit est Chris WILSON Vous trouverez facilement la derni re version du soft sous forme d archive tar sur Internet par exemple l adresse http ftp unicamp br pub systems Linux system network isode La d compression de l archive dans sa version actuelle cr e un sous r pertoire pp 0 6 dans le quel vous trouverez quelques fichiers donc les incontournables README IST README mais aussi FILES TXT qui donne la liste des fichiers reproduite en partie ci dessous et traduite FILES TXT la l
30. sorte tre compatible avec MPASM de MICROCHIP logiciel qui tourne sous Windows Cel signifie contrario que MPASM est compatible avec gpasm MPASM peut tre facilement t l charg sur Internet par exemple sur le site de MICROCHIP Comme je l ai d j expos la r cup ration de pp sous forme d archive tar fournit aussi le fichier PP EXE qui tourne sous DOS La grande toile fournit par ailleurs de nombreuses possibilit s de r cup rer ce fichier par exemple sur http www vermontficks org picpgmr htm Il semblerait selon cette page que les utilisateurs de W2K doivent s attendre des soucis Dans le monde LINUX en tout cas j ai essay avec MANDRAKE 8 2 et RED HAT 7 0 avec le m me succ s Il ne devrait donc y avoir aucune difficult majeure pour les ventuels utilisateurs de Windows JML Page 19 3 novembre 2002 7 CONCLUSIONS exploiter les informations consign es ici encore que je ne puisse nullement vous assurer d un fonctionnement correct Je ne travaille que sous LINUX 7 Conclusions 7 1 Un mot d encouragement On peut lire ici et l que le port parall le d un PC est un organe fragile que sa destruction entra ne un dommage irr parable surtout s il est int gr la carte m re Bon c est juste mais en respectant quelques principes expos s plus haut en particulier le montage des r sistances dans le capot du connecteur je ne vois pas quel sc nario pourrait conduire
31. t le programme peut se faire de 3 mani res en ROM EEPROM et m moire flash La technologie employ e se refl te dans la d signation du composant Dans notre cas le F de PIC16F84 signifie flash Vous trouve rez couramment dans des appareils grand public des versions CR ce qui signifie ROM pe Page 1 3 novembre 2002 1 INTRODUCTION Dans l emploi et la mise en oeuvre de uc il est important de pr ter attention aux niveaux lec triques Les uc de MICROCHIP utilisent des niveaux TTL 0 SV Il faut donc veiller lors de la r alisation d un montage ne jamais appliquer une tension sup rieure aux pattes ce qui d trui rait imm diatement le circuit De m me les sorties ne peuvent d biter plus de 20 mA Attention donc aux courts circuits Il y a toutefois une exception lors de la programmation du composant l une des pattes d sign e par MCLR pour master clear doit tre port e un niveau compris entre 12V et 14 V Vous trouverez sur Internet une masse de renseignements sur ces petites b tes Je r sumerais ici la data sheet du 16F84 en disant qu il s agit d une puce 18 pattes programmable et dont les caract ristiques essentielles sont les suivantes M moire flash 1k mots de 14 bits 68 octets de RAM pour le stockage des variables non r manantes 64 octets d EEPROM ce qui permet de stocker des variables r manantes r glages para m trages etc Architecture RISC signifie jeu
32. ure bank bits are correct Pass le premier instant d affolement mais bon sang qu est ce qui ne va pas dans ce source jml raconterait il des b tises vous vous rendrez compte que vous tes devant un simple message d information et non une bord e d injure induite par une erreur d assemblage Ce message provient de la ligne 42 en clair celle qui efface les bits du registre trisa clrf trisa Gpasm vous demande simplement si vous tes certain d avoir s lectionn la bonne page m moire la page 1 qui permet l acc s au registre trisa Notez que si vous voulez viter un rat cardiaque chaque assemblage vous pouvez s lectionner un niveau de message moins sensible A parir du niveau 1 gpasm w 1 testled1 asm l assembleur consid re avoir affaire un gourou et vite de l incommoder avec des d tails mineurs Dans quelques mois vous vous permettrez peut tre m me le niveau 2 Souvenez vous simplement arriv ce niveau que vos premiers pas ont t guid s par un certain jml qui a trim seul pendant des semaines pour mettre au point ce document Encore tout content du coup de main vous aurez peut tre envie de lui envoyer un petit mail sympa N h sitez pas l adresse est jean marc lichtle gadz org Plus s rieusement l op ration d assemblage a cr un certain nombre de fichiers testled1 hex le fichier en code machine qui devra tre transf r dans le PIC testled1 cod un fichier visuali
33. vierge ou effac Retrait du strap qui maintient MCLR la tension d alimentation le PIC s arr te Mise en place de la pile 9V qui d livre la tension de programmation le PIC passe en mode programmation Transfert d une nouvelle version du soft au moyen de pp en utilisant le syntaxe ci dessus Retrait de la pile 9V et mise en place du strap Entre ces deux tapes MCLR passe par 0 en provoquant un reset du PIC Vous devriez voir repartir le PIC sur son nouveau programme En respectant cette chonologie vous ne devriez pas avoir de probl mes de transfert 5 4 Utilisation avanc e Il ne faut pas se mentir avec le hardware mis en oeuvre il n est gu re question de faire de l utilisation avanc e Tout au plus peut on envisager d effacer compl tement le PIC en tapant JUL Page 17 3 novembre 2002 5 TRANSFERT VERS LE PIC UTILISATION DE PP 66 2 pp en Ici aussi l option n est n cessaire pour viter que pp passe en mode debug L ef facement se place dans le cheminement d crit ci dessus la place de la ligne qui transfert le programme Quelques conseils Apr s un effacement il faut repasser par un mode normal MCLR aliment 5V avant de transf rer un nouveau programme La succession d une commande effacement et d une commande transfert ne semble pas donner le r sultat qu on pourrait tre en droit d at tendre Dans le m me ordre d id e une syntaxe du st
34. yle pp en testled1 hex qui tenterait dans la m me action d effacer et de reprogrammer le PIC semble vou e l chec du moins avec le hardware rustique que nous employons Aspect int ressant on peut reprogrammer en crasant une ancienne version sans passer par une phase inerm diaire d effacement Un effacement peut servir v rifier que le dialogue PIC logiciel se d roule normalement Il suffit ensuite de charger un programme r el Une aide l mentaire sur pp peut tre obtenue avec la syntaxe classique pp Attention m me pour vous livrer quelques lignes d aide pp exige que vous soyez administratur sur votre machine root jml pp 0 6 pp PIC16F84 Programmer Version 0 6 Copyright C 1994 1998 David Tait Usage pp lxhrwpcdevgosn hexfile Config l LP x XT h HS r RC w WDTE p PWRTE c code protect Others d dump e erase v verify g go o old s silent n no read no wait Defaults RC WDTE PWRTE unprotected no erase stop new verbose read wait Bug reports to david tait man ac uk Programming hardware not found or is faulty root jml pp 0 6 Ici aussi vous avez la possibilit comme lors de la mise en oeuvre de gpasm de mettre en place les param tres de configuration Pour ma part comme expos ci dessus je pr f re figer la config dans le code source En pratique les seules options qui servent mon avis avec notre mini hardwa
Download Pdf Manuals
Related Search
Related Contents
Aushilfe für Troubleshooting und Alltagsaufgaben Internet Payment Gateway Integration Guide First Data Connect FEI/Philips XL30 ESEM - QB3 Coifas de parede - Tramontina Design Collection Integral IN3T1GNYNGXK2 memory module eih 1200 istruzioni d`uso 取扱説明書 - Panasonic MANUALE UTENTE - Eko Music Group Copyright © All rights reserved.
Failed to retrieve file