Présentation :
Le convertisseur analogique / numérique (CAN) intégré dans le AT90S8535 se dote de bonnes caractéristiques, en effet, une résolution de 10 bits n'est pas monnaie courante sur genre de petits microcontrôleurs.
En voici le résumé des caractéristiques :
- Résolution : 10 bits
- Nombres de voies : 8
- Non linéarité : inférieur à 1/2 LSB
- Erreur à zéro volt : 1 LSB
- Temps de conversion : réglable de 65 à 260 uS (plus le temps est long, plus le résultat et précis), soit près de 15000 échantillons/secondes
- Tension de référence externe (conversion de 0 à Vref analogique, le maximum étant VCC)
- Acquisitions simples ou continues

Rappel : Le convertisseur étant chargé de convertir une tension analogique en résultat numérique codé sur 10 bits, nous pouvons écrire l'équation suivante :
Résultat numérique = (Tension d'entrée / tension de référence Avref) X 1024
par exemple, pour avoir le résultat d'une tension d'entrée de 2,5 Volts, avec une tension de référence de 5 Volts (Avref) nous aurons :
RN = (2,5/5) x 1024 = 512
Le temps de conversion est égale à 13 x Horloge système x facteur de pré-division
Attenuation du bruit de conversion:
Afin de réduire au maximum les erreurs de conversions dues à la logique interne du controlleur, plusieurs solutions peuvent êtres mis en oeuvre afin d'éviter ce désagrément :
- mettre en sommeil l'unité centrale avant le lancement d'une conversion
- découpler soigneusement l'alimentation en respectant le schéma présenté ci-après
- respecter les règles élémentaires du routage de circuit imprimé en analogiques (connexions courtes, plan de masse...)
- dans tout les cas, effectuer toujours un traitement numérique des résultats (amortis,moyenne...)

Les registres :
Ils sont aux nombres de quatre :
ADMUX : Selection de la voie de conversion (sur le port A, configuration des pins en entrées sans résistance de rappel)
Adresse |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
$07 |
|
|
|
|
|
MUX2 |
MUX1 |
MUX0 |
Tableau de multiplexage :
MUX2 |
MUX1 |
MUX0 |
Selection de la voie |
0 |
0 |
0 |
0 (PA0) |
0 |
0 |
1 |
1 (PA1) |
0 |
1 |
0 |
2 (PA2) |
0 |
1 |
1 |
3 (PA3) |
1 |
0 |
0 |
4 (PA4) |
1 |
0 |
1 |
5 (PA5) |
1 |
1 |
0 |
6 (PA6) |
1 |
1 |
1 |
7 (PA7) |
ADCSR : Registre de controle et statut
Adresse |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
$06 |
ADEN |
ADSC |
ADFR |
ADIF |
ADIE |
ADPS2 |
ADPS1 |
ADPS0 |
- ADEN : Mise en marche du convertisseur.
- ADSC : Lancement de la conversion de la voie selectionnée (retourne à 0 en fin de conversion).
- ADFR : La mis à 1 de ce bit permet de mettre en le convertisseur en mode acquisiton continue apres validation de ADSC.
- ADIF : passe à 1 une fois la conversion terminée et déclanche l'interruption si ADIE =1. Ce bit repasse automatiquement à 0 lors du traitement de la routine d'interruption.
- ADIE : Validation de l'interruption ADC , déclanché lors du passage à 1 de ADIF.
- ADSP2...ADSP0 : Séléction du facteur de pré-division de l'horloge interne du convertisseur :
ADSP2 |
ADSP1 |
ADSP0 |
Facteur de division |
0 |
0 |
0 |
2 |
0 |
0 |
1 |
2 |
0 |
1 |
0 |
4 |
0 |
1 |
1 |
8 |
1 |
0 |
0 |
16 |
1 |
0 |
1 |
32 |
1 |
1 |
0 |
64 |
1 |
1 |
1 |
128 |
|
Généralement, une fréquence de 100 Khz permet d'exploiter de facon optimale le convertisseur. |
ADCL et ADCH : Registres de résultats de la conversion analogique / digital
Adresse |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
$05 |
|
|
|
|
|
|
AC9 |
ADC8 |
Adresse |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
$04 |
ADC7 |
ADC6 |
ADC5 |
ADC4 |
ADC3 |
ADC2 |
ADC1 |
ADC0 |
Application :
Paramétrage du convertisseur (application basique) :
1 - Mise en marche du convertisseur (ADEN = 1)
2 - Sélection du facteur de pré-division (ADPS2...ADPS0)
3 - Sélection de l'entrée à convertir (MUX2...MUX0)
4 - Enclanchement d'une acquisition (ADSC = 1)
5 - Attente fin de conversion (ADSC = 0)
6 - Lecture de ADCL et ADCH
Exemple :
Acquisition de la voie 0 et affichage du résultat sur un barre-graphe de LEDs cablé sur PB0...PB7 pour le mot de poids faible et PC0 PC1 pour les bits de poids forts.
Attention de ne pas cabler toutes les LEDs directement sur les ports du microcontrôleur : rappelez vous l'intensité maximum supportée par celui-ci (voir section IN/OUT)
Listing :
|