Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Cours22 CAN

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 33

Ministère de l’Enseignement Supérieur et de la

Recherche Scientifique

Chapitre 5
Module de Conversion Analogique / Numérique
PIC18F4550
Principe de la Conversion Analogique / Numérique
La conversion Analogique / Numérique
Un convertisseur analogique - numérique transforme une grandeur physique
(tension, courant) en une valeur numérique.

Généralement, il possède:
Une entrée "début de conversion" qui permet de démarrer la conversion.
Une sortie "fin de conversion" qui indique que la conversion est terminée.
Une entrée analogique (courant ou tension).
Plusieurs sorties numériques, dont le nombre est fonction de la résolution.
Principe de la Conversion Analogique / Numérique
La conversion Analogique / Numérique
Exemple
Principe de la Conversion Analogique / Numérique
Le CAN au niveau du PIC18F4550

Conversion
Analogique /
Numérique

Sur 13 canaux
(AN0AN12)

CAN : Convertisseur Analogique Numérique


ADC : Analogue to Digital Converter
Principe de la Conversion Analogique / Numérique
Le CAN au niveau du PIC18F4550

 Convertir une tension analogique, comprise


entre deux tensions de référence Vref- et Vref+,
en une valeur numérique N sur n bits.

 Les tensions de références permettent de fixer la


dynamique du convertisseur. Elles peuvent être
choisies parmi Vdd, Vss, Vref+ ou Vref-.
Principe de la Conversion Analogique / Numérique
Le CAN au niveau du PIC18F4550

 Ce module est constitué d'un CAN à 10 bits dont


l'entrée analogique peut être connectée sur l'une des 13
entrées analogiques externes :
PORTA<RA0/AN0, RA1/AN1, RA2/AN2, RA3/AN3, RA5/AN4>
PORTB<RB0/AN12, RB1/AN10, RB2/AN8, RB3/AN9, RB4/AN11>
PORTE< RE0/AN5, RE1/AN6, RE2/AN7>
Principe de la Conversion Analogique / Numérique
Le CAN au niveau du PIC18F4550

 On dit qu'on a un CAN à 13 canaux. Les


entrées analogiques doivent être configurées en
entrée à l'aide des registres TRISA , TRISB
et/ou TRISE.
Principe de la Conversion Analogique / Numérique
Le CAN au niveau du PIC18F4550

 Le convertisseur possède 13 pins en entrée


permettant de sélectionner la voie sur laquelle
est effectuée la conversion (CHS0:CHS3) et
retourne le résultat sur 10 bits.
Principe de la Conversion Analogique / Numérique
Le Module de Conversion A/N

Le module A/D est configuré par les 5 registres (SFR) suivants :

A/D Result High Register (ADRESH)

A/D Result Low Register (ADRESL)

A/D Control Register 0 (ADCON0)

A/D Control Register 1 (ADCON1)

A/D Control Register 2 (ADCON2)


ADCON0 : A/D CONTROL REGISTER 0

 ADON : Ce bit permet de mettre le module AN en


service.

 GO/DONE : Une conversion démarre quand on place


ce bit à 1. A la fin de la conversion, il est remis
automatiquement à zéro. Ce bit peut aussi être positionné
automatiquement par le module CCP2.
ADCON0 : A/D CONTROL REGISTER 0

CHS3:CHS0 : choix de l'entrée analogique


0000 = channel 0, (RA0)
0001 = channel 1, (RA1)
0010 = channel 2, (RA2)
0011 = channel 3, (RA3)
0100 = channel 4, (RA5)
0101 = channel 5, (RE0)
0110 = channel 6, (RE1)
0111 = channel 7, (RE2)
1000 = channel 8, (RB2)
1001 = channel 9, (RB3)
1010 = channel 10, (RB1)
1011 = channel 11, (RB4)
1100 = channel 12, (RB0)
ADCON1 : A/D CONTROL REGISTER 1

PCFG3:PCFG0 : Configuration des E/S

 Les 5 broches du PORTA , les 5 broches du PORTB et


