Vous êtes sur la page 1sur 12

STI

GE LES MICROCONTRÔLEURS PIC

I. Généralités sur les microcontrôleurs 8 bits

1. Historique des microcontrôleurs 8 bits


Nés en 1980 avec le microcontrôleur 8048 d’INTEL et le HC05 de MOTOROLA, les microcontrôleurs reposent sur un
concept très pratique : réunir sur une même puce un processeur 8 bits et des périphériques numériques et analogiques divers
( ex : pilotage d’actionneurs tel que relais, moteur, afficheur,…, acquisition de grandeurs physiques fournies par des capteurs,
poussoirs, clavier…..).

2. Domaines d’application des microcontrôleurs


Les domaines d’application sont extrêmement variés et touchent tous les secteurs : grand public, industriel, informatique, les
télécommunications avec les téléphones portables, l’automobile pour toutes les fonctions autour du tableau de bord, de
l’ouverture des portes, contrôle des sièges, feux, et autres alarmes.

3. Architecture générale des microcontrôleurs


Les microcontrôleurs 8 bits sont des composants peu coûteux qui bénéficient des progrès technologiques comme la mémoire
flash pour le stockage des programmes, la mixité analogique-numérique sur le même silicium.
C’est un circuit intégré qui regroupe dans le même boîtier toutes les fonctions élémentaires d’un système minimum à
microprocesseur :
• unité centrale
• mémoire programme, donnée
• Bus d’adresse, de donnée, de contrôle
• interface d’entrée/sortie parallèle, série.

Selon les besoins de l’application et les modèles de microcontrôleurs disponibles dans une famille (PIC, ATMEL, INTEL) il
peut comprendre en plus :

• des blocs analogiques (CAN, CNA, filtres, amplificateurs, comparateurs analogiques, …..)
• des blocs numériques (temporisateurs, modulateurs, multiplexeur, UART,…..)

4. Quelques grandes familles de microcontrôleurs


Quatre familles sont de véritables standards du domaine : les 8048 et 8051 pour INTEL et les 68HC05 et 68HC11 pour
MOTOROLA.
MOTOROLA est le leader dans le domaine des microcontrôleurs 8 bits avec 21 % des parts de marché pour le 68HCXX.
INTEL est le second avec le microcontrôleur 8051 et représente 15%.

qui fabrique les microcontrôleurs PIC possède 6% du marché.

 TD sur la présentation de la famille PIC


a) Quels sont les deux principaux fabricants de microcontrôleur ?
b) Quelle est la proportion de PIC vendus sur le marché des microcontrôleurs ?
c) Citer trois domaines d’application des microcontrôleurs ?

Les microcontrôleurs PIC pic.odt Page 1/12


II. Présentation de la famille PIC
1. Le PIC et ses trois grandes familles
Les microcontrôleurs de Microchip, les PIC sont une marque déposée.
Il existe trois grandes familles de microcontrôleurs :
• La famille Base-line, qui utilise des mots d’instructions codés sur 12 bits (ex : 12C508).
• la famille Mid-Range que nous étudierons, qui utilise des mots d’instructions1 codés sur 14 bits (ex :
16F84, 16F628)
• La famille High-End, qui utilise des mots d’instructions codés sur16 bits (ex : 18F8x ou 17Cxx).

2. Décryptage de la référence des PIC


XX X XXX -XX X /XX XXX
N°de famille Type de mémoire programme du circuit Référence du Gamme de Gamme de Type de Code lié à la
et plage d’alimentation circuit au fréquence Température boîtier :programmation
12 : Base line Type de Standard Etendu sein de la -04=4MHz Industrial : P= PDIP de la ROM en
mémoire (4,5V– 6V) (2,5V- 6V) famille I = -40°C to usine (QTP :
16 : Mid-Range EPROM 16 C xxx 16 LC xxx (Base line ou +85°C (l) SO= SOIC Quick Turn
ROM 16 CR xxx 16 LCR xxx Mid-Range Production)
Flash 16 F xxx 16 LF xxx ou High- -20=20MHz Commercial: SS= SSOP (QTP)
17, 18 : High-End
End). ...= 0°C to
+70°C

