0% ont trouvé ce document utile (0 vote)
154 vues119 pages

Microcontrôleurs : Architecture et Fonctionnalités

Transféré par

Ismael Ghazi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
154 vues119 pages

Microcontrôleurs : Architecture et Fonctionnalités

Transféré par

Ismael Ghazi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

LES MICROCONTRÔLEURS

BILAL BEYDOUN, DR, HDR

2021/2022
Sommaire

1. Architecture des systèmes microprogrammés


• Architecture de Von neu Mann
• Les bus d’adresse, de données, de commande
• Décodage d’adresse
• Notion de capacité mémoire et lecture/écriture memoires

2. Les convertisseurs A/N et N/A


• Notion de temps de conversion et traitement
• La conversion A/N et N/A sur un PIC

3. Les microcontrôleurs (L’example du 16F887)


• Les éléments de base (les ports, le CAN, les timers, les registres CONFIG1 et CONFIG2, les memoirs, …)
• Configuration de l’horloge (interne / externe, choix de la fréquence)
• Les registres CONFIG1 et CONFIG2
• Configuration des ports E/S
• Les timers
• Le watchdog
• Les interruptions

4. Pour aller plus loin avec le PIC 18F

2
1
Architecture des
systèmes
microprogrammés

2021/2022
Système à Microcontrôleur

4
Architecture VON NEUMANN

9
10
11
12
13
14
15
16
17
18
Organisation de la mémoire

Structure d’une mémoire

La mémoire peut être considérée comme une armoire constituée de différents tiroirs. Chaque tiroir représente une
case mémoire

[Link]
[Link]/
20
Organisation de la mémoire
Structure d’une mémoire (suite) :

La capacité mémoire Cm (exprimée en octets ou en


bits) correspond à :

Cm = nb cases memoires x taille d’une case mémoire

21
Décodage d’adresse
La multiplication du nombre de périphériques autour du microprocesseur oblige la présence d’un décodeur d’adresses.

Source :[Link]

Ce décodeur d’adresses va aiguiller les données présentes sur le bus de données vers un périphérique donné (ex : le
microprocesseur veut accéder à la mémoire vive).

Par conséquent, le décodeur d’adresses va permettre au microprocesseur, de sélectionner un seul périphérique (avec
qui traiter) à la fois

22
Exemple :
Décodage d’adresse
Le microprocesseur propose sur le bus d’adresses une adresse
globale sur 16 bits (A15A14A13A12…A0) :

Fonctionnement du décodeur d’adresses 1. A15A14A13 désigne l’adresse complémentaire


2. A12…A0 désigne l’adresse directe

Scénario :

1. Le MicroP envoie sur le bus @ : 0100 1010 1100 1010

2. Le mot 010 en entrée du décodeur va déclencher une des


sorties /CS à 0 et les autres /CS à 1

3. Le périphérique rattaché au /CS à 0 sera sélectionné par le


microP pour échanger des données

4. La donnée sur le bus de données sera donc soit lue ou


écrite à la case mémoire 0 1010 1100 1010 du
Source : [Link]
périphérique sélectionné

23
Décodage d’adresse Entrées Décodeur
(CBA)
Sortie
Décodeur
Périphérique
sélectionné
/Y7/Y6…/Y0
Illustration et exemple
000 1111 1110 Mémoire n°0
(pour un décodeur 3 vers 8) :
001 1111 1101 Mémoire n°1
010 1111 1011 Mémoire n°2
011 1111 0111 Mémoire n°3
100 1110 1111 Mémoire n°4
101 1101 1111 Mémoire n°5
110 1011 1111 Mémoire n°6
111 01111111 Mémoire n°7

Scénario
Supposons que le microP présente l’adresse 1001 0010 1100 1101 avec un
ordre de lecture (bus de commande) sur le bus d’adresse :

Ceci signifie que le microP


24 veut lire la donnée située à l’adresse mémoire
10010 1100 1101 de la mémoire n°4
Processeur et mémoire
Fonctionnement de la mémoire :

Source : [Link]

1. /CS = 0 => la mémoire est sélectionnée par


le microP (décodeur d’adresses)
2. R/W=0 = > ordre d’écriture dans la mémoire
3. Le microP précise l’adresse à écrire (adresse directe) Source : [Link]

