Académique Documents
Professionnel Documents
Culture Documents
--Systèmes à Microcontrôleurs
DUT-GE(S3)-EST
RST(S6)-ENSA -KENITRA
-GEULMIM 1
Plan
Brochage
Principales caractéristiques
Architecture interne
Organisation de la mémoire
L’ALU et le registre W
Horloge
DUT-GE(S3)-EST -GEULMIM
RST(S6)-ENSA -KENITRA 2
Brochage
Port A
DUT-GE(S3)-EST
RST(S6)-ENSA -KENITRA
-GEULMIM 4
Brochage
Port B
DUT-GE(S3)-EST
RST(S6)-ENSA -KENITRA
-GEULMIM 5
Principales caractéristiques
Seulement 35 instructions
Tout les instructions se font en un cycle machine (4 cycles d’horloges) sauf les
instructions de branchement qui se font en deux cycles machine
Vitesse allant jusqu’à 20 MHz, soit une instruction sur 200 ns
14 bits pour coder les instructions
8 bits pour les données
15 registres pour les fonctions spéciales
1K mots de mémoire Flash
68 octets de mémoires de données RAM
64 octets de mémoire de données EEPROM
1 Timer/compteur 8 bits avec une prédivision programmable et cadencé par une
horloge interne ou externe
4 sources d’horloge sélectionnable
Mode sleep (pour une faible consommation)
DUT-GE(S3)-EST
RST(S6)-ENSA -KENITRA
-GEULMIM 6
Principales caractéristiques
8 niveaux de pile
4 sources d’interruptions
1000 cycles d’effacements/écriture possible dans la mémoire du programme
Flash
10 000 000 cycles d’effacements/écriture possible dans la mémoire de données
EEPROM
Programmation par ICSP ( In Circuit Serial Programming) via deux broches RB6
(clock) et RB7 (data)
Protection de code
DUT-GE(S3)-EST
RST(S6)-ENSA -KENITRA
-GEULMIM 7
Architecture interne
DUT-GE(S3)-EST
RST(S6)-ENSA -KENITRA
-GEULMIM 8
Architecture interne
DUT-GE(S3)-EST
RST(S6)-ENSA -KENITRA
-GEULMIM
Architecture interne
DUT-GE(S3)-EST
RST(S6)-ENSA -KENITRA
-GEULMIM
Architecture interne
DUT-GE(S3)-EST
RST(S6)-ENSA -KENITRA
-GEULMIM 11
Architecture interne
DUT-GE(S3)-EST
RST(S6)-ENSA -KENITRA
-GEULMIM 12
Organisation de la mémoire
DUT-GE(S3)-EST
RST(S6)-ENSA -KENITRA
-GEULMIM 13
Organisation de la mémoire
Mémoire de programme
• Le compteur programme de 13 bits
est capable d’adresser 213=8K mots
de 14 bits
• Seulement le premier 1K mots de 14
bits (0000h à 03FFh) qui est
physiquement implémenté et
accessible
• L’adresse 0000h contient le vecteur
du reset (Il s’agit du branchement
vers début du programme)
• L’adresse 0004h contient le vecteur
d’interruption (Il s’agit Branchement
vers début du programme
d’interruption)
DUT-GE(S3)-EST
RST(S6)-ENSA -KENITRA
-GEULMIM 14
Organisation de la mémoire
Mémoire de programme
• Le compteur programme de 13 bits
est capable d’adresser 213=8K mots
de 14 bits
• Seulement le premier 1K mots de 14
bits (0000h à 03FFh) qui est
physiquement implémenté et
accessible
• L’adresse 0000h contient le vecteur
du reset (Il s’agit du branchement
vers début du programme)
•L’adresse 0004h contient le vecteur
d’interruption (Il s’agit Branchement
vers début du programme
d’interruption)
DUT-GE(S3)-EST
RST(S6)-ENSA -KENITRA
-GEULMIM 15
Organisation de la mémoire
Mémoire de la pile
• La pile est une zone mémoire qui permet de stocker les adresses (contenu du
compteur programme) de retour d’un sous programme ou d’une routine
d’interruption
• Elle peut contenir 8 valeurs (adresses de retours) de 13 bits chacune
• Elle n’a pas d’adresse dans la plan mémoire
• Ce sont des zones réservées par le système
DUT-GE(S3)-EST
RST(S6)-ENSA -KENITRA
-GEULMIM 16
Organisation de la mémoire
Mémoire de données
• La mémoire RAM est constituée de deux
parties :
Les registres SFR : ce sont les registres
utilisés par le CPU et les périphériques
pour contrôler une opération désirée par
le PIC
o Ils sont situés dans les zones 00h-0Bh
et 80h-8Bh
Les registres GPR (General Purpose
Registers) sont des positions mémoire que
l'utilisateur peut utiliser pour stocker ses
variables et ces données
oIls sont situés dans la zone 0Ch-4Fh et
mappés dans la zone 8Ch-CFh
• Les zones 07h,87h, 4Fh-7Fh et CFh-FFh
ne sont pas implémentées
DUT-GE(S3)-EST
RST(S6)-ENSA -KENITRA
-GEULMIM 17
Organisation de la mémoire
STATUS Registre d’état
• La mémoire RAM est organisée en deux banques (pages): Bank0 et Bank1
Pour accéder à un registre, il faut d'abord se placer dans la banque où il se
trouve
L’accès à la page est réalisé en positionnant le bit RP0 du registre STATUS
(Adresse 03h ou 83h)
RP0 = 0 → Bank 0
RP0 = 1 → Bank 1
DUT-GE(S3)-EST
RST(S6)-ENSA -KENITRA
-GEULMIM 18
Organisation de la mémoire
RST(S6)-ENSA -KENITRA
DUT-GE(S3)-EST -GEULMIM
Organisation de la mémoire
DUT-GE(S3)-EST
RST(S6)-ENSA -KENITRA
-GEULMIM
OPTION REGISTER (81h):
8 bits (tous à 1 au RESET) affectant le comportement des E/S et des timers.
RST(S6)-ENSA -KENITRA
DUT-GE(S3)-EST -GEULMIM
PSA (Prescaler assignment) : Affecter un facteur de division 0 pour Timer
0 et 1 pour chien de garde WDT.
PS2:0 :sélection de la valeur du diviseur de fréquence pour les timers.
22
Organisation de la mémoire
• Registres SFRs du PIC16F84A
SFRs du BANK0
DUT-GE(S3)-EST
RST(S6)-ENSA -KENITRA
-GEULMIM 23
Organisation de la mémoire
SFRs du BANK1
DUT-GE(S3)-EST
RST(S6)-ENSA -KENITRA
-GEULMIM 24
Organisation de la mémoire
INDF (00h ou 80h) : Utilise le contenu de FSR (File Select Register) pour
l’accès indirect à la mémoire
TM0(01h) : Registre lié au Compteur/Timer0
PCL (02h ou 82h) : Contient les 8 bits du poids faible du compteur programme
(PC)
STATUS (03h ou 83h) : Il contient l’état de l’unité arithmétique et logique ainsi
que le bit de sélection des banques
FSR (04h ou 84h) : Permet l’adressage indirect
PORTA (05h) : Donne l’accès en lecture ou en écriture du port A
PORTB (06h) : Donne l’accès en lecture ou en écriture du port B
EEDATA (08h) : Permet l’accès aux donnés dans la mémoire EEPROM
EEADR (09h) : Permet l’accès aux adresses de la mémoire EEPROM
DUT-GE(S3)-EST
RST(S6)-ENSA -KENITRA
-GEULMIM 25
Organisation de la mémoire
DUT-GE(S3)-EST
RST(S6)-ENSA -KENITRA
-GEULMIM 26
Organisation de la mémoire
Mémoire EEPROM
• Le PIC possède une zone EEPROM de 64 octets
• Accessible en lecture et en écriture par le programme
• Les données sont conservées même si l’alimentation est éteinte
• L’accès à cette mémoire requiert l’utilisation des registres dédiés
• La lecture et l’écriture ne peuvent s’exécuter que selon des séquences
particulières
DUT-GE(S3)-EST
RST(S6)-ENSA -KENITRA
-GEULMIM 27
L’ALU et le registre W
C'est une ALU 8 Bits qui réalise les opérations arithmétique et logique entre
l'accumulateur W (Work register) et n'importe quel autre registre 'F‘ (File registre)
ou constante K
L'accumulateur W est un registre de travail 8 bits, il n'a pas d'adresse comme les
autres SFR
Pour les instructions à deux opérandes, c'est toujours lui qui contient un des
deux opérandes
Pour les instructions à un opérande, celui-ci peut être soit W soit n'importe quel
registre F
Le résultat de l'opération peut être placé soit dans le registre de travail W soit
dans le registre F
Exemple :
DUT-GE(S3)-EST
RST(S6)-ENSA -KENITRA
-GEULMIM 28
La mémoire EEPROM de configuration
RST(S6)-ENSA -KENITRA
DUT-GE(S3)-EST -GEULMIM
La mémoire EEPROM de configuration
DUT-GE(S3)-EST
RST(S6)-ENSA -KENITRA
-GEULMIM
Horloge
Le PIC16F84A peut fonctionner avec 4 sources d’oscillateurs différentes :
• LP : Low Power Crystal (Fosc1 et Fosc0 =00 ,jusqu’à 4 MHZ)
• XT : Crystal/Resonator (Fosc1 et Fosc0 =01 ,jusqu’à 20 MHZ )
• HS : High Speed Crystal (Fosc1 et Fosc0 =10 ,jusqu’à 4 MHZ )
• RC : Resistor/Capacitor (Fosc1 et Fosc0 =11 ,jusqu’à 200 KHZ )
Le choix de la source d’horloge se fait par les deux bits de configurations Fosc1
et Fosc0
L’horloge peut être externe ou interne. Cette dernière est constituée d'un
oscillateur à quartz ou d'un oscillateur RC
DUT-GE(S3)-EST
RST(S6)-ENSA -KENITRA
-GEULMIM 31
Horloge
Avec l'oscillateur à Quartz, on peut avoir des fréquences allant jusqu'à 20 MHz
selon le type du μC
Avec un oscillateur RC, la fréquence de l'oscillation est fixée par Vdd, Rext et
Cext. Elle peut varier légèrement d'un circuit à l'autre
DUT-GE(S3)-EST
RST(S6)-ENSA -KENITRA
-GEULMIM 32