3. Descriptif sommaire de quelques PIC


référence Mémoire EEPROM Taille Analogiques Numériques système Autres particularités
programme de RAM CAN Com autres Port E/S PWM Timers Vit. IC
Oct Organisa donnée 8 bits para E/S série 10 Max en SP
ets tion teur bits MHz
12C508 768 512x12 - 25 - - - 6 - - 1-8bits. 4 oui Une E/S
1-WDT2 fournit/absorbe
25mA
16F84 1792 1024x14 64 68 - - - 13 - - 1-8bits. 20 oui Une E/S fournit/
1-WDT absorbe 25mA max.
16F628 3584 2048x14 128 256 - 2 BOD3, 16 USART/ 1 1-16bits. 20 oui Une E/S fournit/
Prog SCI 2-8bits. absorbe 25mA max.
Vref4 1-WDT Horloge interne
4MHz .
16F870 3584 2048x14 64 128 5 de - BOD 22 USART/ 1 1-16bits. 20 oui Une E/S fournit/
10bits SCI 2-8bits. absorbe 25mA max.
1-WDT CCP5,
16F877 14336 8192x14 256 368 8 de - BOD 33 USART/ 2 1-16bits. 20 oui Une E/S fournit/
10bits SCI 2-8bits. absorbe 25mA max.
I2C 1-WDT CCP,
PSP6

1
Instructions de 14 bits : Code binaire sur 14 bits qui correspond à un ordre précis que doit exécuter le microcontrôleur. Ce code binaire est aussi nommé code
machine. Un programme est composé d’une suite séquentielle d’ordres ou d’instructions.
2
WDT : watch dog
3
BOD : Brown out detection : Détection de chute de la tension d’alimentation
4
Prog Vref : tension de référence programmable en sortie
5
CCP : Capture, Compare, PWM
6
PSP : port // esclave
Les microcontrôleurs PIC pic.odt Page 2/12
4. Caractéristiques principales de la famille PIC
Un jeu d’instruction réduit ou RISC ( Reduced instruction set computer)

Un jeu d’instruction RISC permet d’accélérer la vitesse d’exécution des programmes. Les instructions 7 pour commander le
microcontrôleur sont alors peu nombreuses (33 ou 35 instructions différentes) mais aussi plus simples et donc plus rapides à
exécuter. Chaque mot de la mémoire programme (de 12 ou 14 ou 16 bits) contient une instruction et toutes les instructions
(sauf les sauts) sont exécutées en un seul cycle machine.

Une architecture de type HARVARD

Il existe deux types classiques d’architecture interne de microcontrôleur :


 Architecture de HARVARD qui est celle des PIC. Avec ce type d’architecture les instructions et les
données transitent sur des bus bien différenciés. Il en résulte un gain de temps, puisque pour exécuter une
instruction on peut simultanément accéder à l’instruction ET à la donnée associée à cette instruction.

 Architecture VON NEUMANN qui possède un unique bus de données pour faire transiter les instructions et
les données

Architecture Von Neumann Architecture Harvard

Mémoire programme = Mémoire de Unité Mémoire programme =


Unité
Instructions + données données centrale Instructions
centrale

Bus données Bus de données Bus d’instructions

 TD sur la présentation de la famille PIC


a) Donner la signification d’un jeu d’instruction RISC.
b) Indiquer la différence entre une architecture Von Neumann et Harvard.
c) Préciser l’architecture utilisée par les PIC?
d) Donner la signification de la référence PIC suivante: 16 F 84 –04 /P .
e) Détailler les caractéristiques du microcontrôleur 16F870.
f) Donner la famille à laquelle appartient le 16F870 (Base-line, Mid-range, End-line).
g) A partir de la documentation technique du 16F84 à la page suivante, rechercher :
•le nombre de bits de données du PIC 16F84.
•l’organisation de la mémoire donnée.
•l’organisation de la mémoire programme.
•le nombre d’écriture/ effacement de la mémoire programme.
•le nombre d’Entrées/Sorties disponibles.
•Le courant maximum IOH pour l’état logique haut et le sens de ce courant.
•Le courant maximum IOL pour l’état logique bas et le sens de ce courant.

