0% ont trouvé ce document utile (0 vote)
147 vues24 pages

ADC PIC18F4520 : Fonctionnement et Registres

Le document présente le fonctionnement du convertisseur analogique-numérique (ADC) du microcontrôleur PIC18F4520, qui utilise une résolution de 10 bits et dispose de treize canaux d'entrées analogiques. Il décrit les phases de conversion, le temps d'acquisition, et les registres associés à la configuration et au contrôle de l'ADC. Des exemples de configuration des registres ADCON0, ADCON1 et ADCON2 sont également fournis pour illustrer leur utilisation.

Transféré par

anesaguir
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)
147 vues24 pages

ADC PIC18F4520 : Fonctionnement et Registres

Le document présente le fonctionnement du convertisseur analogique-numérique (ADC) du microcontrôleur PIC18F4520, qui utilise une résolution de 10 bits et dispose de treize canaux d'entrées analogiques. Il décrit les phases de conversion, le temps d'acquisition, et les registres associés à la configuration et au contrôle de l'ADC. Des exemples de configuration des registres ADCON0, ADCON1 et ADCON2 sont également fournis pour illustrer leur utilisation.

Transféré par

anesaguir
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

1

Microcontrôleurs
Chapitre 6:
PIC 18 : Convertisseur Analogique Numérique

Application : le PIC 18F4520 Marouane Marzouk

ISET Sousse
2021-2022
2

1. PRESENTATION Marouane Marzouk

▪ Le convertisseur analogique numérique (ADC) des microcontrôleurs PIC fonctionne selon


le principe des approximations successives avec une résolution de 10 bits.
▪ Le microcontrôleur PIC18F4520 possède un convertisseur analogique numérique avec
une résolution de 10 bits.
▪ Le microcontrôleur PIC18F4520 dispose de treize canaux d’entrées analogiques repartis
sur les ports A, B et E.
▪ Les tensions de référence 𝑉ref+ et 𝑉ref- du module ADC peuvent être choisies de manière
logicielle par combinaison des lignes VDD, VSS, RA2 et RA3.
▪ Le résultat de conversion de 10 bits est chargé dans deux registres de 8 bits ADRESL et
ADRESH.
3

1. PRESENTATION Marouane Marzouk

Schéma bloc de l’ADC


4

1. PRESENTATION Marouane Marzouk

▪ Le module ADC dispose de cinq registres :


➢ ADRESL (A/D RESult Low register)
➢ ADRESH (A/D RESult High register)
➢ ADCON0 (A/D CONtrol register 0)
➢ ADCON1 (A/D CONtrol register 1)
➢ ADCON2 (A/D CONtrol register 2)
5

2. CONVERSION ANALOGIQUE NUMERIQUE Marouane Marzouk

❖ La conversion d’un signal analogique en équivalent numérique passe par deux phases :
▪ L’échantillonnage blocage (sample and hold). Cette opération consiste à connecter
l’entrée à convertir à un condensateur, qui va se charger à travers une résistance
jusqu'à la tension appliquée.
➢ Le temps nécessaire au charge complet du condensateur est appelé temps
d’acquisition 𝑻𝑨𝑪𝑸.

▪ Une fois le condensateur est chargé, l’ordre de début de conversion permet de


déconnecter la tension appliquée, pour procéder à la phase de conversion.
6

2. CONVERSION ANALOGIQUE NUMERIQUE Marouane Marzouk

RIC : Résistance d'interconnexion SS : Commutateur d'échantillonnage


RSS : Résistance du commutateur d'échantillonnage CHOLD : Capacité d’échantillonnage blocage
7

2. CONVERSION ANALOGIQUE NUMERIQUE Marouane Marzouk

❑ Temps d’acquisition
▪ Le temps d’acquisition dépend de trois paramètres :
✓ Le temps de charge du condensateur de l’échantillonneur bloqueur à travers les
résistances internes et la résistance de la source.
✓ Le temps de stabilisation de l’amplificateur.
✓ Un temps qui dépend de la variation de la température.

𝑇𝐴𝐶𝑄 = 𝑇𝐴𝑀𝑃 + 𝑇𝐶 + 𝑇𝐶𝑂𝐹𝐹