4. Le microP procède à l’écriture de la donnée via le bus de 1. Le processeur demande à lire la case mémoire @100
données 2. Le bus d’adresse spécifie cette adresse à la
mémoire
3. Le bus de données récupère la donnée et la fournit
au processeur
25
Famille PIC
27
28
29
30
31
Lecture du schéma bloc
d’un microcontrôleur
(Ex : PIC 16FXXX)
40
41
42
43
44
45
46
47
48
Les Ports d’entrée/sorties

49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
2
Conversion
analogique-numérique
(CAN) et numérique
analogique
2021/2022
INTRODUCTION

66 2020 / 2021
Signal à temps
DAC/ADC : Généralités (2) discret
Signal à
Signal à et amplitude discrète
temps continu
temps continu

Monde Calculateur
Monde
physique ? Stockage ? physique
n Traitement m
Capteurs Cryptage Actuateurs
(Mesure) Transmission
Transmissions Contrôle Données
numériques

Filtre Sample
ADC
de & hold
garde
Filtre
dynamique / format DAC H Ampli
résolution / cadence reconst
fidélité / linéarité .
prix / mise en œuvre Contrôle
67
DAC/ADC : Signaux
Amplitude
Continue Discrète
Temps
Signal «analogique Signal quantifié
Monde réel
Continu macros.

Filtre analogique / ampli Signal logique idéalisé


Signal échantillonné Signal numérique

Discret

Variante : capa commutées / CCD Calculateur


échantillonné-bloqué
Sortie d’un Il n’y a que dans ce cas que l’on peut
Sample&Hold associer un nombre entier au signal

68
09/06/2022 11:40

DAC/ADC : Signaux - transformation

00110011 Transformations
temps réel ou différé 01100011
10100011
Calcul 10101111
01110110
01110000 Données stockées
00001101 P/DSP/ASIC
t 01101101 t ou de synthèse
Stockage

69
09/06/2022 11:40

DAC/ADC : Signaux - Shannon

Exemple de sous-échantillonnage

Un signal incorrectement échantillonné ne pourra


pas être reconstitué
70
09/06/2022 11:40

DAC/ADC :
DAC ADC
– Principe • Principe
– Architectures • Architectures
– flash / semi-flash
• directes – à rampe(s)
– R et R/2R – approximation
– variantes – multipass
– delta-sigma
• indirectes
– fréquence et temps • Mise en œuvre
– charges • Erreurs et Technologie
– Mise en œuvre
– Erreurs et Techno.

Conclusion et tendances
71
Les convertisseurs Numérique-Analogiques :

Généralités et Principes

Tension de sortie

5*Uref
4*Uref
3*Uref
2*Uref
1*Uref

A = N.q
0 1 2 3 4 5
...
Uref peut correspondre à la pleine dynamique Code
ou à l’échelon élémentaire. d’entrée

Uref ou Uref /(2n-1) est aussi appelée quantum (q) ou lsb

72
Les convertisseurs Numérique-Analogiques :

Architectures directes

Transformation directe en tension (rapide)


Potentiométrique
A somme pondérées
A réseau R/2R
A somme de courant

73
Les convertisseurs Numérique-Analogiques

DAC à sommes pondérées


