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.