7
Instructions de 14 bits : Code binaire sur 14 bits qui correspond à un ordre précis que doit exécuter le microcontrôleur. Ce code binaire est aussi nommé code
machine. Un programme est composé d’une suite séquentielle d’ordres ou d’instructions.
Les microcontrôleurs PIC pic.odt Page 3/12
Organisation et registres de la
mémoire de donnée

Les microcontrôleurs PIC pic.odt Page 4/12


III.Architecture interne des PIC de la famille MID-RANGE
1. Schéma de l’architecture
L’architecture ci-dessous correspond à un microcontrôleur de la famille MID-RANGE qui serait doté de toutes les
fonctionnalités possibles pour un PIC.

Repérer en rouge l’unité centrale, en vert la mémoire programme, en bleu la mémoire donnée, en jaune les ports
parallèles d’E/S, en violet le périphérique CAN(A/D) et en orange le périphérique liaison série RS232.

Les microcontrôleurs PIC pic.odt Page 5/12


2. Principe de fonctionnement de l’unité centrale : exécution d’une instruction
1. Le PC (Compteur Programme) registre de 13 bits contient l’adresse de la
prochaine instruction à exécuter dans la mémoire programme.

Le PC peut être stocké, si nécessaire, dans une pile qui peut contenir 8 valeurs aux
maximum (8 niveaux).

Au début du programme qui commence à l’adresse 0, PC=0.

2. La mémoire programme
contient l’ensemble des instructions
du programme.
4.B. L’opérande fournit
Par exemple en adressage direct une l’adresse qui va permettre
instruction se compose d’un mot de d’accéder à la donnée dans la
14 bits qui a la structure suivante : RAM.

Opération
à exécuter Opérande de 7
sur 7 bits bits qui est 5. La donnée et l’opération
+ l’adresse de la décodée arrivent simultanément
donnée dans la dans un multiplexeur.
RAM. (structure de Harvard).

. 6.A. L’ALU (Unité


Arithmétique et Logique) va
exécuter les calculs ou tests
3. Le registre d’instruction permet logiques requis par l’instruction.
de mémoriser la prochaine
instruction qui sera exécutée.

4.A. L’opération va être décodée


pour pouvoir indiquer à l’ALU les 7.A. L’ALU pour effectuer ses
calculs qui devront être exécutées. opérations a besoin d’une
variable, ici un registre de
travail W (Working register).

a) Repérer en les fléchant les éléments participants aux phases 1 à 7 de l’exécution d’une instruction.
b) Tracer en rouge, le chemin utilisé pour exécuter une instruction.
c) Indiquer le rôle du PC.
d) Retrouver le circuit dont le rôle est d’effectuer les opérations arithmétiques et logiques.

3. Horloge

a) Durée d’exécution d’une instruction


La durée (Tcy) pour exécuter une instruction est telle que : Tcy = Tosc x 4 avec Tosc la période de l’horloge du
microcontrôleur PIC.
Les microcontrôleurs PIC exécutent toutes les instructions en un seul cycle machine (sauf les sauts en 2 cycles).
Pour une horloge équipée d’un quartz de 4 MHz, on obtient alors environ 1 million d’instructions par seconde.

b) Type d’horloge et mot de configuration


On peut équiper le microcontrôleur avec 3 types d’horloge : Oscillateur à quartz ou résonateur céramique, ensemble
résistance capacité, oscillateur à résistance capacité interne.
Au moment de la programmation du PIC dans le mot de configuration, il est obligatoire d’informer le microcontrôleur du
type d’horloge qui est utilisé.

Les microcontrôleurs PIC pic.odt Page 6/12


4. La mémoire programme

Pour la famille MID-RANGE la mémoire programme est constituée de mots de 14 bits.


Lors de la lecture d’un PIC vierge tous les bits de la mémoire programme sont à 1, on peut donc lire en binaire
(11 1111 1111 1111) ou encore en hexadécimal 3FFFh.

Le PC a une taille de 13 bits, il est donc capable d’adresser au maximum 8Kmots (1mot=14 bits). Cette espace
mémoire est divisée en 4 pages de 2 Kx14 (0h - 7FFh, 800h - FFFh, 1000h - 17FFh, et 1800h - 1FFFh).