𝑇𝐴𝑀𝑃 : temps de stabilisation de l’amplificateur


𝑇𝐶 : temps de charge du condensateur
𝑇𝐶𝑂𝐹𝐹 : temps dépendant du coefficient de température
8

2. CONVERSION ANALOGIQUE NUMERIQUE Marouane Marzouk

❑ Temps d’acquisition
▪ D’après le document du constructeur :
✓ 𝑇𝐴𝑀𝑃 = 0.2μs
✓ 𝑇𝐶𝑂𝐹𝐹 = 𝑇𝑒𝑚𝑝 − 25°C . 0.02μs/°C
Exemple : Pour Temp = 85°C, 𝑇𝐶𝑂𝐹𝐹 = 1,2μ𝑠

▪ La résistance interne totale (composée de 𝑅𝐼𝐶 𝑒𝑡 𝑅𝑆𝑆 )


✓ 𝑅𝐼𝐶 est limitée à 1𝑘Ω
✓ 𝑅𝑆𝑆 varie en fonction de la tension d’alimentation selon l’équation suivante :
𝑅𝑆𝑆 𝐾Ω = −𝑉𝐷𝐷 + 7
▪ Microchip recommande que la résistance de la source (𝑅𝑆 ) devra être inférieure ou
égale à 2,5 𝑘Ω.
9

2. CONVERSION ANALOGIQUE NUMERIQUE Marouane Marzouk

❑ Temps d’acquisition

▪ Le temps de charge du condensateur est :


𝑇𝐶 = 𝑅𝐼𝐶 + 𝑅𝑆𝑆 + 𝑅𝑠 . 𝐶𝐻𝑂𝐿𝐷 . 𝐿𝑛(2047)

▪ Dans les conditions normales et pour une tension d’alimentation de 5V, le temps
d’acquisition 𝑻𝑨𝑪𝑸 = 𝟐. 𝟒μs
10

2. CONVERSION ANALOGIQUE NUMERIQUE Marouane Marzouk

❑ Temps de conversion
▪ C’est le temps nécessaire pour convertir le signal analogique en équivalent numérique.
▪ Le temps de conversion dépend essentiellement de la période d’horloge du
convertisseur 𝑻𝑨𝑫 (Typiquement 0,7 μs).
❖ Le microcontrôleur PIC18 nécessite :
✓ un temps 𝑻𝑨𝑫 avant le démarrage effectif de la conversion.
✓ 10 ∙ 𝑻𝑨𝑫 pour la conversion (une période par bit).
✓ et un temps supplémentaire 𝑻𝑨𝑫 à la fin de la conversion.
➢ Soit au total 12 ∙ 𝑻𝑨𝑫 . 𝑻𝒄𝒐𝒏𝒗 = 𝟏𝟐 ∗ 𝑻𝑨𝑫
Donc dans les meilleures conditions : 𝑻𝒄𝒐𝒏𝒗 = 12 ∗ 0.7μs = 8.4μs
➢ Il faut bien noter qu’une attente à 𝟐𝑻𝑨𝑫 est nécessaire avant d’effectuer une nouvelle
conversion.
11

2. CONVERSION ANALOGIQUE NUMERIQUE Marouane Marzouk

❑ Cycle de conversion
12

3. Registre ADCON0 Marouane Marzouk

L’entée à convertir est sélectionnée par les bits CHS<3:0> du registre ADCON0

CHS<3:0> : Analog Channel Select bits

0000 = Channel 0 (AN0) 1000 = Channel 8 (AN8)


0001 = Channel 1 (AN1) 1001 = Channel 9 (AN9)
0010 = Channel 2 (AN2) 1010 = Channel 10 (AN10)
0011 = Channel 3 (AN3) 1011 = Channel 11 (AN11)
0100 = Channel 4 (AN4) 1100 = Channel 12 (AN12)
0101 = Channel 5 (AN5) 1101 = Unimplemented)
0110 = Channel 6 (AN6) 1110 = Unimplemented)
0111 = Channel 7 (AN7) 1111 = Unimplemented)
13

3. Registre ADCON0 Marouane Marzouk

