0% ont trouvé ce document utile (0 vote)
55 vues4 pages

Conversion Analogique Numérique en Systèmes Embarqués

Le document traite de la conversion analogique numérique dans le cadre des systèmes embarqués, en détaillant les étapes nécessaires et les calculs associés. Il aborde des exercices pratiques concernant le temps d'échantillonnage, le pas de quantification, et la programmation pour afficher les résultats de conversion. Des exemples de calculs et de configurations de registres pour un microcontrôleur PIC16F877 sont également fournis.

Transféré par

saitaymen19
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)
55 vues4 pages

Conversion Analogique Numérique en Systèmes Embarqués

Le document traite de la conversion analogique numérique dans le cadre des systèmes embarqués, en détaillant les étapes nécessaires et les calculs associés. Il aborde des exercices pratiques concernant le temps d'échantillonnage, le pas de quantification, et la programmation pour afficher les résultats de conversion. Des exemples de calculs et de configurations de registres pour un microcontrôleur PIC16F877 sont également fournis.

Transféré par

saitaymen19
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

Matière MAI82 Systèmes embarqués et Systèmes temps réel

TD2
La conversion analogique numérique
Exercice 1
Selon le schéma ci-dessous la conversion analogique numérique comprend deux étapes.
Lesquelles? En déduire le temps d’échantillonnage.

Le temps TAD est le temps nécessaire pour la conversion d’un bit qui doit être ≥ 1.6 µs selon le
fabricant et il correspond à la période de l’horloge du CAN (TAD = div x 1/fosc).
• Quel sera donc le temps de conversion totale.
• En déduire la fréquence maximale d'échantillonnage si on admet un temps d’acquisition
Tacq compris entre 10 µs et 20 µs et un temps d’attente de 2µs avant de lancer une nouvelle
conversion.

Exercice 2
Etablir les différentes étapes à suivre pour effectuer une conversion analogique numérique
Etudier le cas du polling.

Exercice 3.
Sachant que Vref=5V et Vin=2V.
1. Trouver le pas de quantification.
2. Calculer le résultat de la conversion.
3. En déduire le contenu des registres ADRESL et ADRESH sachant qu'on utilise la
justification à gauche.

Exercice 4
On désire afficher en binaire à l'aide de diodes LED reliées aux ports B et C le résultat de la
conversion d'une grandeur analogique à l'entrée RA5 d'un PIC16F877 piloté par un quartz de
15Mhz. Sachant que l'on utilise l'horloge interne pour la conversion, le résultat de la conversion
est justifié à gauche, la tension de référence est de 2.5V à l'entrée AN3 (RA3).
1. Quelle est le pas de conversion?
2. Quel est le résultat de conversion en Hexa pour une tension d'entrée de 1V.
3. Calculer le facteur de division.
4. Trouver en Hexadécimal le contenu des registres TRISB, TRISA, TRISC, ADCON0,
ADCON1.
5. Ecrire un programme en MikroC qui permet d'afficher le résultat de conversion.