Principe : à l’aide d’une
masse virtuelle on crée des
courants en puissance de 2
que l’on converti ensuite en
tension. Le bit n est associé
à un gain 2n
+ superposition (naturelle par
la loi des noeuds)
Inconvénients :
Valeurs des résistance (de R/2 à 2n-1 R) (large dynamique)
pas réalisable en valeurs normalisées
sensibles aux tolérances (10% sur 2R = 0,05U/sur 16R = 0,006U
pas intégrables
pas d’appariement possible
Charge variable sur la référence de tension

74
09/06/2022 11:40

Les convertisseurs Numérique-Analogiques

DAC à réseau R/2R


Propriétés du réseau R/2R

Impédance «à droite » R
Tous les points voient 2R/3
R R R R 2R

Architecture à division de courant


R 2R 2R 2R R
Ure Courant constant dans Vref
f
+

-
2R

75
09/06/2022 11:40

Les convertisseurs Numérique Analogiques :

Exemple

Vref  Iref DAC08

Sortie en
courant
(différentielle)

76
Les convertisseurs Analogique-Numériques

CAN à rampe

77
09/06/2022 11:40

Les convertisseurs Analogique-Numériques

CAN à approximation successives

78
09/06/2022 11:40

Les convertisseurs Numérique-Analogiques :

Les performances dynamiques :


tsd
tsa

A’
Intervalle à x%
max= Slew-rate ou fraction de lsb
50%

A
tdd

NN’
Attention : les temps de conversion peuvent être exprimées
Pour 0  Nmax ou pour N  N+1 (à 1/2 lsb d’erreur max)

Précision : différence entre A effectif et K.N

79
09/06/2022 11:40

Les convertisseurs Numérique-Analogiques :

Les erreurs systématiques

Eg

Courbe idéale Erreur d’offset : Eo Erreur de gain : Eg


à erreur d ’offset nulle

Procédure : réglage d’offstet (N=0) et réglage de gain


(N=Nmax)

Bas de gamme : pas de réglage (Ezs, Efs)


Haut de gamme : auto-réglage

80
09/06/2022 11:40

Les convertisseurs Numérique-Analogiques :

Les erreurs systématiques Non-linéarité intégrale (INL)


E = A - q.N
Erreur totale Et (sans réglage)
Erreur résiduelle El (offs/gain=0)
Au meilleur ajustement EL(adj)

Non-linéarité différentielle (DNL)


Notée Ed : si N  N+1 alors A  A+q+Ed

Attention : les erreurs peuvent être exprimées


En % de la pleine échelle, en millivolt, en fraction de lsb
En 1 point donné, en maxi sur la courbe
Difficulté de comparaison des circuits

Si |Ed| est supérieure à 1 on peut


avoir des DAC non monotones
(pente locale négative)

81
Conversion analogique numérique

Traitement et conversion : L’exemple du PIC 16 / PIC 18

Temps nécessaire pour la capture de la valeur analogique d’entrée


Délai avant début effectif de la conversion

Fin de conversion

Début effectif
de la conversion
Lancement du « process » de conversion

82
Conversion analogique numérique

Sélection VIN et VREF : L’exemple du PIC18F88


Les broches VREF et VIN : l’exemple du PIC18F4550
1. Sélection d’un canal d’entrée

2. Choix pour VREF

83 3. Le résultat de conversion est stocké


dans deux registres ADRESH - ADRESL
Exemple d’utilisation :
le PIC 16F887

2021/2022
Les éléments de base
Les broches du 16F887

85
Configuration de l’horloge

86
Configuration de l’horloge

Le PIC dispose d’un générateur intégré


qui délivre l’horloge interne utilisée par
tous les modules:

• la fréquence de cette horloge est


appelé Fosc et sa période Tosc.

• Le processeur exécute les


instructions au rythme de Fosc/4
(appelé horloge instruction), la
période s’appelle le temps cycle.

Les microcontrôleurs, A. Oumnad.

87
Configuration de l’horloge : choix de l’horloge
Le choix entre oscillateur externe et
oscillateur interne se fait à l’aide du bit SCS
du registre OSCCON :

• Si SCS = 1 :
• Le PIC utilise l’horloge issue de
l’oscillateur interne
• Si SCS = 0 :
• Ce sont les bits Fosc<2:0> du
registre CONFIG1 qui décide si
l’horloge est interne ou externe
Fosc 2 Fosc 1 Fosc 0 oscillateur

0 0 0 externe
1 0 0 ou 1 interne

Registre OSCCON
Les microcontrôleurs, A. Oumnad.

88
Configuration de l’horloge : choix de l’horloge
Si l’on choisit de travailler avec l’oscillateur
interne, les 3 bits IRFC2, IRFC1 et IRFC0
du registre OSCCON permettent de fixer la
fréquence de l’oscillateur interne :
IRFC 2 IRFC 1 IRFC 0 Fréquence
(Hz)
0 0 0 31 khz

0 0 1 125 khz

0 1 0 250 khz

0 1 1 500 khz

1 0 0 1 Mhz

1 0 1 2 Mhz

1 1 0 4 Mhz

1 1 1 8 Mhz

Registre OSCCON
Les microcontrôleurs, A. Oumnad.

89
Les registres de configuration CONFIG1 et CONFIG 2

• IESO = ‘1’ : permet au PIC de commencer à exécuter le programme en utilisant l’horloge interne
en attendant que l’horloge externe se stabilise (basculement alos vers horlge externe)
• CPD =‘0’ : protège la EEPROM d’une éventuelle tentative de lecture de données
• WDTE =‘1’ : active le « Watch Dog »

• WRT1, WRT0 : permet de protéger la mémoire programme contre les tentatives d’écriture
• [0,0]  zone mémoire 0000h à 0FFFh protégée
• [1,1]  protection désactivée

• BOR4V =‘0’ : VBOR = 2.1V


• BOR4V=‘1’ : VBOR = 4V
(VBOR : Tension de VDD en dessous de laquelle le PIC se réinitialise automatiquement)
(Il faut BOREN1 = ‘1’ et BOREN0 = ‘1’ pour activer le mode de réinitialisation automatique)
90
Les entrées et sorties

Le PIC 16F887 dispose de 36 broches d’entrées et sorties regroupés sur 5 ports : PORTA, PORTB, PORTC,
PORTD et PORT E

• Chaque broche d’un port peut être configurée soit en entrée soit en sortie à l’aide des registres TRISA, TRISB,
TRISC, TRISD et TRIS E

• Exemple :
• TRISA = 0b0000 0011 => RA7 à RA2 en sortie (bit à ‘0’) et RA1-RA0 en entrée (bit = ‘1’)
• Moyen mnémotechnique : ‘0’ => Output / ‘1’ => Input

91
Les entrées et sorties

Le PIC 16F887 dispose de registres ANSEL et ANSELH permettant de définir des entrées-sorties en analogique ou
en numérique

• Exemple avec le port A :


• ANSEL = 0b0000 1100 => RA5, RA1 et RA0 en numérique (bit = ‘0’) et RA3 et RA2 en analogique (bit = ‘1’)
Port A Port E

Port B Remarques :
• Ports C, D toujours en numérique
• Les autres broches du Port A, B, E toujours en numérique
• Par défaut :
• Tous les ports sont configurés en entrée
• Les entrées A/N sont configurés en analogique
• Les broches configurées en sortie fonctionnent toujours
en numérique (quelque soit ANSEL et ANSELH)
92
Les timers

Les timers permettent de mesurer des durées en seconde. Par exemple, utiliser un timer pour créer une
temporisation de 0,5 seconde dans un programme, durée d’extinction / d’allumage d’une led, …

Prenons l’exemple du TMR0 :

• C’est un compteur 8 bits


• Il est incrémenté en permanence soit par :
• l’horloge instruction Fosc/4 (mode timer)
• ou l’horloge externe appliquée à la broche RA4 (mode compteur)

• Le choix de l’horloge se fait à l’aide du bit TOCS du registre OPTION_REG :


• TOCS = ‘0’  horloge interne
• TOCS = ‘1’  horloge externe appliquée sur RA4

• Le choix entre incrémentation sur front montant ou descendant :


• TOSE = ‘0’  incrémentation sur front montant
• TOSE = ‘1’  incrémentation sur front descendant
93
Les timers

Prenons l’exemple du TMR0 (suite) :

• Un diviseur de fréquence est positionné entre le signal horloge et le compteur


(Prédiviseur : Prescaler en anglais)
• PSA = ‘0’  on utilise le prédiviseur
• PSA = ‘1’  pas de prédiviseur
• PS<2:0>  permettent d’établir la valeur
du pré-diviseur

Les bits du prédiviseur


de fréquence

94
Les timers

Notion de débordement du timer :

A chaque fois que le compteur passe de 255 à 0,


on parle de débordement. Ceci a pour
conséquence de :
• Faire passer le bit TOIF de 0 à 1
• C’est en fait un « drapeau » permettant
de déclencher l’interruption TOI (si celle-
ci a été préalablement autorisée par les
bits GIE et TOIE)

 On verra la notion d’interruption plus loin

95
Le WatchDog Timer WDT

Le WatchDog permet de réinitialiser automatiquement un programme en cas


de défaillance :

• A la fin d’un cycle de comptage du timer, le WatchDog provoque un


RESET du microcontrôleur

• Pour éviter des réinitialisations répétées en cas de bon fonctionnemment,


on dispose de l’instruction CLRWDT qui bloque l’activité du WDT

• En cas de défaillance du programme, CLRWDT n’est pas exécuté,


provoquant la reprise d’activité du WDT et donc le RESET du
microcontrôleur (à la fin d’un cycle de comptage)

96
Les interruptions

Une interruption est un évènement qui provoque l’arrêt du


programme principal ou d’une fonction pour :

1. Aller exécuter une procédure d’interruption


2. A la fin du programme d’interruption, le programme reprend à
l’endroit où il s’était arrêté.

A chaque interruption sont associés au moins 2 bits :


• Bit(s) de validation (il peut y avoir plusieurs bits de validation) 
autorise ou non l’interruption
• Drapeau : qui passe à 1 lorsque l’élément déclencheur de
l’interruption survient

97
Ex : TMR0 passe de 255 à 0 !
Les interruptions le drapeau TOIF passe à 1 Exemple avec le Timer TMR0

Autorisation de l’interruption dans le


programme
Ex : TMR0 (bit GIE = 1 et TOIE = 1)

Ex : Programme d’interruption Fin de l’interruption : on


associé à TMR0 : on bloque toute autorise à nouveau les
autre interruption (ex : GIE = 0) interruptions (ex : GIE = 1)
/ Drapeau TOIF = 0)
98
Les interruptions Quelques exemples de source d’interruptions

