Professional Documents
Culture Documents
13
Ce chapitre est consacr la prsentation du microcontrleur tout en illustrant ces diffrentes caractristiques afin de mieux lexploiter. On aura dfinir lunit de contrle et tout ce qui lenglobe de part et dautre de sa structure. La partie la plus importante serai celle qui traite les diffrents ports dentre/sortie. Ainsi que le convertisseur qui jouera le rle dinterface entre lunit de contrle et le capteur de niveau.
14
Tout dabord, un microcontrleur intgre dans un seul et mme botier ce qui, avant ncessitait une dizaine dlments spars. Il rsulte donc une diminution vidente de lencombrement de matriel et de circuit imprim.
Cette intgration a aussi comme consquence immdiate de simplifier le trac du circuit imprim puisquil nest plus ncessaire de vhiculer des bus dadresses et de donne dun composant un autre.
Le microcontrleur contribue rduire les cots plusieurs niveaux : - Moins cher que les autres composants quil remplace. - Diminuer les cots de main duvre.
15
Nous pouvons ensuite voir la mmoire morte mais ce nest pas une obligation. En effet dans un certain nombre de botiers et jusqu ces dernires annes, cette mmoire ne pouvait qutre programme par masque la fabrication du circuit. Cela imposait donc lutilisation potentielle du microcontrleur pour commander un nombre de pices identiques important. [4] Un certain nombre de microcontrleurs taient, et sont toujours dailleurs disponibles sans ROM. Puis, les technologies dintgration progressent, les fabricants ont appris placer sur la puce de la mmoire programmable lectriquement et effaable aux ultraviolets (UVPROM) qui cotent relativement cher, non cause de la mmoire elle-mme dont la technologie est
16
maintenant facile produire, mais plutt cause de la fentre en quartz ncessaire son effacement, on a vu galement apparatre des microcontrleurs dits OTPROM. [4]
Dans ces circuits ou OTPROM (ONE TIME PROM), cest dire programmable une fois, la mmoire UVPROM existe toujours dans ce programme donc comme nimporte quel circuit de ce type, mais, fait de labsence de toute fentre, cette mmoire nest ensuite plus effaable. Cest une solution intressante pour les productions en petite srie, ne justifiant pas une programmation par masque. En effet, du fait de labsence de fentre, ces versions OTPROM sont disponibles en botier plastique trs peu coteux. [4]
Les Pics (Programmable Interface Controller) sont des composants dits RISC (Reduce Instructions Set Computer), ou encore composant jeu dinstruction rduit, sachant que plus on rduit le nombre dinstruction plus facile et plus Rapide en est le dcodage, et vite le composant fonctionne. [3] Dans le march, il existe deux familles opposes, les RISC et les CISC (Complexe Instruction SET Computer) chez les CISC, on diminue la vitesse de traitement mais les instructions sont plus complexes, plus puissantes, et donc plus nombreuses. Il sagit donc dun choix de stratgie.[4] Tous les pics Mid Range ont un jeu de 35 instructions, ils stockent chaque Instruction dans un seul mot de programme, et excutent chaque instruction (Sauf les sauts) en un cycle. On atteint donc des trs grandes Vitesses. Lexcution en un seul cycle est typique des composants RISC. Lhorloge fournie au pic est pr-divise par quatre au niveau de celle-ci. Cest Cette base de temps qui donne le temps dun cycle. Si on utilise par exemple un quartz de 4 MHZ, on obtient donc100000 cycles / Secondes, comme Le pic excute pratiquement linstruction par cycle hormis Les sauts, cela nous donne une puissance de lordre de 1 MIPS (1 Millions dinstruction par secondes). 17
2.1
Les 16F84 et 16F876). La famille High End, qui utilise des mots de 16 bits.
2.2
vient ensuite une lettre L : celle ci indique que le pic peut Fonctionner avec une plage de tension beaucoup plus tolrante, ensuite on trouve. C indique que la mmoire programme est une EEPROM. CR pour indiquer une mmoire de type ROM. F pour indiquer une mmoire de type FLASH. Notons ce niveau que seule une mmoire FLASH ou EEPROM est Susceptible dtre efface, donc nesprons pas reprogrammer les pics de type CR. Un composant quon ne peut reprogrammer est appel O. T. P (One Time Programming) : composant programmation unique. Puis viennent les derniers chiffres identifient prcisment le pic. Finalement on voit sur les botiers le suffixe XX dans lequel XX reprsente la frquence dhorloge maximale que le pic peut recevoir. par Exemple -04- pour un 4MHZ. Une dernire indication quon trouve est le type de botier. Nous utilisons pour nos expriences le botier PDIP, qui est un botier Dil40 broches avec un cartement entre les ranges de 0.3. La version 4MHZ sera simplement suffisante. Notons que les pics sont des composants STATIQUES, C'est--dire la frquence dhorloge peut tre abaisse jusqu larrt complet Sans perte des donnes et sans
18
microprocesseurs de lordinateur) Donc la frquence dhorloge doit rester dans des limites prcises.
2.3
-PIC 16F877 -Flash 8k octets -RAM 368 octets -EEPROM 256 octets -I/O 33 -A/D 5 - port parallle OUI - port srie USART/MSSP
19
On constate que sur le schma concernant le 16F877, on a 2 connexions VSS qui sont relies la masse. En fait, en interne, ces pins sont interconnects. La prsence de ces 2 pins sexplique pour une raison de dissipation thermique. Les courants vhiculs dans le PIC sont loin dtre ngligeables du fait des nombreuses entres/sorties disponibles. Le constructeur a donc dcid de rpartir les courants en plaant 2 pins pour lalimentation VSS, bien videment, pour les mmes raisons (dissipation thermique), ces pins sont situs de part et dautre du PIC, et en positions relativement centrales.
20
La mmoire EEPROM (Electrical Ecrasable Programmable Read Only Memory), est constitue de 256 octets que nous pouvons lire et crire depuis notre programme. Ces octets sont conservs aprs une coupure de courant et sont trs utiles pour conserver des paramtres semipermanents. La mmoire RAM et organisation : La mmoire RAM est celle que nous allons sans cesse utiliser. Toutes les donnes qui y sont stockes sont perdues lors dune coupure de courant. La mmoire RAM disponible du 16F877 est de 368 octets. Elle est rpartie de la manire suivante : 1) 80 octets en banque 0, adresses 0*20 0*6F 2) 80 octets en banque 1, adresses 0*A0 0*EF 3) 96 octets en banque 2, adresses 0*110 0*16F 4) 96 octets en banque 3, adresses 0*190 0*1EF 16 octets commun aux 4 banques, soit 0*70 0*7F = 0*F0 0*FF.
2.4
Le port C :
21
Cest un port tout ce quil a de plus classique,or quil a deux pins quon utilisera plus tard dans la communication srie avec le PC travers( TX et RX ) (pin25et pin 26) . Le port D : Ce port fonctionne de faon identique aux autres, dans son mode de fonctionnement gnral. Le registre TRISD comportera donc les 8bits de direction, pendant que le registre port D correspond aux pins I/O concerns. Do les 8 pins I/O, en mode entre, sont du type <trigger de Schmitt>. Le port E : Ce port nest prsent que sur les PIC 16F877. Il ne comporte que 3 pins RE0 RE2, mais, contrairement aux ports, les bits non concerns de TRISE sont, cette fois, implants pour dautres fonctions. Les pins REX peuvent galement tre utiliss comme pins dentres analogiques. Dou le registre ADCON1 qui dtermine si ce port est utilises comme port I/O ou comme port analogique.
2.5
Le convertisseur :
Le CAN est un priphrique intgr destin mesurer une tension et la convertir en nombre binaire qui pourra tre utilis par un programme. Notre 16F877 travaille avec un convertisseur analogique/numrique qui permet un chantillonnage sur 10 bits. Le signal numrique peut donc prendre 1024 valeurs possibles. On sait que pour pouvoir numriser une grandeur, nous devons connatre la valeur minimale quelle peut prendre, ainsi que sa valeur maximale, Les pics considrent par dfaut que la valeur minimale correspond leur Vss dalimentation, tandis que la valeur maximale correspond la tension positive dalimentation Vdd. le principe de la conversion suit la squence est la suivante : - Le pic connecte la pin sur laquelle se trouve la tension mesurer un condensateur interne, qui va se charger via une rsistance interne jusque la tension applique. Le pin est dconnect du condensateur, et ce dernier est connect sur le convertisseur analogique/numrique interne. Le pic procde la conversion.
Le temps ncessaire la conversion est gal au temps ncessaire la conversion dun bit multipli par le nombre de bits dsirs pour le rsultat. Concernant notre pic, il faut savoir quil ncessite, pour la conversion dun bit, un temps nomm Tad.
22
Ce temps est driv par division dhorloge principale. Le diviseur peut prendre une valeur de 2, 8 ou 32. Le temps de conversion Tad ne peut dtendre, pour des raisons lectroniques, en dessous de 1.6 us pour les versions classiques de 16F87x, et en dessous de 6 us pour les versions LC. [5] Donc en fonction des frquences utilises pour le quartz du pic, on choisit le diviseur le plus appropri. Voici un tableau qui reprend les valeurs de diviseur utiliser pour quelques frquences courantes du quartz et pour les PICs de type classique.
Diviseur 2 8 32 Osc RC 20Mhz 100ns 400ns 1,6s 2-6s 5Mhz 400ns 1,6s 6,4s 2-6s 4Mhz 500ns 2s 8s 2-6s 2Mhz 1s 4s 16s 2-6s 1,25Mhz 1,6s 6,4s 25,6s 2-6s 333,3Khz 6s 24s 96s 2-6s
Les valeurs 400ns; 1,6s; 2s; 4s; 6,4; 24s correspondent au meilleur diviseur en fonction de la frquence choisie, en ce qui nous concerne puisquon utilise une frquence de 4MHZ, on utilisera la valeur de 2s dans notre programmation. Il faut prsent prciser que le PIC ncessite un temps Tad avant le dmarrage effectif de la conversion, et un temps supplmentaire Tad la fin de la conversion. Rsumons donc le temps ncessaire pour effectuer lensemble des oprations : - On charge le condensateur interne (ncessite le temps Tacq) - On effectue la conversion (ncessite le temps 12 * Tad) - On doit attendre 2 * Tad avant de pouvoir recommencer une autre conversion
Figure2.3 :cycle de conversion Le module de conversion utilise 4 registres disposs comme suit : *Registre de Rsultat High (ADRESH) *Registre de Rsultat Low (ADRESL) *Registre0 de Contrle (ADCON0) 23
*Registre1 de Contrle (ADCON1) Regardons cela de prs dans la figure ci-dessous : Configuration interne du module de convertisseur analogique/numrique :
On voit trs bien sur ce schma que les pins AN2 et AN3 servent selon la position du slecteur dentre analogique ou de tension de rfrence. Le slecteur de canal permet de slectionner lequel des 8 canaux va tre appliqu au convertisseur analogique/digital. On voit que la slection de la source des tensions de rfrence dpend de bits du registre ADCON1, tandis que le canal slectionn pour tre numris dpend de ADCON0. Cest le registre ADCON1 qui dtermine si ce port sera utilis comme port I/O ou comme port analogique. Nous en aurons besoin dans la programmation.
24
On attire votre attention sur le fait que le convertisseur donne un rsultat sur 10 bits, et donc que ce rsultat devra donc obligatoirement tre sauvegard dans 2 registres. Ces registres sont tout simplement les registres ADRESL et ADRESH. Comme 2 registres contiennent 16 bits, et que nous nen utilisons que 10, Microchip nous a laiss le choix sur la faon dont est sauvegard le rsultat, nous pouvons soit justifier le rsultat gauche, soit droite. La justification droite complte la partie gauche du rsultat par des 0 . Le rsultat sera donc de la forme : ADRESH 0 0 0 0 0 0 B9 B8 B7 B6 B5 B4 ADRESL B3 B2 B1 B0
La justification droite sera principalement utilise lorsque nous avons besoin de lintgralit des 10 bits de rsultat, tandis que la justification gauche est trs pratique lorsque 8 bits vous suffisent. Dans ce cas, les 2 bits de poids faibles se trouvent isols dans ADRESL, il suffit donc de ne pas en tenir compte. Cette approche est destine nous pargner des dcalages de rsultats. Le choix de la mthode seffectue laide du bit 7 de ADCON1.
Le registre ADCON1 Ce registre permet de dterminer le rle de chacune des pins AN0 AN7. Il permet donc de choisir si un pin sera utilis comme entre analogique, comme entre/sortie standard, ou comme tension de rfrence. Il permet galement de dcider de la justification du rsultat.
Pour pouvoir utiliser un pin en mode analogique, il faudra que ce pin soit configur galement en entre par TRISA. Le registre ADCON1 dispose, comme tout registre accessible de notre PIC, de 8 bits, dont seulement 5 sont utiliss :
25
Tableau 2.1 : le registre ADCON1 B7 B6 B5 B4 B3 B2 B1 B0 ADFM INUTILISE INUTILISE INUTILISE PCFG3 PCFG2 PCFG1 PCFG1 A/D result format select lu comme 0 lu comme 0 lu comme 0 Port Configuration control bit 3 Port Configuration control bit 2 Port Configuration control bit 1 Port Configuration control bit 0
Le bit ADFM permet de dterminer si le rsultat de la conversion sera justifi droite (1) ou gauche (0). Nous trouvons dans ce registre les 4 bits de configuration des pins lis au convertisseur analogique/numrique. Ces bits nous permettent donc de dterminer le rle de chaque pin. Comme nous avons 16 combinaisons possibles, nous aurons autant de possibilits de configuration (en fait, vous verrez que nous nen avons que15). (Annexe2 ) . Le registre ADCON0 Ce registre est le dernier utilis par le convertisseur analogique/numrique. Il contient les bits que nous allons manipuler lors de notre conversion. Sur les 8 bits de notre registre, 7 seront utiliss. B7 B6 B5 B4 B3 B2 B1 B0 ADCS1 ADCS0 CHS2 CHS1 CHS0 GO/DONE Inutilis ADON A/D conversion Clock Select bit 1 A/D conversion Clock Select bit 0 Analog Channel Select bit2 Analog Channel Select bit1 Analog Channel Select bit0 A/D conversion status bit lu comme 0 A/D ON bit
26
2.6
MCLR :
Entre de remise zro, lorsque cette entre est mise ltat bas, le microcontrleur est
rinitialis : il va excuter linstruction se trouvant ladresse00 H (adresse de bootstrap). Mais aussi lorsque le microcontrleur est mis sous tension il est prfrable que RESET soit ltat logique 0 pendant un temps trs court cest le rle du circuit RC.
VCC
R0
1k
D3
1N4148 MCLR 1 C7
220u
SW3
2
2.7
Loscillateur :
Lhorloge est un systme qui peut tre ralise soit avec un QUARTZ(a) , soit avec une horloge extrieur(b), soit avec un circuit RC(c), dans ce dernier la stabilit du montage est limite. La frquence maximale dutilisation va dpendre de Microcontrleur utilis. Le suffixe indiqu sur le botier donne la nature de lhorloge utiliser et sa frquence maximale.
27
Partant dune prsentation gnrale sur les microcontrleurs, nous avons ensuite dfini la famille des PICs et plus particulirement le 16F877. En conclusion dans ce chapitre nous pouvons dire que le microcontrleur 16F877 peut bien jouer le rle d'une unit de contrle pour notre systme. Sachant que lvolution du niveau deau est trs lente nous pouvons dire que le convertisseur intgr dans le PIC nous convient parfaitement. Maintenant, nous pouvons passer la conception puisque le composant le plus important dans notre systme nous est dj familier.
28