COURS : LE PIC 16C57C LE PIC 16C57C Sommaire I. PRESENTATION………………………………………………………………………….1 II. CARACTERISTIQUES…………………………………………………………………..2 III. L’OSCILLATEUR……………………………………………………………………….3 IV. INITIALISATION (RESET) et WATCHDOG………………………………………...4 V. ORGANISATION DE LA MEMOIRE ROM ET RAM………………………………..5 VI. CONFIGURATION DES PORTS………………………………………………………7 LYCEE LA FAYETTE 1/9 COURS : LE PIC 16C57C I. PRESENTATION Le PIC 16C57C faut partie de la famille des PIC 16C5X qui regroupe les PIC : 16C54, 16C56, 16C57, 16C58. Voilà ci-dessous l'architecture interne d'un PIC de la famille 16C5X : 1/ Sur le schéma ci-dessus, encadrez les fonctions suivantes: - Mémoire vive ; - Mémoire morte de programme ; - Interface d'entrée/sortie ; - Horloge - Chien de garde. 2/ Combien de ports contiennent les PIC de la famille 16C5X ? …………………………………………………………………………………………………………………………………………………. LYCEE LA FAYETTE 2/9 COURS : LE PIC 16C57C II. CARACTERISTIQUES Le tableau ci-dessous regroupe les informations des PIC 16C5X : 1/ Quelle est la vitesse maximale de l’horloge que l’on peut appliquer au PIC 16C57C ? …………………………………………………………………………………………………………………………………………………. 2/ Quelle est la taille (en kilo-bits) de la mémoire programme du PIC 16C57C ? …………………………………………………………………………………………………………………………………………………. 3/ Quelle est la taille de la RAM (en octets) de la mémoire vive du PIC 16C57C ? …………………………………………………………………………………………………………………………………………………. 4/ Le PIC 16C57C contient-il une mémoire EEPROM interne ? …………………………………………………………………………………………………………………………………………………. 5/ Combien d’entrées – sorties contient le PIC 16C57C ? …………………………………………………………………………………………………………………………………………………. 6/ Combien d’instructions de programmation supporte le PIC 16C57C ? …………………………………………………………………………………………………………………………………………………. LYCEE LA FAYETTE 3/9 COURS : LE PIC 16C57C III. CONFIGURATION DE L’OSCILLATEUR Rappel : L’oscillateur est le dispositif permettant de cadencer l’exécution du programme du PIC (par exemple, à l’aide d’un quartz). Le schéma structurel d’un oscillateur à base de quartz est le suivant : Oscillateur à quartz 1/ En vous aidant de l’architecture du PIC16CX donnée en page 1, citer les deux broches d’entrée d’horloge. Indiquer le nom de ces broches sur le schéma ci-dessus. …………………………………………………………………………………………………………………………………………………. 2/ Le tableau ci-dessous, issu de la documentation technique du PIC16CX, donne la valeur des capacités C1 et C2 à utiliser pour l’oscillateur en fonction de la fréquence du quartz. Sachant qu’on utilise un quartz de type XT, et de fréquence 4MHz, quelles doivent être les valeurs de C1 et C2 afin de correctement dimensionner l’oscillateur ? …………………………………………………………………………………………………………………………………………………. …………………………………………………………………………………………………………………………………………………. 3/ Le cadencement des instructions du programme à l’intérieur de la mémoire du PIC se fait grâce au signal d’horloge issu de l’oscillateur. Cependant, la fréquence à laquelle sont exécutées les instructions du programme est égale au quart de la fréquence issu de l’oscillateur. Fréquence d’exécution des instructions = Fréquence de l’oscillateur / 4 Calculer la durée d’exécution d’une instruction standard si la fréquence de l’oscillateur est de 4 Mhz. …………………………………………………………………………………………………………………………………………………. …………………………………………………………………………………………………………………………………………………. …………………………………………………………………………………………………………………………………………………. …………………………………………………………………………………………………………………………………………………. LYCEE LA FAYETTE 4/9 COURS : LE PIC 16C57C IV. L’INITIALISATION DU PIC16C57C (RESET) Le RESET est l’opération permettant d’initialiser le PIC. Cette opération peut être effectuée de deux manières : - A la mise sous tension du système (RESET hardware), par l’intermédiaire de la broche \MCRL. - Lors d’un plantage dans l’exécution du programme (RESET software) par l’intermédiaire du Watchdog (chien de garde). IV.1. Le RESET hardware A chaque mise sous tension du système, il faut initialiser le PIC pour qu’il puisse commencer à exécuter son programme. Cette opération se fait de la manière suivante : - Après l’application de la tension d’alimentation VDD, il faut laisser la broche \MCLR à l’état bas pendant une durée minimale tMIN ; - Lorsque \MCRL passe à l’état haut, le PIC est initialisé en interne après une durée TDRT. VDD MCLR RESET INTERNE DU PIC IV.2. Le RESET par watchdog (chien de garde) Un chien de garde est un dispositif logiciel (cas du PIC, mais il en existe des matériels réalisés par une structure électronique externe au micro) permettant de vérifier que le programme s’exécute correctement. Le chien de garde logiciel est un compteur dont la taille est configurable et qui envoie une impulsion interne au PIC toute les 18ms (par défaut), ce qui a pour effet d’initialiser le PIC. En fonctionnement normal (lorsque le programme ne bogue pas), le but est d’éviter l’apparition de cette impulsion. Pour cela, le programme exécuté par le PIC remet à 0 la valeur du compteur régulièrement avant que s’écoule 18 ms. Dans le cas d’un plantage du programme, la valeur du compteur ne sera pas remise à 0 et le chien de garde enverra une impulsion de RESET au bout de 18ms, ce qui aura pour effet de réinitialiser le PIC. LYCEE LA FAYETTE 5/9 COURS : LE PIC 16C57C V. ORGANISATION DE LA MEMOIRE INTERNE DU PIC V.1. Organisation de la mémoire programme (EPROM) La mémoire EPROM du 16C57C est organisée de la manière suivante : L’EPROM est organisée en quatre pages : - Page 0 : De l’adresse …………. à ………….. ; - Page 1 : De l’adresse …………. à ………….. ; - Page 2 : De l’adresse …………. à ………….. ; - Page 3 : De l’adresse …………. à ………….. ; L’adresse 7FFh est particulière : elle contient le vecteur du RESET. C’est à cette adresse que le PIC ira chercher la première instruction à exécuter lors d’un RESET. LYCEE LA FAYETTE 6/9 COURS : LE PIC 16C57C V.2. Organisation de la mémoire de données (RAM) La mémoire RAM est également organisée en 4 pages : Le « bas » - de chaque page contient les registres internes du PIC. TMR0 : Compteur logiciel ; PCL : Program Counter (Low) : Adresses basses du PC STATUS : Registre qui contient diverses informations, comme la retenue d’une opération, la sélection des banques mémoires en EPROM, … FSR : Registre permettant la sélection des pages mémoire en RAM ; PORTA, PORTB, PORTC : Registres permettant d’écrire et de lire les ports du PIC ; Les espaces General Purpose Registers sont libres d’accès : C’est ici que le programme pourra enregistrer des informations lors de son exécution. 1/ Quel registre se situe à l’adresse 04h ? …………………………………………………………………………………………………………………………………………………. 2/ Quel registre se situe à l’adresse 21h ? …………………………………………………………………………………………………………………………………………………. 3/ Quel registre se situe à l’adresse 43h ? …………………………………………………………………………………………………………………………………………………. 4/ Puis-je enregistrer une donnée à l’adresse 0Ah ? …………………………………………………………………………………………………………………………………………………. 5/ Puis-je enregistrer une donnée à l’adresse 23h ? …………………………………………………………………………………………………………………………………………………. LYCEE LA FAYETTE 7/9 COURS : LE PIC 16C57C V.3. Sélection des pages mémoires Nous avons vu que la mémoire de programme (EPROM) ainsi que la mémoire de données (RAM) sont organisées en 4 pages. Sélection des pages en mémoire programme (EPROM) : On utilise le registre STATUS : PA2 (inutilisé) X X X X PA1 PA0 Page EPROM sélectionnée Page Page Page Page 0 1 2 3 (000h (200h (400h (600h – – – – 1FFh) 3FFh) 5FFh) 7FFh) Sélection des pages en mémoire de données (RAM) : On utilise le registre FSR (File Selection Register) : Bit 6 du registre SFR LYCEE LA FAYETTE Bit 5 du registre SFR Page RAM sélectionnée Page 0 (00h – 1Fh) Page 1 (20h – 3Fh) Page 2 (40h – 5Fh) Page 3 (60h – 7Fh) 8/9 COURS : LE PIC 16C57C VI. CONFIGURATION DES PORTS Le PIC 16C57C possède trois ports d’entrées / sorties : - Le port A, de 4 bits [3..0] ; soit 4 fils - Les ports B et C de 8 bits [7..0] ; Le PIC 16C57C permet possède donc 8*2 + 4 = 20 fils d’entrées / sorties pour écrire ou lire des données numériques. Le registre TRIS permet de sélectionner la direction (entrée ou sortie) de chaque bit d’un port. - Si le bit n de TRIS = 1, alors le bit n du port sera en entrée ; - Si le bit n de TRIS = 0, alors le bit n du port sera en sortie ; Exemple : On veut configurer le port A de la manière suivante : PA0 : Entrée ; PA1 : Entrée ; PA2 : Sortie ; PA3 : Entrée ; On procède donc comme ceci : (W est un registre de travail interne du PIC) Algorithme W 00001011B TRIS [PORTA] W Programme assembleur MOVLW 00001011B TRIS PORTA Commentaire Charge W avec 00001011B Charge TRIS du Port A Exercice : Ecrire le programme assembleur permettant de configurer : - PB0, PB1, PB2, PB6 : En entrée ; - PB3, PB4, PB5, PB7 : En sortie ; Pour cela, compléter le tableau suivant : (S : Sortie / E : Entrée) PORTB TRIS PB7 S 0 PB6 E 1 PB5 PB4 PB3 PB2 PB1 PB0 En déduire le programme assembleur permettant de configurer le port B : LYCEE LA FAYETTE 9/9