Traitement de l’information Cours TSEN _______________________________________________________________________________________ LE MICROCONTROLEUR PIC18F2455 Ce composant intègre un microcontrôleur 8 bits, c'est-à-dire un processeur et des périphériques, dans un boîtier « Dual in Line » de 28 broches. Il est réalisé en technologie CMOS et peut être cadencé par une horloge de 48 MHz ; il doit être alimenté par une tension allant de 3 à 5.5 volts VSS : masse VDD : alimentation ( de 3 à 5.5 volts ) Les broches du composant possèdent plusieurs affectations entre les ports d’E/S, les périphériques et les fonctions système. La broche 5 RA3/AN3/VREF+ par exemple peut être : RA3 une entrée ou une sortie du port A AN3 une entrée analogique du convertisseur A/D VREF une entrée de référence pour le convertisseur A/D Il est ainsi possible, dans certaines configurations de profiter de 24 broches d’E/S (23 entrées ou 22 sorties ou un mixage des deux) sur ce composant En périphérie de l’unité centrale, on peut recenser les ressources suivantes sur le composant : Mémoire flash programme 24k instructions Mémoire RAM Données : 2k Octets Mémoire EEPROM Données : 256 Octets Ports d’E/S : 3 ports de 8 bits Périphériques : 1 Convertisseur Analogique / Numérique 10bits 3 Timers 8bits et 16bits 2 module Capture / Compare / PWM 2 comparateurs analogiques 1 référence de tension 1 USART émission / réception série / synchrone et asynchrone Lycée des Métiers Jacques Prévert Combs – la – Ville Section de BAC PRO Systèmes électroniques numériques Electronique Industrielle Embarquée 1 Traitement de l’information Cours TSEN _______________________________________________________________________________________ Architecture PIC 18F2455 Lycée des Métiers Jacques Prévert Combs – la – Ville Section de BAC PRO Systèmes électroniques numériques Electronique Industrielle Embarquée 2 Traitement de l’information Cours TSEN _______________________________________________________________________________________ Mémoire de programme Les instructions du programme sont stockées sur 14 bits dans une zone mémoire dont l’adresse s’étend de 0000h à 5FFFh ( soit 24576 lignes de programme pour le 18F2455) Le compteur de programme repère l’adresse courante du programme PC <20:0 > 21 bits Pile niveau 1 La pile est utilisée lors de l’appel d’un sous-programme Pile niveau 2 Pile niveau31 Vecteur de RESET 0000h Vecteur d’interruption 0008h Vecteur d’interruption 0018h 0019h Mémoire de Programme type flash 24576 lignes de programme (24k) 5FFFh 21 bits Il y a trois adresses réservées pour les vecteurs d’initialisation ( Reset et interruption ) Lorsque l’on effectue un RESET externe le PIC démarre le programme à l’adresse 0000h Le PIC 18F2455 a 2 vecteurs d’interruption en 0008h. et 0018h Lors d’une interruption, le sous programme associé devra déterminer quel périphérique a demandé une interruption. La pile utilisée par les sous programmes n’est pas implantée en mémoire de donnée comme avec les microcontrôleurs classiques, mais dans la mémoire programme. Elles sont utilisées lors d’appels de sous programmes, on ne peut pas imbriquer plus de 8 sous programmes (Ce qui est déjà beaucoup ! !). La mémoire est de type flash c'est-à-dire effaçable électriquement. Le constructeur garantit un minimum de 1000 cycles d’effacement / écriture à 25°C sous 5v. Lycée des Métiers Jacques Prévert Combs – la – Ville Section de BAC PRO Systèmes électroniques numériques Electronique Industrielle Embarquée 3 Traitement de l’information Cours TSEN _______________________________________________________________________________________ Mémoire de données ( Registres) La mémoire de données correspond aux registres ( Files Registers ) vus par l’unité centrale ; ces registres sont de deux types : Registres à fonctions spéciales ( SFR ): ils permettent la configuration et la surveillance de l’état du processeur et de ses périphériques ; ces registres sont accessibles en lecture et en écriture suivant leur fonction ; il y a 75 registres de ce type pour le 18F2455. Exemple : registres STATUS , TMR0H , PORTA la cartographie des registres SFR est donnée par la figure suivante, les zones grisées sont inaccessibles. Registres à usage général ( RAM utilisateur ): ils permettent le stockage de variables , il sont accessibles en lecture et en écriture par le programme ; il y a 1973 registres de ce type pour le 18F2455 L’espace mémoire est décomposé en 15 banques de 256 registres, Lycée des Métiers Jacques Prévert Combs – la – Ville Section de BAC PRO Systèmes électroniques numériques Electronique Industrielle Embarquée 4 Traitement de l’information Cours TSEN _______________________________________________________________________________________ Jeux d’instructions L’ensemble des 77 instructions d’un processeur 18F2455 Lycée des Métiers Jacques Prévert Combs – la – Ville Section de BAC PRO Systèmes électroniques numériques Electronique Industrielle Embarquée 5 Traitement de l’information Cours TSEN _______________________________________________________________________________________ Les principaux registres à fonction spéciale STATUS Ce registre sert au contrôle de l’ALU et du Timer ainsi qu’à sélectionner la banque à laquelle on veut accéder Registre STATUS Adresse FD8h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 N OV Z DC C C: ( Carry) ce bit est mis à 1 lorsque la retenue est générée par une addition DC : (Digit Carry) bit de retenue des opérations au formatBCD Z: (Zero) ce bit est mis à 1 si le résultat d’une opération est nulle OV : (Overflow) ce bit est mis à 1 si le résultat de l’opération signée provoque un dépassement N: (Negative) ce bit est mis à 1 si le résultat de l’opération effectuée est négatif Ports d’entrées sorties Le composant dispose de 3 ports d’E/S : A , B , C ; ceux-ci peuvent servir d’E/S numériques standards ou d’E/S de périphériques internes. Ces ports sont bi-directionnels, le sens de transfert de chaque fil est déterminé par un bit situé dans le registre TRISA pour le port A , TRISB pour le port B et TRISC pour le port C. Chaque bit positionné à 1 place le bit du port en entrée. Port A Registre PORTA LATA TRISA les registres associés au port A sont PORTA, TRISA, LATA, ADCON1, CMCON, CVRCON, UCON Adresse F80h F89h F92h Bit 7 Bit 6 - RA6 LATA6 RA6 / OSC2 / CLKO RA5 /AN4 / SS / HLVDIN / C2OUT E/S E/S RA4 / TOCK1 / C1OUT / RCV E/S RA3 /AN3 / Vref+ RA2 /AN2 / Vref- / CVref RA1 /AN1 RA0 /AN0 E/S E/S E/S E/S Lycée des Métiers Jacques Prévert Combs – la – Ville Section de BAC PRO Systèmes électroniques numériques Electronique Industrielle Embarquée Bit 5 Bit 4 Bit 3 Bit 2 RA5 RA4 RA3 RA2 LATA5 LATA4 LATA3 LATA2 Registre de direction du PORTA Bit 1 Bit 0 RA1 LATA1 RA0 LATA0 broche de sortie pour le signal d’horloge broche d’entrée pour le CAN ; broche de sortie pour le comparateur 1 E/S drain ouvert broche d’entrée d’horloge pour le Timer 0, broche de sortie pour le comparateur 1 broche d’entrée pour le CAN, tension de référence broche d’entrée pour le CAN, tension de référence broche d’entrée pour le CAN broche d’entrée pour le CAN 6 Traitement de l’information Cours TSEN _______________________________________________________________________________________ Port B Registre PORTB LATB TRISB les registres associés au port B sont PORTB, LATB, TRISB, INTCON, INTCON2, INTCON3, ADCON1, SPPCON, SPPCFG, UCON Adresse F81h F8Ah F93h Bit 7 Bit 6 RB7 LATB7 RB6 LATB6 RB7 / KBI3 / PGD RB6 / KBI2 / PGC RB5 / KBI1 / PGM RB4 / AN11 / KBI0 / CSSPP E/S E/S E/S E/S RB3 / AN9 / CCP2 / VPO E/S RB2 / AN8 / INT2 / VMO E/S RB1 / AN10 / INT1 / SCK / SLC E/S Registre PORTC LATC TRISC Bit 4 Bit 3 Bit 2 RB5 RB4 RB3 RB2 LATB5 LATB4 LATB3 LATB2 Registre de direction du PORTB Bit 1 Bit 0 RB1 LATB1 RB0 LATB0 entrée d’interruption, broche de programmation entrée d’interruption, broche de programmation entrée d’interruption, broche de programmation broche d’entrée pour le CAN, broche d’entrée d’interruption entrée de sélection SPP broche d’entrée pour le CAN, broche d’entrée d’interruption externe 3, broche d’entrée pour le CAN, broche d’entrée d’interruption externe 2, broche d’entrée pour le CAN, broche d’entrée d’interruption externe 1, broche E/S d’horloge SPI et I2C broche d’entrée pour le CAN, broche d’entrée d’interruption externe, broche d’entrée I2C RB0/ AN12/ INT/ FLD0/ SPI/ SDA E/S Port C Bit 5 les registres associés au port C sont PORTC, LATC, TRISC, UCON Adresse F82h F8Bh F94h Bit 7 Bit 6 RC7 LATC7 RC6 LATC6 Bit 5 Bit 4 Bit 3 Bit 2 RC5 RC4 RC2 LATC2 Registre de direction du PORTC Bit 1 Bit 0 RC1 LATC1 RC0 LATC0 RC5 et RC4 ne sont disponibles en broches du port que lorsque le module USB est désactivé (UCON <3> = 0). Port E Registre PORTE les registres associés au port E sont PORTE, ADCON1, CMCON Adresse F84h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 RE3 RE3 est disponible en broche d’entrée si le MASTER CLEAR est désactivé Lycée des Métiers Jacques Prévert Combs – la – Ville Section de BAC PRO Systèmes électroniques numériques Electronique Industrielle Embarquée 7 Traitement de l’information Cours TSEN _______________________________________________________________________________________ Les périphériques Le TIMER 0 Le module Timer 0 est un compteur 8 bits ( TMR0 ) ou 16 bits, accessible en lecture et en écriture, il est donc possible de pré charger une valeur initiale dans le Timer. Lorsque la valeur du registre TMR0 passe de la valeur 0×FF à la valeur 0×00, ( débordement du compteur), le bit TOIF du registre INTCON passe à 1, il est possible de générer une interruption ( ce bit doit être remis à 0 par programme) L’horloge de ce compteur peut être interne ou externe par l’intermédiaire d’un pré diviseur 3bits Fosc/4 (Horloge interne) Bus de Données Broche TOCKI 0 0 1 Pré-diviseur programmable 1 3 TOSE TOCS TOPS0 à TOPS2 PSA Synchronisation avec l’horloge interne TMR0 Mise à 1 du bit d’interruption TOIF sur débordement Les registres associés au Timer 0 sont :TMR0L, TMR0H, INTCON, INTCON2, TOCON, TRISA(4) Lycée des Métiers Jacques Prévert Combs – la – Ville Section de BAC PRO Systèmes électroniques numériques Electronique Industrielle Embarquée 8 Traitement de l’information Cours TSEN _______________________________________________________________________________________ Les comparateurs analogiques Le module est composé de deux AIL câblés en comparateurs de tension. Ils partagent leur entrée avec le port A et une tension de référence interne Le fonctionnement de ce module est contrôlé par le registre CMCON Registre CMCON C1OUT : C2OUT : CxINV : CIS: CMx Adresse Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 1Fh C2OUT C1OUT C2INV C1INV CIS CM2 CM1 CM0 Ce bit est positionné à 1 lorsque VIN+ > VIN- pour le comparateur 1 Ce bit est positionné à 1 lorsque VIN+ > VIN- pour le comparateur 2 Polarité des sorties des comparateurs bits de sélection des broches d’entrées des comparateurs ( multiplexage des entrées) bits de sélection du câblage interne des comparateurs. Les registres associés au module comparateurs sont :CMCON, VRCON, INTCON, PIR1, PIE1 et TRISA La tension de référence Le module de référence est constitué d’un réseau de 16 résistances permettant d’alimenter les comparateurs avec une tension de référence. Le fonctionnement de ce module est contrôlé par le registre VRCON Registre VRCON VREN : VROE : VRR : VR[3 :0] Adresse Bit 7 Bit 6 Bit 5 9Fh VREN VROE VRR Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 VR3 VR2 VR1 VR0 (VRef ENable) Validation du module si ce bit est à 1 (VRef Output Enable) la tension de référence alimente la sortie Vref et les comparateurs (VRef Range selection) bit de sélection de la gamme de tension Choix de la valeur dans la gamme Si VRR = 0 : Vref = (VR[3 :0] / 24 ) × Vdd Si VRR = 1 : Vref = Vdd / 4 + (VR[3 :0] / 32 ) × Vdd La mémoire EEPROM Le composant dispose d’une zone mémoire non volatile (EEPROM) de 128 octets. Cette mémoire n’est accessible que par adressage indirect via un registre propre au module L’acces à cette mémoire est contrôlé par les registres EECON1, EECON2, EEDATA, EEADR Lycée des Métiers Jacques Prévert Combs – la – Ville Section de BAC PRO Systèmes électroniques numériques Electronique Industrielle Embarquée 9