Dr [Link] ep MEBARKIA 1
Solution du TD2
Exercice1
La conversion analogique numérique comprend deux étapes:
- Echantillonnage blocage.
- Conversion proprement dite.
• Le temps d'échantillonnage (Te) est la somme des temps d'acquisition (Tacq) et de
conversion(Tcon).
Te=Tacq+Tconv. Tconv=12TAD.
• Le temps de conversion totale (TconvTot) est 10TAD (temps nécessaire pour la conversion
des 10bits) + 2TAD donc:
TconvTot=(10+2)*1.6µs=19.2µs.
• Le La fréquence maximale d'échantillonnage:
Femax=1/Temin
avec Temin=Tconvmin+2TAD
(le fabricant recommande un temps d'attente de 2µs avant de lancer une nouvelle conversion, ce
temps d'attente peut être égal à 2TAD).
Tconvmin= Tacqmin+Tconv.

AN: Tacqmin=10µs Tconv=12TAD


Fmax≤32Khz pour un temps d'attente de 2µs
Fmax≤30.8Khz pour un temps d'attente de 2TAD=3.2 µs

Exercice2
Voir le cours section VI.3. le point 4.
4. Attendre à ce que la conversion soit terminée :
- Signalée par la mise à ‘0’ du bit GO/DONE, ou par une interruption
En mode polling, attendre que le bit GO/DONE dans ADCON0 devienne égal à zéro
(ceci est réalisé par Hard lorsque l'opération de conversion est terminée).
En mode interruption : attendre le déclenchement de l'interruption lorsque le bit ADIF
du registre PIR1 devienne égal à 1.(Chap Interruptions). Dans ce cas, une fois le résultat
est stocké dans les registres ADRESH : ADRESL, il faut mettre le bit ADIF à zéro si on
a besoin de relancer une nouvelle conversion.

Exercice3
1. Pas de quantification: q=5V/(210-1)=0.0048875V.
2. Résultât de la conversion:
R=int(Vin-Vref-)/q
R=int(2V-0V)/0.004887V=int(409.2)=409.
409)10=199)h=01 1001 1001)2
3. Justification à gauche donc les contenus des registres ADRESH et ADRESL sont:
ADRESH : 01 1001 10
ADRESL: 01 0000 00

Dr [Link] ep MEBARKIA 2
Exercice4

1. q=2.5V/1023=0.0024437V

2. R=int[(Vin-Vref-)/q]
R=int[(1V- 0V)/0.002443V]=int(409.21)=409)10.
R=409)10=199)h=01 1001 1001)2

3. facteur de division DIV:

TAD=DIV/fosc et TAD>1.6µs donc DIV≥TAD*fosc.

DIV≥24 on prend DIV=32 d'après la table donnée par le fabricant du Microcontrôleur.

4. les contenus des registres:

TRISA=0x20 // la grandeur analogique est à l'entrée RA5.


TRISB=0x00 // le PORTB est configuré en sortie
TRISC=0x00 // le PORTC est configuré en sortie

ADCON0 : configuration de l'entrée analogique & choix l'horloge de conversion & le bit
de démarrage de conversion & bit de service

ADCS1 ADCS0 CHS2 CHS1 CHS0 GO_DONE ADON


1 0 1 0 0 0 --------- 1

ADCON1: configuration des E/S et des tensions de référence & justification du résultat à
gauche

ADFM PCFG3 PCFG2 PCFG1 PCFG0


0 ----------- ---------- ---------- 0 0 0 1

Donc ADCON0 = 0xA1


ADCON1 = 0x01

Dr [Link] ep MEBARKIA 3
5. Le programme:

unsigned char LR=0, ADH=0, ADL=0,// variables intermédiaires sur 16 bits

void main()
{
TRISA=0x20; // la grandeur analogique est à l'entrée RA5.
TRISB=0x00; // le PORTB est configuré en sortie
TRISC=0x00; // le PORTC est configuré en sortie
ADCON0=0xA1; // configuration de l'entrée analogique & choix l'horloge de conversion & le
bit de démarrage de conversion & bit de service
ADCON1=0x01; // justification à gauche

do {
ADCON0=0xA1; //validation de la conversion

Delay_us(20); // le temps d'acquisition

ADCON0=0xA7; // début de conversion donc ADCON0. GO_DONE=1 // ou bien 0xA5

while (ADCON0. GO_DONE= =1) { } //la conversion n'est pas encore terminée.

ADH=ADRESH<<2; // décalage à gauche de ADRESH


ADL=ADRESL>>6; // décalage à droite de ADRESL
LR=ADH+ADL; // ajustement du résultat
PORTB=LR;
PORTC=ADRESH>>6;
}
while(1);
}

Dr [Link] ep MEBARKIA 4

Vous aimerez peut-être aussi