▪ Après la mise sous tension, l’ADC est désactivé, ceci permet de réduire la consommation.
Le bit d’activation ADON doit être mis à 1 lorsque le module ADC est utilisé.
▪ La mise à 1 du bit 𝑮𝑶/𝑫𝑶𝑵𝑬 de manière logicielle, démarre la conversion.
▪ La fin de la conversion est signalée par le retour à zéro du bit 𝑮𝑶/𝑫𝑶𝑵𝑬 et la mise à 1 du
bit indicateur d’interruption ADIF (PIR1<6>).
➢ Une interruption pourra être générée si le bit ADIE (PIE1<6>) est défini.
▪ Le résultat de conversion est placé dans les registres ADRESH et ADRESL.
14

3. Registre ADCON0 Marouane Marzouk

Exemple : Le code suivant illustre un exemple de lancement d’une opération de


conversion analogique numérique :

ADCON0bits.GO = 1; // début de conversion

while(ADCON0bits.GO == 1) continue; // Attente de fin de conversion

AdcVal = ADRESH<<8 + ADRESL; // lecture de la valeur convertie


15

4. Registre ADCON1 Marouane Marzouk

• Par défaut l’ADC est configuré avec des tensions de référence internes (𝑉ref+ = 𝑉DD et
𝑉ref- = VSS) ne nécessite aucune liaison externe.
• les broches RA2 et RA3 peuvent être configurées en références externes. Les bits VCFG1
et VCFG0 permettent de sélectionner les références internes ou externes ou une
combinaison de deux.
VCFG1 : Voltage Reference Configuration bit (VREF- source)
1 = VREF- (AN2)
0 = VSS
VCFG0 : Voltage Reference Configuration bit (VREF+ source)
1 = VREF+ (AN3)
0 = VDD
16

4. Registre ADCON1 Marouane Marzouk

• Les quatre bits PCFG<3:0> du registre


ADCON1, permettent la configuration
des broches en analogique ou en
numérique.

PCFG<3:0> : A/D Port Configuration Control bits

Tableau 1
17

4. Registre ADCON1 Marouane Marzouk

• Pour les microcontrôleurs alimentés sous 5V, la différence entre les tensions de référence
doit être supérieure ou égale à 3V.
∆𝑉𝑟𝑒𝑓 = 𝑉𝑟𝑒𝑓+ − 𝑉𝑟𝑒𝑓− ≥ 3𝑉
Exemple
Supposons qu’une application a besoin de 4 entrées analogiques et une entrée de référence
positive externe. Quelle est la valeur à charger dans le registre ADCON1 ?
Solution
Un choix optimal nécessite
✓ l’utilisation des entrées AN0, AN1, AN2 et AN4 (combinaison : 1010);
✓ RA3 comme entrée de référence positive 𝑉𝐶𝐹𝐺1 = 0 et 𝑉𝐶𝐹𝐺0 = 1.
ADCON1 = 0b00011010.
18

5. Registre ADCON2 Marouane Marzouk

La fonction principale de ce registre est de permettre à l'utilisateur de programmer la source d'horloge et le


temps d'acquisition de l’ADC.
ADFM : A/D Result Format Select bit
1 = Right justified
0 = Left justified
ADCS<2:0> : A/D Conversion Clock Select bits
ACQT<2:0> : A/D Acquisition Time Select bits 111 = FRC (clock derived from A/D RC oscillator)
111 = 20 TAD 110 = FOSC/64
110 = 16 TAD 101 = FOSC/16
101 = 12 TAD 100 = FOSC/4
100 = 8 TAD 011 = FRC (clock derived from A/D RC oscillator)
011 = 6 TAD 010 = FOSC/32
010 = 4 TAD 001 = FOSC/8
001 = 2 TAD 000 = FOSC/2
000 = 0 TAD
19

5. Registre ADCON2 Marouane Marzouk

❑ Sélection de l’horloge de l’ADC


• La fréquence d’horloge de l’ADC 𝐹𝐴𝐷 est dérivée de la fréquence principale du
microcontrôleur 𝐹𝑂𝑆𝐶 .
• Pour des raisons électroniques, la période d’horloge de l’ADC, 𝑻𝑨𝑫 , est limitée à 0,7 μs,
soit une fréquence maximale 𝐹𝐴𝐷 = 1.428𝑀𝐻𝑧.
• Le diviseur intégré est programmé pour diviser la fréquence 𝐹𝑂𝑆𝐶 par 2, 4, 8, 16, 32 et
64.
• Lorsque la source d’horloge est un circuit RC, 𝑻𝑨𝑫 est typiquement égale à 1,2μs.
20