5. La mémoire donnée
a) Deux types de registres8
Cette mémoire est organisée en mot de 8 bits. Elle contient deux types de registres :

 Les registres SFR (Special Function Registers) sont spécifiques à l’unité centrale. Ils permettent :
•à l’utilisateur de paramétrer le cadre de travail de l’unité centrale, prises en compte d’interruption, …
•à l’unité centrale de pouvoir exécuter une instruction (registre PC, …)
•à l’utilisateur et à l’unité centrale de piloter les périphériques (port E/S, CAN,….)
•à l’unité centrale d’analyser au moyen de drapeau (mémoire de 1 bit) les résultats d’une opération effectuée
par l’Unité Arithmétique et Logique

 Les registres GPR (General Purpose Register) à usage général qui servent de zone de variables pour l’utilisateur.

b) Organisation de la mémoire de données


Elle est divisée en quatre pages d’une taille maximum de 128 octets, chaque page est aussi nommée « banque de
registres ».

Les instructions PIC qui permettent d’accéder directement à une donnée de la RAM sont structurées de la façon
suivante :
Opération Opérande de 7
à exécuter bits qui est
sur 7 bits + l’adresse de la
donnée dans la
RAM.

L’opérande est une adresse de 7 bits. On ne peut donc qu’accéder à 27=128 bits. Or il existe au maximum 4 banques, il
manque donc deux bits qui permettent de sélectionner une banque de 128 octets parmi 4.

Le registre STATUS contient ces deux bits RP1 et RP0 de sélection de banque.

Il faut donc systématiquement que le programmateur renseigne l’unité centrale sur le numéro de banque dans laquelle il
désire travailler. Il réalise cette opération en donnant une valeur au bit RP1 et RP0 du registre STATUS.

8
Registres : Le registre est un ensemble de bascules. Ces bascules permettent de mémoriser l’information. Ici la mémoire de
donnée est organisée en mots de 8 bits. Un registre se compose donc de 8 bascules.
Les microcontrôleurs PIC pic.odt Page 7/12
 TD sur la mémoire donnée
a) Indiquer la différence entre registres SFR et GPR.
b) Encadrer en rouge la zone de variables SFR.
c) Encadrer en vert la zone de variables GPR.
d) Retrouver la nature du registre PORTA (SFR ou GPR) en utilisant un exemple d’organisation des registres en
mémoire donnée ci-dessous.
e) Retrouver la taille de la zone de variable utilisateur dans une banque.
f) Nommer les registres SFR qui sont communs aux quatre banques.
g) Compléter le tableau suivant :

Valeur des bits


Nom du registre N° de RP1 et RP0 du
banque registre
STATUS
RP1 RP0
PORTA
TRISA
PORTB
STATUS

Un exemple d’organisation des registres SFR et GPR


Les adresses des registres sont toujours à vérifier dans la documentation
technique de chaque composant PIC.

Les microcontrôleurs PIC pic.odt Page 8/12


6. Les entrées / sorties parallèles
a) Fonctionnement typique d’une broche d’un port d’E/S logique
Fonction :
Chaque broche du port peut être utilisée en entrée ou en sortie.

Par défaut après un reset les broches des ports sont placées en entrée.

Schéma de principe pour la broche 2 d’un PORTX:


Databus = bit2 de TRISX ou PORTX

S3 S1
RX2
T1

S2
T2
S4

Caractéristiques électriques typiques:


Chaque sortie d’un port individuellement peut fournir un courant maximum de 20mA
Chaque sortie d’un port individuellement peut absorber un courant maximum de 25mA
Mais le courant maximum fourni par chaque port en sortie ne peut dépasser 40 mA et le courant maximum absorbé par
chaque port ne peut dépasser 50mA max.

Registres associés :
TRISX: un registre de direction de 8 bits
Le sens de fonctionnement de chaque broche est déterminé par un registre de direction TRISX.
•Mettre le bit 2 de TRISX à 1 aura pour effet de mettre la broche RX2 du PORTX en entrée.
•Mettre le bit 2 de TRISX à 0 aura pour effet de mettre la broche RX2 du PORTX en sortie.