99
3
Les microcontrôleurs :
PIC 18

2020/2021

[Link] / M. TRIA
Device Feature
PIC18F8xK22
80 pins
1- PIC 18 Présentation générale
Les modèles de PIC courants sont repérés par une référence de la forme :

- 2 chiffres : famille du PIC (10, 12, 16, 18, 24,30 ,32,33)

- 1 lettre : type de mémoire de programme :


• Le F indique en général qu'il s'agit d'une mémoire flash et donc effaçable électriquement.
• La lettre C indique en général que la mémoire ne peut être effacée que par exposition aux
ultra-violets

- Un groupe de lettres pour indiquer le boîtier et la gamme de température

- Sur les dernières versions (sous-famille « K »), on peut les utiliser avec un quartz fonctionnant jusqu'à
64 MHz (16 MIPS).
Exemple : 18F85K22 A B Flash EEPROM RAM

1 18/20 Pins 2 4k 256 512

2 28 Pins 3 8k 256 512


4 40/44 Pins
4 16k 256 768
6 64/68 Pins

8 80/84 Pins 5 32k 256 2048

6 64k 1024 3840


7 128k 1024 3840

Cette famille propose une multitude de dérivés intégrant l'USB, ETHERNET (MAC+PHY)
le CAN, des canaux de MLI dédiés au contrôle moteur. 101 2020 / 2021
Oscillateur externe