5. Registre ADCON2 Marouane Marzouk

❑ Sélection de l’horloge de l’ADC


Tableau 2 : Choix de 𝑻𝑨𝑫 en fonction de 𝑭𝑶𝑺𝑪
21

5. Registre ADCON2 Marouane Marzouk

❑ Sélection de l’horloge de l’ADC


Exemple
Déterminer la valeur à charger dans le champ de bits ADCS<2 :0> pour une fréquence
𝐹𝑂𝑆𝐶 = 8𝑀𝐻𝑧 .
Solution :
Cherchons la valeur de division 𝑵 la plus appropriée :
𝑁
𝑇𝐴𝐷 = 𝑁 ∗ 𝑇𝑂𝑆𝐶 𝐹𝑂𝑆𝐶 = 𝑁 ∗ 𝐹𝐴𝐷 = N = 𝐹𝑂𝑆𝐶 ∗ 𝑇𝐴𝐷
𝑇𝐴𝐷

Cherchons la valeur minimale 𝑁𝑚𝑖𝑛 pour la valeur limite 𝑇𝐴𝐷𝑚𝑖𝑛 = 0.7μs


𝑁𝑚𝑖𝑛 = 𝐹𝑂𝑆𝐶 ∗ 𝑇𝐴𝐷𝑚𝑖𝑛 = 8. 106 ∗ 0.7. 10−6 = 5.6
22

5. Registre ADCON2 Marouane Marzouk

❑ Sélection de l’horloge de l’ADC


Solution (suite) :
Toute valeur de 𝑁 supérieure à 5,6 est acceptable, cependant, la valeur optimale est celle la
plus proche de 𝑁𝑚𝑖𝑛 , d’après le Tableau2, 𝑁 = 8.
𝑁 8
La valeur de 𝑇𝐴𝐷 = 𝑁 ∗ 𝑇𝑂𝑆𝐶 = = = 1μ𝑠
𝐹𝑂𝑆𝐶 8.106

o Il était possible de déterminer la valeur de 𝑁 directement à partir du Tableau 2. La


fréquence 𝑭𝑶𝑺𝑪 = 𝟖𝑴𝑯𝒛 correspond à la ligne dont la fréquence maximale est
11,43MHz,
d’où 𝑻𝑨𝑫 = 𝟖 ∗ 𝑻𝑶𝑺𝑪
𝑇𝐴𝐷 = 8 ∗ 𝑇𝑂𝑆𝐶 alors 𝐴𝐷𝐶𝑆 <2 : 0> = 001
23

5. Registre ADCON2 Marouane Marzouk

❑ Programmation du temps d’acquisition


• Pour le PIC18F4520, un temps d’acquisition automatique peut être programmé à travers
les bits ACQT<2:0> (ADCON2<5:3>).
Exemple
Déterminer la valeur à charger dans le champ de bits ACQT<2 :0> pour un temps
d’acquisition de 2,4μs ; on admet que 𝑇𝐴𝐷 = 1μ𝑠
Solution :
Le temps d’acquisition est fonction de la période d’horloge de l’ADC :
𝑇𝐴𝐶𝑄 2.4μ𝑠
𝑇𝐴𝐶𝑄 = 𝐾 ∗ 𝑇𝐴𝐷 d’où K = = = 2.4
𝑇𝐴𝐷 1μ𝑠

d’après le datasheet du PIC18F4520 (diapo18), la valeur la plus proche 𝑇𝐴𝐶𝑄 = 4 ∗ 𝑇𝐴𝐷


d’où ACQT<2 :0> = 010.
24

5. Registre ADCON2 Marouane Marzouk

❑ Alignement des données

• Le module ADC a besoin de deux registres pour un résultat de conversion de 10 bits.


• La capacité totale des registres ADRESH : ADRESL étant de 16 bits,
• il existe deux manières d'aligner les dix bits selon la valeur du bit ADFM .

Vous aimerez peut-être aussi