CNA_CAN

publicité
CNA_CAN
Convertisseur Numérique Analogique - Convertisseur Analogique Numérique
G.COLIN
1 – Présentation du CNA
Un Convertisseur Numérique Analogique convertit un nombre numérique en une tension analogique, proportionnelle à la valeur
numérique d’entrée.
Vref
tension de
référence n bits
N
valeur
numérique
Convertisseur
Numérique
Analogique
Vs
Tension
de sortie
En entrée du convertisseur, on a :
•
•
La valeur numérique N, mot binaire constitué de n bits
Une tension fixe et précise, appelée tension de référence Vref
En sortie :
•
Une tension analogique Vs, proportionnelle à la valeur numérique N
n
n
Si le mot binaire d’entrée a n bits, la valeur N prend 2 valeurs différentes. La tension de sortie a également 2 valeurs
différentes.
On définit le quantum, comme la plus petite variation de tension en sortie du CNA :
Quantum = q = Vref/2
n
La valeur de Vs = N • q = N • Vref/2
n
Exemple :
Si Vref = 5V et n = 8
8
N et Vs peuvent prendre 2 = 256 valeurs différentes
N peut varier de 00000000b (0) à 11111111b (255)
La valeur du quantum q = 5V /256 = 19,53 mV
Vs mini = 0V
Vs maxi = 255 • q = 255 • Vref / 256 = 4,98 V (Vref-q)
La plus petite variation de Vs = q = 19,53 mV
2 – Simulation d’un CNA
Décompresser le fichier CNA_CAN.zip dans le répertoire travail.
Lancer le logiciel Orcad Demo (PSPICE STUDENT)
Ouvrir le projet CNA1.opj
Visualiser le schéma :
D3
DSTM2
S4
R8
D[3:0]
Vs
10Vdc
0s 0001
V1
U2
V
20k
R7
COMMUT
10k
0
D2
R6
U3
20k
R5
COMMUT
10k
D1
R4
U4
20k
R3
COMMUT
10k
D0
R2
20k
U5
R1
COMMUT
20k
0
0
Le CNA est constitué de 4 bits (D3 D2 D1 D0) . La tension de référence est de 10V (simulé par V1).
Comme la plupart des CNA, il est réalisé à l’aide d’un réseau R-2R (ici 10k et 20k).
Les commutateurs (COMMUT) sont en position basse lorsque le bit Dx est à 0, en position haute lorsque le bit Dx est à 1.
Le stimuli DSTM2 permet de placer le code en entrée du convertisseur (dans le cas de la figure : 0s 0001 au temps t=0s on
place le code 0001 = D3 D2 D1 D0 ).
L’icône
permet de lancer la simulation
L’icône
permet de visualiser les tensions continues sur le schéma.
2.1 – En modifiant le code en entrée du convertisseur (D3 D2 D1 D0), et en lançant à chaque fois une simulation, compléter le
tableau du document réponse.
2.2 – Déterminer la valeur du quantum donnée par la simulation
2.3 – Calculer la valeur théorique du quantum.
3 – Convertisseur Numérique Analogique AD7524
La documentation technique du convertisseur AD7524 est donnée en annexe.
3.1 – A partir de la documentation du circuit AD7524, donner le nombre de bits de ce convertisseur.
3.2 – Indiquer la valeur des résistances du réseau R-2R constituant ce convertisseur.
3.3 – Indiquer la plage de tension de Vref à ne pas dépasser (ABSOLUTE MAXIMUM RATINGS – page 3)
Simulation du circuit AD7524.
Sous Orcad Demo, ouvrir le projet CNA_7524.opj . Visualiser le schéma
+12V
-12V
V2
12V
V1
V3
-12V
0
5V
0
0
DSTM1
D[7:0]
U5
REF
-12V
U2A
LM324
11
D7
D6
D5
D4
D3
D2
D1
D0
RFB
2
OUT1
-
V-
D7
D6
D5
D4
D3
D2
D1
D0
OUT2
OUT
3
+
Vs
4
CNA
1
V+
0s 00000000
0
+12V
La tension Vref est simulé par V1 (5V) . La tension de sortie Vs est sur la patte 1 du circuit U2A.
3.4 – En modifiant le code d’entrée (D7 D6 D5 D4 D3 D2 D1 D0), compléter le tableau du document réponse, résultats de la
simulation.
3.5 – Déterminer la valeur du quantum donné par la simulation, puis par le calcul.
Un des schémas d’application fourni par la documentation est le suivant : (correspond à la simulation précédente)
3.6 – Par un calcul simple, indiquer les tensions en volts qu’on doit obtenir en sortie du convertisseur pour les valeurs binaires
du tableau donné ci-dessus (à compléter sur document réponse, colonne Analog Output).
4 – Convertisseur Analogique Numérique
Un Convertisseur Analogique Numérique convertit une tension analogique en un nombre numérique, proportionnelle à la valeur
de la tension d’entrée.
Vref
tension de
référence
Convertisseur
Analogique
Numérique
Ve
Tension
d'entrée
n bits
N
valeur
numérique
En entrée du convertisseur, on a :
•
•
Une tension analogique Ve
Une tension fixe et précise, appelée tension de référence Vref
En sortie :
•
La valeur numérique N, mot binaire constitué de n bits, proportionnelle à la tension d’entrée Ve.
On définit le quantum, comme la plus petite variation de tension d’entrée qui fait varier N d’une unité.
Quantum = q = Vref/2
n
La valeur de N = Ve / q = Ve • 2 / Vref
n
5 – Convertisseur Analogique Numérique intégré au micro contrôleur de la carte ARDUINO
Le microcontrôleur de la carte ARDUINO intègre un CAN de 10 bits. Il dispose de 8 entrées analogiques (A0 à A7), et la tension
appliquée sur une de ces entrées peut être convertie en numérique.
La tension de référence, par défaut, est de 5V. Les tensions appliquées sur les entrées A0 à A7 peuvent donc varier de 0 à 5V.
Le montage de test est le suivant : on applique une tension d’entrée sur l’entrée A0, qui peut varier entre 0 et 5V. Cette tension
variable est obtenue à l’aide d’un potentiomètre de 10kΩ.
+5V
10K
P1
Carte
ARDUINO
A0
Le programme à placer dans la mémoire du µP de la carte ARDUINO est le suivant :
int analogPin = A0;
unsigned int val = 0; // variable de type int pour stocker la valeur de la mesure
void setup()
{
Serial.begin(115200);
// initialisation de la connexion série
}
void loop()
{
// lit la valeur de la tension analogique présente sur la broche
val = analogRead(analogPin);
// affiche la valeur (comprise en 0 et 1023) dans la fenêtre terminal PC
Serial.println(val);
delay(100);
}
Explications : La fonction prédéfinie « analogRead » renvoie le résultat de la conversion Analogique Numérique, de la tension
appliquée sur l’entrée analogPin (A0). Le résultat est ensuite envoyé sur le moniteur série, en décimal.
Un délai de 100ms a été mis, temps entre 2 conversions.
A l’aide d’un petit tournevis et d’un multimètre, régler la tension appliquée sur l’entrée A0 aux valeurs 0V, 1V, 2V, 3V, 4V et
5V et relever la valeur envoyée sur le moniteur série.
5.1 – Compléter le tableau du document réponse avec les valeurs relevées.
5.2 – Calculer les valeurs théoriques données par les formules du 4) et compléter le tableau du document réponse.
On modifie le programme de la manière suivante :
int analogPin = A0;
unsigned int val = 0; // variable de type int pour stocker la valeur de la mesure
unsigned long tension;
void setup()
{
Serial.begin(115200);
// initialisation de la connexion série
}
void loop()
{
// lit la valeur de la tension analogique présente sur la broche
val = analogRead(analogPin);
tension=val;
tension=tension*5000;
tension=tension/1024;
// affiche la valeur (comprise en 0 et 1023) dans la fenêtre terminal PC
Serial.println(tension);
delay(100);
}
Rappel : unsigned int déclare une variable sur 16 bits – unsigned long déclare une variable sur 32 bits.
16
Donc sur 16 bits, la valeur maximale est 2 -1 = 65535
5.3 – Calculer 1023*5000
5.4 – Quelle est la valeur maximale d’une variable sur 32 bits ?
5.5 – Justifier l’utilisation d’une variable sur 32 bits.
Implanter le programme dans la carte ARDUINO. Observer le résultat envoyé sur le moniteur série (faire varier le
potentiomètre)
5.6 – Quelle est l’information affichée sur le moniteur série ? (être précis : grandeur – unité) ? Justifier.
Téléchargement