les 3 du PORTE peuvent être configurées soit en E/S
digitales, soit en entrées analogiques.
ADCON1 : A/D CONTROL REGISTER 1

RB0 RB4 RB1 RB3 RB2 RE2 RE1 RE0 RA5 RA3 RA2 RA1 RA0

PCGF AN12 AN11 AN10 AN9 AN8 AN7 AN6 AN5 AN4 AN3 AN2 AN1 AN0
(3…0)
0000 A A A A A A A A A A A A A
0001 A A A A A A A A A A A A A
0010 A A A A A A A A A A A A A
0011 D A A A A A A A A A A A A
0100 D D A A A A A A A A A A A
0101 D D D A A A A A A A A A A
0110 D D D D A A A A A A A A A
0111 D D D D D A A A A A A A A
1000 D D D D D D A A A A A A A
1001 D D D D D D D A A A A A A
1010 D D D D D D D D A A A A A
1011 D D D D D D D D D A A A A
1100 D D D D D D D D D D A A A
1101 D D D D D D D D D D D A A
1110 D D D D D D D D D D D D A
1111 D D D D D D D D D D D D D
ADCON1 : A/D CONTROL REGISTER 1

VCFG1:VCFG0 : configuration des tensions de références.


VCFG1(VREF- source) et VCFG0(VREF+ source)

 RA2(AN2) et RA3(AN3) peuvent aussi être configurées


en entrée de référence.
ADCON1 : A/D CONTROL REGISTER 1

VCFG1 VCFG0 VREF- VREF+


0 0 Vss VDD
0 1 Vss AN3(RB3)
1 0 AN2(RB2) VDD
1 1 AN2(RB2) AN3(RB3)
ADCON2 : A/D CONTROL REGISTER 2

Bits 0 à 2 ou Bits ADCS0 à ADCS2 pour A/D Clock Select


 Ces trois bits permettent de définir la fréquence de l’horloge de
conversion conformément aux indications du tableau :
ADCON2 : A/D CONTROL REGISTER 2
Le temps de conversion

 TAD est le temps de conversion d'un bit, il dépend de


l'horloge système et du prédiviseur (div) choisi.

 Les choix doivent être ajustés pour que TAD dépasse 0,8 μs.
 Le convertisseur nécessite 11 TAD pour la conversion de 10
bits.
ADCON2 : A/D CONTROL REGISTER 2
Le temps d’acquisition

Bits 3 à 5 ou Bits ACQT0 à ACQT2 pour ACQuisition Time


select:
 Ces trois bits permettent de définir le temps d’acquisition
conformément aux indications du tableau:

TAD :
La période de l’horloge de
conversion d’1 bit
ADCON2 : A/D CONTROL REGISTER 2
Le temps d’acquisition

Pendant la conversion, la tension Ve


à l'entrée du convertisseur A/N doit
être maintenue constante.

Le PIC dispose d’un échantillonneur


bloqueur intégré constitué d'un
interrupteur S et d'une capacité de
maintien de C=25pF.
ADCON2 : A/D CONTROL REGISTER 2
Le temps d’acquisition

S se ferme, la tension Ve rejoint la


tension analogique d'entrée Va au
bout d'un temps d'acquisition qui
dépend du temps du chargement de
la capacité C.
ADCON2 : A/D CONTROL REGISTER 2
Le temps d’acquisition

Pendant le temps de conversion, S


est maintenu ouvert, la capacité
bloque Ve à une valeur constante.

A la fin de la conversion, S se
ferme, nouvelle acquisition.
ADCON2 : A/D CONTROL REGISTER 2
Le temps d’acquisition

Le temps minimum d’acquisition est : TACQ = 2.45 μs


L'acquisition commence :
 Après la fin d’une conversion,
 au moment du choix d'un canal si
convertisseur validé (ADON=1),
 au moment de validation du
convertisseur si canal choisi.
ADCON2 : A/D CONTROL REGISTER 2
Le temps d’acquisition

