Académique Documents
Professionnel Documents
Culture Documents
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
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 possède plusieurs entrées multiplexées accessibles via les broches des ports (qui deviennent analogiques).
PORTS Microcontrôleur
Unité de PORT
traitement
Schéma bloc :
n bits
Ve CAN S
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
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.
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 !
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
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
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.
// 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
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
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
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
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