2- PIC18 : Configurations d'oscillateur


• Les PIC 18Fxx2 proposent 8 modes « oscillateur »
différents

• Les PIC18Fxx20 proposent 10 modes « oscillateur »


différents

Les 8 modes du 18Fxx2 sont communs aux deux familles.

Mode Commentaires
LP Oscillateur basé sur un « Low Power Crystal »
XT Quartz ou Résonateur céramique
HS Quartz ou Résonateur céramique « Hi speed »
4*PLL Quartz ou Résonateur céramique « High speed », avec activation de
la PLL interne Jusqu’64 MHz
RC Circuit RC externe. Un signal de fréquence Fosc/4 est disponible sur
RA6
RCIO Circuit RC externe. La ligne RA6 est une ligne E/S classique
EC Horloge externe. Un signal de fréquence Fosc/4 est disponible sur
RA6
ECIO Horloge externe. La ligne RA6 est une ligne E/S classique
INTIO1 Oscillateur interne. Un signal de fréquence Fosc/4 est disponible sur RA6. RA7
(1) est une ligne E/S standard. Oscillateur interne
INTIO2 Oscillateur interne. RA6 et RA7 sont des ligne E/S standard.
(1)

102
3- Gestion MEMOIRE
Mémoire données
Mémoire programme
Les micro-contrôleurs PIC utilisent une structure
dite Harvard :

• les mémoires Programmes (FLASH) et Données Unité centrale Noyau RAM


FLASH jusqu’à 64 K RISC PIC 18 16 banques de
(RAM) sont séparées (bus d’adresse différent)
pour la famille 256ko pour
Données
18F87K22 8 bits, 16
Données
18F87K22
 Dans ce cas les instructions et les données bits
8 bits
sont clairement séparées
.

Adresses Adresses
Le PIC18Fxxxx utilise un jeu d’instructions réduit ( 21 bits 12 bits
stocké dans la mémoire programme).

 Cette structure est appelée architecture RISC


(Reduced Instruction Set Computer)
Le microcontrôleur Le microcontrôleur
prépare le cycle de traite une donnée
l’instruction suivante

