Vous êtes sur la page 1sur 10

Informatique Embarquée - Ressources

Modules
Modules Info2/3
Info2/3
Informatique
Informatique embarquée
embarquée
Le
Lemodule
moduleADC
ADC(CAN)
(CAN)du
duMCU
MCU

Nicolas PONSART
IUT Henri Poincaré de Longwy Nicolas PONSART
Info_Emb
Enseignant au département GEII IUT Henri Poincaré de Longwy
Enseignant au département GEII
Info_Emb-Ressources-MCU_le
186 rue de Lorraine 54400 COSNES module
ETADC (CAN)
ROMAIN 186 rue de Lorraine 54400 COSNES ET ROMAIN
http://iut-longwy.univ-lorraine.fr http://iut-longwy.univ-lorraine.fr page 0 / 9
Informatique Embarquée - Ressources

Mise en œuvre du module ADC (CAN) des MCU PIC

1- Présentation du module ADC (CAN)

Un CAN (Convertisseur Analogique Numérique) ou en anglais ADC (Analog to Digital Converter), est souvent intégré
dans les microcontrôleurs contrairement au CNA (DAC) qui est externe.

Il permet de convertir une tension en un mot binaire de 8, 10 ou 12 bits en général.

Son principe est généralement du type à “approximations successives”.

Il possède plusieurs entrées multiplexées accessibles via les broches des ports (qui deviennent analogiques).

 Exemple d'intégration dans une chaîne d'acquisition :

PORTS Microcontrôleur

Unité de PORT
traitement

 Schéma bloc :
n bits
Ve CAN S

Vref

Le CAN permet de convertir la tension Ve (analogique) en un mot binaire S de n bits (numérique)


proportionnellement à une tension de référence Vref.

Nicolas PONSART
Info_Emb IUT Henri Poincaré de Longwy
Enseignant au département GEII
Info_Emb-Ressources-MCU_le module ADC (CAN) 186 rue de Lorraine 54400 COSNES ET ROMAIN
http://iut-longwy.univ-lorraine.fr page 1 / 9
Informatique Embarquée - Ressources

 Relation entre la sortie et l'entrée : => caractéristique de transfert

La tension d'entrée va être quantifiée (ou partitionnée) en 2n valeurs de 0 à 2n-1.


Exemple : si S est sur 8 bits (n=8) => 28 = 256 valeurs de (0000 0000)2 = (0)10 à (1111 11111)2 = (255)10.

On utilise alors le quantum (q) qui représente la plus petite variation du mot S, c'est-à-dire un.
C'est la plus petite variation du signal d'entrée qui se répercute sur la sortie numérique. Il fixe la résolution du CAN.

On a alors : S = Ve / q (S en décimal entier, q et Ve en Volts) S = Ve / q

Avec le quantum : q = Vref / 2n (n = nombre de bits du mot S)

Exemple : Soit un CAN de 3 bits avec Vref = 4V : D0

Ve CAN D1
D2 S

Vref

On a le quantum : q = 4 / 23 = = 4 / 8 = 0,5V

On a alors : S = Ve / 0,5

Quelques valeurs :
Ve (V) S (en décimal)
0,5 1
0,75 1
1 2
1,6 3
2,3 4
3,2 6
3,8 7
4 7 S = 4 / 0,5 = 8... il faut 4 bits (1000)2 !

Ici, Nmax = (111)2 = 7 dès que Ve > 3,5V ( = 2n-1 / q = 7 / 0,5) .

La tension à convertir ne devra donc pas dépasser la tension Pleine Échelle VPE (ou FS (Full Scale)).
La tension Pleine Échelle VPE correspond à Vemax – Vemin.
Elle dépend donc de la tension de référence Vref. Si Vemin = 0V alors : VPE = Vref
S
Smax = 2n -1
(111)2 = 7 Remarque importante :
(110)2 = 6 Si le circuit est alimenté en +V,alors
(101)2 = 5 Vemax = +V.
(100)2 = 4
(011)2 = 3 Ex : Si +V = 5V, Vemax = 5V
(010)2 = 2
(001)2 = 1
Ve (V)
0 1 2 3 4
q VPE
Nicolas PONSART
Info_Emb IUT Henri Poincaré de Longwy
Enseignant au département GEII
Info_Emb-Ressources-MCU_le module ADC (CAN) 186 rue de Lorraine 54400 COSNES ET ROMAIN
http://iut-longwy.univ-lorraine.fr page 2 / 9
Informatique Embarquée - Ressources

2- Le module ADC (CAN) du µC (MCU) PIC de Microchip


Exemple avec le PIC 18F452

 Extrait de la documentation constructeur du PIC 18F452 :

Registres
de résultat
Registres
de configuration

Entrées
Choix de analogiques
l’entrée à
convertir

CAN
(ADC)

Choix de
la tension
de référence

Vref

