APPLICATION DE LA
 CONVERSION ANALOGIQUE NUMERIQUE

LE CONTROLEUR MC9S12C128
 

Hugues ANGELIS

page  09

 

 

Comparaison automatique

Le convertisseur dispose d’un mode de comparaison automatique qui permet de détecter si le signal converti est supérieur à un seuil ou bien s’il est inférieur ou égal à ce seuil.

On active le mode comparaison automatique en mettant à ‘1’ les bits CMPEX. Les seuils et les sens de comparaison étant alors fixés respectivement par les registres de résultat ATDDRX  et par les bits CMPHTX conformément au tableau ci-dessous. Attention en mode comparaison, les registres ATDDRX ne stockent pas le résultat de la conversion.

La comparaison automatique ne fonctionne pas lorsque le mode FIFO est activé.

Séquences de conversion

Le convertisseur analogique numérique que nous utilisons est conçu pour générer des séquences de conversion, c'est-à-dire qu’il est prévu pour convertir un certain nombre de signaux automatiquement sans avoir besoin de relancer la conversion pour chaque canal (que ce soit par une opération informatique ou suite à un événement externe).

Pour pouvoir faire partie d’une séquence, les voies à convertir doivent être contigüe (elles doivent se suivre). On configure la séquence en donnant sa longueur (via les bits SXC) et le point de départ (via les bits C).Le déclenchement de la séquence se fait en écrivant dans ATDCTL5 (si ETRIGE = ‘0’) ou si un événement de déclenchement extérieur à lieu (ETRIGE = ‘1’).

Pour chaque voie, le convertisseur effectue l’opération de conversion puis selon l’état des bits FIFO et CMPEX (on ne peut pas utiliser FIFO conjointement avec CMPEX), les résultats sont stockés ou comparés.

FIFO4

CMPEX1

CMPHTX3

Fonction

ATDDRX2

CCFX[42] = ‘1’

Sens

Valeur

0

0

X

Conversion

R

Résultat de la conversion
en mode BUFFER

A la fin de la conversion

0

1

0

Comparaison

W

Valeur à comparer

Conversion ≤ ATDDRX

0

1

1

Conversion > ATDDRX

1

X

X

Conversion

R

Résultat de la conversion
en mode FIFO

A la fin de la conversion

Pour les flags CCF et les registres de données, la valeur de X dépend du mode de fonctionnement utilisé. En mode buffer, X représente le numéro d’ordre dans la séquence. Par contre en mode FIFO, la valeur de X est associée différemment entre le registre de donnée, où les données sont stockées séquentiellement jusqu’au dernier registre avant de reboucler, et les bits CCF qui continue à indiquer le numéro d’ordre dans la séquence. L’information du registre mis en œuvre (en mode FIFO comme en mode BUFFER) est disponible avec les bits CC de ATDSTAT0.

 

Mode FIFO

Mode BUFFER

Séquence

Registre

CC3-CC0

Flag

Registre

CC3-CC0

 

Voie 1

ATDDR0

0

CCF0

ATDDR0

0

CCF0

1

Voie 2

ATDDR1

1

CCF1

ATDDR1

1

CCF1

Voie 3

ATDDR2

2

CCF2

ATDDR2

2

CCF2

Voie 1

ATDDR3

3

CCF0

ATDDR0

0

CCF0

2

Voie 2

ATDDR4

4

CCF1

ATDDR1

1

CCF1

Voie 3

ATDDR5

5

CCF2

ATDDR2

2

CCF2

Voie 1

ATDDR6

6

CCF0

ATDDR0

0

CCF0

3

Une fois la séquence achevée, le flag SCF est mis à ‘1’ et déclenche une interruption si le bit ASCIE est à ‘1’.