103
E n p a ra l l è l e
3-1 Organisation MEMOIRE

Mémoire programme interne


- Technologie flash
- 21 bits d'adresses =2 Mo d'espace adressable
- 16ko (5k22)
- 32ko (6k22)
- Et 64ko implémentés (de 0x0000 à 0x1FFFF) pour le 7K22.

2 Mo

104 2020 / 2021


La pile = emplacements mémoire d’adresses de retour lors des appels à des sous-programmes (fonctions ou
interruptions) :
La pile ne comportant que 32 niveaux, il ne faut pas imbriquer plus de 32 sous-programmes
Sinon débordement de la pile (stack overflow) ! => écriture à l’extérieur de la pile => écrasement d’informations

3-1 Organisation MEMOIRE Lors d’un reset du microcontrôleur


=> PC (Program Counter) = 0x000000
 Première instruction qui est exécutée par le
pic au démarrage
Exemple d’une pile
associée à différents
sous-programmes

@ retour
correspondant à
différents sous-
programmes

Interruptions - 2 niveaux de priorités :


• Haute priorité
• Basse priorité

105
3-1 Organisation MEMOIRE 16 banques de mémoires
Bank 0 à bank 15 (@ de taille 12 bits)
- Bank 0 0x000 – 0x0FF
- Bank 1 0x100 – 0x1FF …
Taille cases de données : 8 bits

Mémoire spécifique
- La zone 0xF16– 0xFFF est allouée aux SFR :
registre dédiés à
une fonction (port E/S, configuration
périphériques, ...)
Exemple :

106 2020 / 2021


2 PORTS D et E permettent de
jouer soit le rôle de bus
3-2 EXTERNAL MEMORY d’adresse soit le rôle de bus de
données
 Le microcontrôleur permet de pouvoir dialoguer avec une
mémoire externe suivant le modèle de Von Neu Mann

 Un bus dit “externe” constitué des ports du microcontrôleur


permet cette communication

Le PORT H permet de
completer le bus d’adresse

Le PORT J permet de
constituer le bus de
contrôle
107
3. Le composant 138 (décodeur 3 vers 8)
1. Positionnement de la valeur
permet la sélection de la mémoire (/CE = 0)
de l’@ par le microcontrôleur
voulue par le microC

Accès aux mémoires Flash et SRAM


4.
3.
4. La donnée 9256 est positionnée sur AD<15:0> 2.
par le microC  Bus D<15:0> de la mémoire

5.
1.
4.

5. /OE = 0 => La donnée est prête à être lue par la mémoire

2. ALE = 1 => recopie de AD<15:0 vers A<20:1>


via le composant 373 (D-latch)

108
Générateur d’INTERRUPTIONS Exemple :18F452

4- Les Interruptions
Jusqu’à 48 sources d’interruptions sur 2 modes !

IPEN : Interrupt Priority ENable

• IPEN = 1 => on peut prioriser des interruptions


• IPEN = 0 => fonction désactivée (compatibilité logicielle avec UC du PIC16)

 Si source d’interruption prioritaire =>


 autre source d’interruption prise en compte à la fin de la source
d’interruption prioritaire

GIEH : Global Interrupt Enable High (validation des interruptions prioritaires,


adresse 0x0008)
GIEL : Global Interrupt Enable Low (validation des interruptions non prioritaires,
adresse 0x0018)

Chaque source d’interruption possède


-un bit d’autorisation E (enable) : E=1 valide l’interruption
-un bit d’état F (flag) : F = 1 indique que l’interruption survient