Nicolas PONSART
Info_Emb IUT Henri Poincaré de Longwy
Enseignant au département GEII
Info_Emb-Ressources-MCU_le module ADC (CAN) 186 rue de Lorraine 54400 COSNES ET ROMAIN
http://iut-longwy.univ-lorraine.fr page 3 / 9
Informatique Embarquée - Ressources

Exemples de différents registres internes du PIC permettent de paramétrer le CAN (ADC) du PIC :

Choix de
Etat de la Activation du
l’entrée à
conversion convertisseur
convertir

Choix de
la tension
de référence

Nicolas PONSART
Info_Emb IUT Henri Poincaré de Longwy
Enseignant au département GEII
Info_Emb-Ressources-MCU_le module ADC (CAN) 186 rue de Lorraine 54400 COSNES ET ROMAIN
http://iut-longwy.univ-lorraine.fr page 4 / 9
Informatique Embarquée - Ressources

Schéma équivalent d’une entrée analogiques :

Echantillonneur-Bloqueur

Nicolas PONSART
Info_Emb IUT Henri Poincaré de Longwy
Enseignant au département GEII
Info_Emb-Ressources-MCU_le module ADC (CAN) 186 rue de Lorraine 54400 COSNES ET ROMAIN
http://iut-longwy.univ-lorraine.fr page 5 / 9
Informatique Embarquée - Ressources

3- Mise en œuvre du module ADC (CAN) du PIC à l’aide de PIC C Compiler de CCS
Le logiciel de développement (IDE) CCS C Compiler dispose de fonctions permettant la mise en œuvre et l’utilisation
de l’ADC (CAN) du PIC.

 Exemple de code C (avec CCS C Compiler) :


///////////////////////////////////////////////////////////////////////////////
// Test ADC (CAN)
// Conversion d’une tension comprise entre 0 et 5V en mot binaire de 8 bits
// Entrée : AN0 = Tension réglée par potentiomètre
// Sortie : Mot binaire de 8 bits visualisé par 8 Leds sur le portD
///////////////////////////////////////////////////////////////////////////////
#include <18f452.h>
#device ADC = 8 // format du mot en sortie de l'ADC (ici 8 ou 10 bits)
#use delay (crystal=20MHz)

// Déclaration des variables


unsigned int8 DATA;

//// PROGRAMME PRINCIPAL


void main()
{
output_d(0); // met le PortD à zéro

// Initialisation de l'ADC
setup_adc(ADC_CLOCK_INTERNAL); // Active l’ADC et sélectionne l’horloge du PIC comme horloge de l’ADC
setup_adc_ports(AN0); // AN0 = configure la broche AN0(RA0) en entrée analogique
// Remarque : Fonction qui met le regitre ADCON1 à 0b00001110
//setup_adc_ports(ALL_ANALOG); // ALL_ANALOG = configure toutes les broches ANx en entrée analogique
// Pour voir la liste des arguments possible, ouvrir le fichier .h

while(TRUE)
{
set_adc_channel(0); // Sélectionne le canal 0 pour la prochaine conversion (read_adc)
delay_us(10); // Un petit « delay » est nécessaire après avoir sélectionné le canal et
// avant la conversion AN
DATA=read_adc(); // Démarre la conversion, lit le résultat et le stocke dans la variable DATA

output_d(DATA); // Eenvoi de DATA sur le PortD


}
}

Nicolas PONSART
Info_Emb IUT Henri Poincaré de Longwy
Enseignant au département GEII
Info_Emb-Ressources-MCU_le module ADC (CAN) 186 rue de Lorraine 54400 COSNES ET ROMAIN
http://iut-longwy.univ-lorraine.fr page 6 / 9
Informatique Embarquée - Ressources

 Extrait de la documentation de PIC C Compiler :

Commande préprocesseur et fonctions liées à l’ADC

Nicolas PONSART
Info_Emb IUT Henri Poincaré de Longwy
Enseignant au département GEII
Info_Emb-Ressources-MCU_le module ADC (CAN) 186 rue de Lorraine 54400 COSNES ET ROMAIN
http://iut-longwy.univ-lorraine.fr page 7 / 9
Informatique Embarquée - Ressources

Fonction pour la mise en fonctionnement du module CAN (ADC)

Fonction pour choisir l’entrée analogique à convertir par le CAN (ADC)

Nicolas PONSART
Info_Emb IUT Henri Poincaré de Longwy
Enseignant au département GEII
Info_Emb-Ressources-MCU_le module ADC (CAN) 186 rue de Lorraine 54400 COSNES ET ROMAIN
http://iut-longwy.univ-lorraine.fr page 8 / 9
Informatique Embarquée - Ressources

Fonction de demande de lecture du résultat de la conversion

Nicolas PONSART
Info_Emb IUT Henri Poincaré de Longwy
Enseignant au département GEII
Info_Emb-Ressources-MCU_le module ADC (CAN) 186 rue de Lorraine 54400 COSNES ET ROMAIN
http://iut-longwy.univ-lorraine.fr page 9 / 9

Vous aimerez peut-être aussi