PORTX: un registre d’écriture ou lecture de 8 bits


Si la broche est configurée en entrée une lecture du bit 2 de PORTX donnera le niveau logique présent sur la broche
RX2.
Si la broche RX2 est configurée en sortie une écriture du niveau logique dans le bit 2 du PORTX fixera la niveau
logique de la broche RX2.

Les microcontrôleurs PIC pic.odt Page 9/12


 TD sur le fonctionnement typique d’une broche d’un port d’E/S logique
a) Compléter le tableau ci-dessous pour étudier la configuration de la broche RX2 en entrée. On utilisera le schéma
structurel de la page précédente.

Bit2 de WRTRIS S3 S1 S2 T1 T2 Etat de la broche RX2


TRISX2 / (B/P) (B/P)
Data bus

1  0

1  1

b) Compléter le tableau ci-dessous pour étudier la lecture de la broche RX2 en entrée. On utilisera le schéma
structurel de la page précédente.

RX2 RDPORT Bit 2 du PORTX2

0 0

1 0

c) Compléter le tableau ci-dessous pour étudier la configuration de la broche RX2 en sortie. On utilisera le schéma
structurel de la page précédente.

Bit2 de WRTRIS S3 S1 S2 T1 T2 Etat de la broche RX2


TRISX / (B/P) (B/P)
Data bus

0  0

0  1

d) Compléter le tableau ci-dessous pour étudier l’écriture d’un niveau logique sur la broche RX2 en sortie. On
utilisera le schéma structurel de la page précédente.

Bit 2 du PORTX2 WRPORT RX2

0 

1 

Les microcontrôleurs PIC pic.odt Page 10/12


b) Les Entrées/Sorties parallèles portA

Fonction :
Le portA possède 6 broches E/S. Chaque broche du port peut être utilisée en entrée ou en sortie.
Les broches du PORTA peuvent avoir deux fonctions en entrées : entrées analogiques,
entrées logiques.
Par défaut après un reset le portA est placé en entrée et s’il y a des entrées analogiques, les entrées sont positionnées en
mode analogique.

Schéma pour un bit du PORTA:


Structure pour RA0, RA1, RA2, RA3, RA5 Structure pour RA4, qui est une sortie à drain ouvert

Registres associés :
TRISA: un registre de direction de 8 bits
Un bit de TRISA mis à 1 aura pour effet de mettre la broche correspondante du PORTA en entrée.
PORTA: un registre d’écriture ou lecture de 8 bits.

Exemple avec FLOWCODE Exemple en C: Utilisation du portA avec un 16F84


STATUS=STATUS|0x20; //RP0 à 1; bank1
TRISA=0xF3; // RA3 :RA2=Sorties

STATUS=STATUS&0xDF; //RP0 à 0; bank0


PORTA=0x08; //RA3=1 ; RA2=0

Les microcontrôleurs PIC pic.odt Page 11/12


c) Les Entrées/Sorties parallèles portB

Fonction :
Le portB possède 8 broches E/S. Chaque broche du port peut être utilisée en entrée ou en sortie.
Par défaut après un reset le portB est placé en entrée.

Caractéristiques électriques :
Toutes les broches du portB lorsqu’elles sont en entrées peuvent être reliées à VDD via une résistance de pull-up activée
par programmation du bit RBPU du registre OPTION_REG.

Schéma pour un bit du PORTB:


Résistance de pull_up

Registres associés :
TRISB: un registre de direction de 8 bits
Un bit de TRISB mis à 1 aura pour effet de mettre la broche correspondante du PORTB en entrée.
PORTB: un registre d’écriture ou lecture de 8 bits

Exemple avec FLOWCODE Exemple en C: Utilisation du portA avec un 16F84


STATUS=STATUS|0x20; //RP0 à 1; bank1
TRISB=0x03; //RB0 et RB1 = Entrées

STATUS=STATUS&0xDF; //RP0 à 0; bank0


PB1_0 = PORTB & 0x03; // PB1_0= Entrées RB1 et RB0

Les microcontrôleurs PIC pic.odt Page 12/12