109
1
TMROIF = 1 (levée de drapeau
TMROIE = 1 (interruption autorisée)
TMROIP = 1 (interruption prioritaire)

4- Les Interruptions
13 registres sont dédiés à la gestion des Interruptions : 1
1
RCON INTCON INTCON2 INTCON3
PIR1,PIR2,PIR3 GIEH = 1
(validation
PIE1,PIE2,PIE3 des
interruptions
IPR1, IPR2,IPR3 prioritaires)
Exemple pour IPR1

1 => Interruption déclenchée en fin de conversion A/D :


prioritaire
0 => Interruption déclenchée en fin de conversion A/D :
non prioritaire

1 => Interruption dûe au débordement du timer 1 :


prioritaire
0 => Interruption dûe au débordement du timer 1 : 110
non prioritaire
5 PIC 18: Architecture Interne

Les versions PIC 18F8xK22 offrent au delà de la gestion


de mémoire externe de nombreuses possibilités:
- Ports IO (A à J)

- Timers 1-4

- ADC 12 bits
- EUSART 1 et 2
- RTC
- CCP et ECCP(Capture / Compare / PWM). 4 à 10
- Comparateurs Analogiques.
- CTMU pour la gestion de touches Capacitives
- MSSP ( Bus Synchrones SPI, I2C…).

111 2020 / 2021


Une écriture sur le buffer  La data est retranscrit sur la
LATx se répercute sur le Data broche I/O pin que si TRISx = 0
Register (broche configurée en sortie)

6 PIC 18: LES ENTREES / SORTIES Remarque : LATx=PORTx

4 I/O PIC18 : Ports E/S


Pour les PIC18Fxx2 et/ou PIC18Fxx20
Généralités sur les ports E/S
Chaque port est associé à 3 registres :
-TRIS :Registre de direction de données : entrée ou sortie
-PORT :Pour la lecture des niveaux présents sur les broches.
-LAT :Buffer de sortie (Output) Latch).
Remarque :
Les registres LAT sont des nouveautés par rapport à la famille des PIC16F
Recommandations :

1. Pour écrire sur une broche de sortie  utiliser LATx


(Une écriture sur LATx évite de « stresser »
les broches du port en « lecture » => on écrira les valeurs de LATx
uniquement sur les broches du port configurées en sortie)

2. Pour lire sur une broche d’entrée  Utiliser PORTx


(car on lit physiquement la broche I/O)
La lecture du registre
PORTx se fait en fait en
lisant la broche d’entrée I/O

112
7 PIC 18: Convertisseur A.N

Pour les PIC18Fxx2x

Les PIC18Fxx2x sont dotés d'un convertisseur analogique


numérique 10 bits. (12 bits pour les 22)

– PIC18F2x20 : 10 entrées analogiques


- PIC18F4x20 : 13 entrées analogiques
- PIC 18F87K22 : 12 entrées analogiques

4 ou 5 registres sont utilisés pour configurer et gérer le CAN :

1. Les registres de résultat : ADRESH et ADRESL


2. Les registres de contrôle :
1. ADCON0 : pilotage du CAN (ex : sélection de la 1. Les références de tension – Soit :
voie, autorisation/déclenchement de la conversion, a) L'une des deux tensions d'alimentation du µC : Vdd et Vss
…) b) Les tensions sur les broche RA3/AN3/VREF+ et RA2/AN2/VREF-/CVREF
2. ADCON1 permet de configurer les lignes comme
étant des entrées numériques, analogiques ou de 2. Les registres ADRESH et ADRESL reçoivent les résultats des conversions
référence
3. ADCON2 sert à choisir l'horloge de conversion, un
3. Lorsqu'une conversion est achevée, le résultat est chargé dans ces deux registres,
temps d'acquisition programmé et la justification du
le bit GO/DONE est positionné à 0 et le drapeau d'interruption ADIF est positionné.
résultat.
113
Schéma bloc du Timer 0 en mode 8 bits
8 PIC 18 Les TIMERS
Timer0 Timer1 TIMER2, TIMER3-5-7, TIMER 4-6-8-10 -12
Pour les PIC18Fxx2 et/ou PIC18Fxx20
TIMER 0
Le timer 0 est implémenté identiquement sur les 2 familles 18Fxxxx2 et 18Fxxxx20. Il
présente les caractéristiques suivantes :
• Timer 8 ou 16 bits  bit T08BIT du registre T0CON (Mode 8 bits : T08BIT = 1, Mode
16 bits : T08BIT = 0).
• Registres de comptage TMR0L et TMR0H en accessibles en lecture/écriture
• Prédiviseur 8 bits programmable à l'aide des bits T0PS[2..0] et PSA du registre
T0CON. Schéma bloc du Timer 0 en mode 16 bits
• L'horloge peut être interne (timer) ou externe (compteur). Dans ce dernier cas, le
front de comptage est configurable. Ces configurations sont à faire dans le registre
T0CON :
T0CS = 0 : Timer (horloge interne)
T0CS = 1 : Compteur (horloge externe sur RA4/T0CKI)
T0SE = 1 : Incrémentation sur front descendant
T0SE = 0 : Incrémentation sur front montant