• Le registre ADCON2 permet à l'utilisateur de configurer un


« temps d'acquisition ». Ce temps intervient entre le moment
où le bit GO/DONE (du registre ADCON0) est mis à 1 et le
moment où la conversion démarre réellement.
• Les bits ACQT2 à ACQT0 (ADCON2<5:3>) permettent de
configurer un temps d'acquisition compris entre 2 et 20 Tad .
• Il est possible de ne pas utiliser ce temps d'acquisition
(ACQT2:ACQT0= 000). Dans ce cas, la conversion démarre
immédiatement après que le bit GO/DONE ait été positionné
à 1.
• Dans tous les cas, lorsque la conversion est terminée, le bit
GO/DONE est remis à 0 et le bit ADIF (A/D Converter
Interrupt Flag bit) est positionné à 1.
ADCON2 : A/D CONTROL REGISTER 2
Exemple
ADCON2 : A/D CONTROL REGISTER 2
Le format du résultat de conversion obtenu
Le convertisseur donne un résultat sur 10 bits, et donc que ce
résultat devra obligatoirement être sauvegardé dans 2
registres.
Ces registres sont tout simplement les registres ADRESL et
ADRESH.
Comme ces 2 registres contiennent 16 bits, et que nous
utilisons que 10 bits, Microchip a laissé le choix sur la façon
dont est sauvegardé le résultat.

Bit 7 ou Bit ADFM pour AD result ForMat select:


ADCON2 : A/D CONTROL REGISTER 2
Le format du résultat de conversion obtenu

Bit 7 ou Bit ADFM pour AD result ForMat select:


• S’il est à 1, ce bit positionne le résultat contenu dans ADRESH et
ADRESL avec une justification a droite.
• S’il est à 0, ce bit positionne le résultat avec une justification a gauche.
Démarche de programmation

• Après que le module convertisseur ait été configuré, la voie


sélectionnée doit faire l'objet d'une acquisition avant que
la conversion démarre.

• Les lignes d'entrées analogiques doivent voir le bit TRIS


associé positionné à 1 (entrée).

• Le temps d'acquisition est programmable : Ce temps


correspond à un délai intervenant entre le positionnement du
bit GO/DONE à 1 (lancement de la conversion) et le début
de la conversion à proprement parler (au niveau du CAN).
Démarche de programmation
La procédure suivante est à suivre pour mettre en œuvre
correctement le convertisseur :
1. Configurer le module convertisseur :
– Configurer les lignes, les références.. (ADCON1)
– Choisir la voie à convertir (ADCON0)
– Choisir le temps d'acquisition (ADCON2)
– Choisir l'horloge de conversion (ADCON2)
– Activer le module CAN (ADON à 1 dans ADCON0)
2. Attendre une durée identique au temps d'acquisition (si nécessaire)
3. Lancer la conversion : GO/DONE = 1
4. Attendre la fin de la conversion :
1. Soit en surveillant le passage de GO/DONE à '0'
2. Interruption ADIF
5. Lire le résultat dans ADRESH:ADRESL, ou ADRES repositionner ADIF à 0 si
nécessaire
6. Retour à l'étape 1 ou 2 pour une nouvelle acquisition.
Un délai minimal correspondant à 2 Tad est nécessaire avant de relancer une
acquisition.
Démarche de programmation
Exercice 1
• Ecrire un programme qui permet de convertir
la tension qui varie entre 0V et 5V via le
PORTA0. si la tension est supérieur à 3V une
diode LED connectée à PORTB1( avec une
précision sur 8bits)

• Simuler le fonctionnement avec ISIS, la sortie


du PIC sera visualisée avec des diodes LEDs.
29
RV1(2)

U1
2 15
RA0/AN0 RC0/T1OSO/T1CKI
3 16
RA1/AN1 RC1/T1OSI/CCP2/UOE
4 17
RA2/AN2/VREF-/CVREF RC2/CCP1/P1A
5 23
RA3/AN3/VREF+ RC4/D-/VM
6 24
RA4/T0CKI/C1OUT/RCV RC5/D+/VP
7 25
RA5/AN4/SS/LVDIN/C2OUT RC6/TX/CK
14 26
RV1 RA6/OSC2/CLKO RC7/RX/DT/SDO
13
OSC1/CLKI
33 19
RB0/AN12/INT0/FLT0/SDI/SDA RD0/SPP0
34 20
RB1/AN10/INT1/SCK/SCL RD1/SPP1
35 21
RB2/AN8/INT2/VMO RD2/SPP2
36 22
RB3/AN9/CCP2/VPO RD3/SPP3
37 27
RB4/AN11/KBI0/CSSPP RD4/SPP4 VDD
1k 38 28
RV2 RB5/KBI1/PGM RD5/SPP5/P1B
MODFILE=POT_LIN 39 29
RB6/KBI2/PGC RD6/SPP6/P1C
40 30
RB7/KBI3/PGD RD7/SPP7/P1D
8
50%

RE0/AN5/CK1SPP
9
RE1/AN6/CK2SPP
10 R1
RE2/AN7/OESPP
18 1
VUSB RE3/MCLR/VPP
1k 10k
PIC18F4550

D1

LED-RED
30
Etape 1 : Configuration
a. Les lignes d'entrées analogiques doivent voir le bit TRIS associé positionné à 1
(entrée).
• BSF TRISA,0 ; mettre RA0 en entrée
• Clrf TRISB
b. On configure les entrées comme entrée de type analogique avec le registre spécial
ADCON1 Exemple : PCFG3:PCFG0 = 1110
• Choix des tensions de référence(ADCON1)
– VCFG1:VCFG0= 00 (Vref-=Vss et Vref+=Vdd)
• Donc : movlw b’0000 1110’ ;
• movwf ADCON1
c. CHS3:CHS0 : choix de l'entrée analogique
0000 = channel 0, (RA0)
• Donc : clrf ADCON0
e. Choisir l'horloge de conversion (ADCON2) : Tad=2*Tosc (or Fosc/2)
ADCS2:ADCS0=000. Puisque nous utilisons l'horloge interne par défaut de 1 Mhz, Tosc =
1/1,000,000 = 1us. Cela signifie que si Tadmin=0,8us, 2Tosc = 2us> 0,8 us
d. Choisir le temps d'acquisition (ADCON2) :
• ACQT0 à ACQT2= 001 (Tacq=2*Tad) 31
Etape 1 : Configuration
• Mettre la justification à gauche: ADFM=0
• Donc : movlw b’00001000’
• movwf ADCON2
f. Activer le module CAN (ADON à 1 dans ADCON0)
• bsf ADCON0,0

Etape 2 : Attendre une durée identique au temps d'acquisition:


pas nécessaire réalisée par configuration
Etape 3 : Lancer la conversion : GO/DONE = 1:
BSF ADCON0,ADON
Etape 4 : Attendre la fin de la conversion :
Etape 5 : Lire le résultat dans ADRESH:
MainLoop:
BSF ADCON0,GO_DONE ;Start A/D Conversion
BTFSC ADCON0,GO_DONE ;Loop here until A/D conversion completes
GOTO MainLoop
MOVF ADRESH,W ;R‚sultats H dans W 32
Valeur numérique obtenue
• Quelle est la relation entre la tension analogique convertie et
le nombre N recueilli dans le registre ADRES ?
• Si on note : Q = pas de quantification = (Vref+ - Vref-)/1024
• Va = tension analogique à convertir
• N = valeur numérique obtenue

• Avec Vref- = masse, on obtient N = int (Va / Q)


• exemple :
• Vref+ = Vdd = 5V, Vref- = 0, Vin = 3 V
• Q = 5V/1024 = 0,0048828125 V
• N = 3V / 0,0048828125 = 614 = 1001100110b

33

Vous aimerez peut-être aussi