Une interruptions de type overflow (TMROIF) peut être déclenchée. Elle est déclenchée
par le passage de 0xFF à 0x00 en mode 8 bits ou par le passage de 0xFFFF à 0x0000 en
mode 16 bits.
114
TIMER 1 TIMER 2
Implémentations identiques sur les PIC18Fxx2 et 18Fxx20. Caractéristiques du timer TMR1 Là encore, ce timer est implémenté à l'identique sur les PIC 18Fxx2 et 18Fxx20. Ses
: principales caractéristiques sont les suivantes :
-Timer 16 bits. Le registre de comptage est accessible par les deux registres - Timer 8 bits : registre TMR2.
8 bits TMR1H et TMR1L. - Associé à un « Period register » 8 bits : PR2 (pour comparaison)
-Registres de comptage accessibles en lecture/écriture (R/W). - Registres TMR2 et PR2 accessibles en lecture / Ecriture.
- Prédiviseur programmable : divisions par 1, 2, 4 ou 8. - Prédiviseur programmable : divisions par 1, 4 ou 16.
-Horloge interne (mode timer) ou externe (mode compteur). - Postdiviseur programmable : facteur de division compris entre 1 et 16.
-Interruption de type Overflow (TMR1IF) au passage de 0xFFFF à 0x0000. - Interruption (TMR2IF) déclenchée lorsque TMR2 = PR2.
-Remise à 0 possible à partir d'un module CCP.

115
MODULES TIMER3/5/7 MODULES TIMER4/6/8/10/12

Les modules timer 3/5/7 timer/counter intègrent ces fonctionnalités : Les modules de 4/6/8/10/12 ont les caractéristiques suivantes :
• Opération sélectionnable par logiciel en tant que timer ou compteur 16 bits . • Registre TIMER 8bits (TMRx)
• Registres accessibles en R/W (TMRxH et TMRxL) • Registre COMPTEUR 8bits (PRx)
• Source d’horloge sélectionnable (interne ou externe) avec horloge externe • Ensemble des registres en accés R/W
ou oscillateur externe SOSC • Prescaler programmable par software (1:1, 1:4, 1:16)
• Interruption sur overflow
• Postscaler programmable par software (1:1 à 1:16)
• Réinitialisation du module sur l’entrée ECCP
• Interruption sur Overflow TMRx de PRx
Le Timer7 est implémenté à partir des versions 18Kx7K22.
Timer10 et Timer12 a partir des 18Kx7K22.

116
9 PIC 18: Modules CCP
Pour les PIC18Fxx2 et/ou PIC18Fxx20
Chaque µC est doté de 2 modules CCP (Capture / Compare / PWM) :

 Chaque module est composé d'un registre 16 bits qui peut faire office de registre de :

1. Comparaison : comparaison de la valeur du timer et du registre CCPR1


 Ce mode permet de générer des évènements périodiques (reset du timer,
déclenchement d’une conversion A/D, …)
2. Capture : lecture du valeur du Timer synchronisée sur une évènement sur la broche
CCP1 (ex : front montant)
 Ce mode permet de réaliser des mesures de temps
1. Ou PWM de type « maître / esclave » Génération d’un signal PWM à partir du timer 2 (en
 Ce mode permet de générer des signaux PWM utilisant les registres PR2 et CCPR1L)

Chaque module CCP (CCP1 et CCP2) est associé à un registre 16 bits respectivement CCPR1 et
CCPR2, composé de deux registres 8 bits :
• CCPR1H (resp. CCP2H)
• CCPR1L (resp. CCRP2L)

Les modules sont configurés à travers CCPxCON. Ces modules utilisent les timers du µC
fonctionnement de ce module.

9 PIC 18: Comparateurs analogiques

PIC18 : Pour les PIC18Fxx20

Les PIC 18Fxx20 intègrent un module « comparateurs analogiques »


implémentant deux comparateurs et de multiples possibilités de mise
en œuvre.(3 dans le cas des 18Kx7x2x)

Une entrée peut être :


-Une tension sur une des entrées analogiques RA0 à RA5
-La tension issue du générateur de tension de référence interne.

Les sorties des comparateurs sont disponibles en tant que niveau sur
une broche et comme une valeur du registre de contrôle.
10 PIC 18: Horloge Temps Réel

Pour les PIC18Fxx2 et/ou PIC18Fxx20


On appose un quartz 32,768 Khz sur SOSCI.

119

Vous aimerez peut-être aussi