université du québec École de technologie supérieure gpa770: microélectronique appliquée Éric...
TRANSCRIPT
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-1
CONTENU DU COURS
A. MISE EN CONTEXTE
B. CONCEPTS LOGICIELS
(PROGRAMMATION EN ASSEMBLEUR ET
EN C)
C. CONCEPTS MATÉRIELS
(COMPOSANTS D’UN MICROCONTRÔLEUR)
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-2
Partie C − Concepts matériels
C.1 Configurations matérielles du 68HC12: architecture du système, mémoire, et ports d’e/s
C.2 Gestion d’exceptions:réponses aux remises-à-zéro et aux interruptions avec le 68HC12vecteur et priorité d’exceptions, et routines de service d’interruption
C.3 Module de temporisation: module de temporisation standard du 68HC12saisie des entrées et comparaison de sorties
C.4 Convertisseurs analogique-numérique:processus de conversionsystème de conversion du 68HC12
C.5 Interfaces de communications sérielles:communications sérielles avec un microcontrôleurinterfaces sérielles multiples du 68HC12: SCI et SPI
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-3
Sommaire de la section C.4
C.4 Convertisseur analogique-numérique:
1)Concepts fondamentaux:a) interface du transducteur b) processus de conversion N-A et A-Nc) techniques standard de conversion
2)Module ATD du 68HC12:a) description d’opération du système b) registres et configurationsc) programmation du ATD
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-4
C.4(1) Concepts fondamentaux
Rôle du convertisseur: traduire un signal analogique en un {codes binaires}, avec:1. l’échantillonnage: le signal analogique est
échantillonné à intervalle périodique ou apériodique.
2. l’encodage: un code binaire, signé ou non, est attribué à chacune des valeurs échantillonnées
Exemple: signal analogique provenant d’un senseur IR
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-5
C.4(1) Concepts fondamentaux
a. Interfaces de transducteurs
Processus de conversion de variables physiques (e.g., lumière, température, vitesse, etc.) en représentation numérique
valeur physique → voltage analogique → valeur numérisée (binaire)
conversion A: effectuée par un transducteur (e.g., senseur)
conversion B: effectuée par un convertisseur A-N, mais une autre interface de transducteur au microcontrôleur est souvent nécessaire
A B
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-6
C.4(1) Concepts fondamentauxa. Interfaces de transducteurs
Avant une conversion A-N, la sortie d’un transducteur doit être conditionnée telle que:
la plage total de conversion du convertisseur A-N, FS = VRL → VRH , soit remplie pour que la résolution de représentation soit maximisée.
Implique deux opérations analogiques:décalage (bias): permet d’ajuster VRL (voltage de référence bas) remise à l’échelle: permet d’ajuster VRH (voltage de référence haut)
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-7
C.4(1) Concepts fondamentaux
a. Interfaces de transducteurs
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-8
C.4(1) Concepts fondamentauxa. Interfaces de transducteurs
Conditionnement: Vsortie = Ventrée · K + Bavec les bornes:
V2max(out) = V2max(in) · K + B (1)
V1min(out) = V1min(in) · K + B (2)
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-9
C.4(1) Concepts fondamentauxb. Processus de conversion A-N
conversion ≡ traduire un signal analogique en un {codes binaires}, par un processus en 2 phases:1. l’échantillonnage: un voltage dans la plage de conversion
du convertisseur A-N est mesuré à certaines intervalles2. l’encodage: un code binaire est attribué à chaque voltage
échantillonné
Caractéristiques distinctifs de convertisseurs A-N:nombre de bits aux codes binaires: généralement 8-24 bits précision: l’erreur absolue du processus de conversiontaux de traitement de données: le nombre d’échantillons par seconde
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-10
C.4(1) Concepts fondamentauxb. Processus de conversion A-N
1. Échantillonnage: mesurer un voltage à un intervalle régulier ou non Ts afin de représenter le signal analogique
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-11
C.4(1) Concepts fondamentaux
b. Processus de conversion A-N
Taux d’échantillonnage minimum:critère de Nyquist: on doit échantillonner un signal analogique avec une fréquence fs qui est au moins 2 fois le contenu fréquentielle maximum fmax du signal:
fs ˃ 2 fmax
donne le temps minimum entre 2 échantillons: Ts = 1/fs
problème d’alias: si fs ≤ 2 fmax
la translation de composantes indésirables de hautes fréquences en basses fréquences
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-12
C.4(1) Concepts fondamentaux
b. Processus de conversion A-N
2. Encodage: attribué un code binaire non signé à chaque voltage analogique échantillonné
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-13
C.4(1) Concepts fondamentaux
b. Processus de conversion A-N
b: nombre de bits utilisés par le convertisseur A-N pour encoder les échantillons
Quantification (n): nombre de niveaux discrets, entre VRH et VRL, sur lequel le signal analogique est divisé
n = (2b niveaux – 1)
Résolution (ΔV): la plage de voltage par niveau discret
ΔV = (VRH – VRL)/n = (VRH – VRL)/ (2b – 1) volts/niveau
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-14
C.4(1) Concepts fondamentaux
b. Processus de conversion A-N
Taux de traitement moyen de données (d): le nombre total de bits générés par seconde
d = fsb bps (bits/sec)
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-15
C.4(1) Concepts fondamentauxb. Processus de conversion A-N
le processus de conversion consiste à: 1. échantillonner le signal analogique périodiquement ou
non2. encoder chaque échantillon en code binaire
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-16
C.4(1) Concepts fondamentauxc. Techniques de conversion
Circuit ‘sample-and-hold’: échantillonnagefonction: prendre un échantillon stable du signal analogique s(t) et le retenir pour conversion
mise en oeuvre: ‘sample’: commutateur fermé – charge le condensateur selon s(t)‘hold’: commutateur ouvert – déconnecter le condensateur de l’entrée pour conserver un échantillon VIN sur le noeud interne
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.4-17
C.4(1) Concepts fondamentaux
c. Techniques de conversion N-A
Méthodes standards de conversion N-A1. méthode par PWM
2. méthode basée sur un sommateur
3. méthode sérielle (SPI) basée sur un sommateur
4. méthode basée sur l’échelon (R-2R)
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.4-18
C.4(1) Concepts fondamentaux
c. Techniques de conversion N-Améthode par PWM
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.4-19
C.4(1) Concepts fondamentaux
bit 3R
4R
2R
R
8Rbit 0
bit 2
bit 1
+ ref
c. Techniques de conversion N-Améthode basée sur le sommateur
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.4-20
C.4(1) Concepts fondamentaux
Sortie A
Sortie B
c. Techniques de conversion N-Améthode sérielle avec sommateur
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-21
C.4(1) Concepts fondamentaux
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.4-22
C.4(1) Concepts fondamentaux
c. Techniques de conversion N-Améthode basée sur l’échelon R-2R
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.4-23
C.4(1) Concepts fondamentaux
c. Techniques de conversion A-N
Méthodes standards de conversion A-N1. méthode basée sur l’intégration
2. méthode de type compteur (rampe)
3. méthode par approximation successive
4. méthode parallèle
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.4-24
C.4(1) Concepts fondamentaux
c. Techniques de conversion A-NMéthode par intégration:
Vin
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.4-25
C.4(1) Concepts fondamentaux
c. Techniques de conversion A-Nméthode de type compteur (rampe)
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-26
C.4(1) Concepts fondamentauxc. Techniques de conversion
Méthode par approximation successive:1. Initialiser la plage des voltages FS(b) = VRH – VRL
2. Pour i = bit b → bit 1 du SAR:
a) approximer le voltage Vappr(i) = FS(i) / 2, au mi-point dans la plage des voltages FS(i) 1. si VIN ≤ Vappr(i) → FS(i-1) = moitié inférieure de FS(i)
2. si VIN > Vappr(i) → FS(i-1) = moitié supérieure de FS(i)
1. comparer VIN et Vappr(i) pour assigner un bit au SARsi VIN ≤ Vappr(i) → SAR(i-1) = ‘0’
si VIN > Vappr(i) → SAR(i-1) = ‘1’
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-27
C.4(1) Concepts fondamentaux
c. Techniques de conversion
Méthode par approximation successive: (suite)
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-28
C.4(1) Concepts fondamentaux
c. Techniques de conversion
Méthode par approximation successive: (suite)
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-29
C.4(1) Concepts fondamentauxc. Techniques de conversion
Exemple: choisir un voltage entre 0V et 4V, puis représenter avec un code binaire à 4 bits
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-30
C.4(1) Concepts fondamentauxc. Techniques de conversion
Exemple: choisir un voltage entre 0V et 5V, puis représenter avec un code binaire à 4 bits
1111 1110 1101 1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 00000V
5V
2.5V
3.75V
3.125V3.4375V Vin = 3.5V
step 1 step 2 step 3 step 4
voltage
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-31
C.4(1) Concepts fondamentaux
Méthode parallèle (3 bits): compare simultanément VIN à plusieurs voltages de référence
un convertisseur à b bits
utilise 2b – 1 comparateurs
donne une conversion très rapide, mais coûteuse
c. Techniques de conversion
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-32
Sommaire de la section C.4
C.4 Convertisseur analogique-numérique:
1)Concepts fondamentaux:a) interface du transducteur b) processus de conversion A-Nc) techniques standard de conversion
2)Module ATD du 68HCS12:a) description d’opération du système b) registres et configurationsc) programmation du ATD
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-33
C.4(2) Convertisseur du 68HC12Rôle des types de sous-systèmes dans le 68HC12: a) CPU12: unité de traitement central
gestion d’exceptions: interrompre l’exécution normal d’un programme
b) Bus: le module LIM combine DATA, ADDR et CTRL
c) Mémoire: stocker des configurations (bloc), des variables (RAM) , des programmes (ROM) et des vecteurs
d) Périphériques d’entrée/sortie: ports d’entrée/sortie: échanger des données avec le monde externetemporisation: capter des entrées, générer des sorties, accumuler des impulsions, PWM conversion de données: convertir un signal analogique en codes binaires non-signés communication sérielle: échanger de données par communications asynchrones (SCI) et synchrones (SPI)
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-34
C.4(2) Convertisseur du 68HC12
MC9S12C32
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-35
C.4(2) Convertisseur du 68HC12
A/N
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-36
C.4(2) Convertisseur du 68HC12
Sous-système de conversion A-N du 68HC12:
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-37
C.4(2) Convertisseur du 68HC12
Fonctionnement du module ATD:
dessert 8 canaux d’entrée/sortie individuels:vue interne: PORTAD (adresse $008F) est associé aux 8 canauxvue externe: broches PAD[7:0] sont associées aux 8 canaux
les échantillons de signaux analogiques aux 8 canaux sont transmis à travers d’un MUX 8:1
on peut effectuer n conversions successives d’un seul canal, ou bien une conversion sur m canaux en succession.permet l’échantillonnage de 10 bits en 7 µsec si le ATD clk = 2MHz.
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-38
C.4(2) Convertisseur du 68HC12
Fonctionnement du sous-système: (suite)
le convertisseur A-N par approximations successives traite un échantillon à la fois
départ: une séquence de n conversions est initiée en écrivant au registre de contrôlefin: les drapeaux appropriés sont fixés au registre d’état et les résultats sont disponibles dans un registre des résultats
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-39
C.4(2) Convertisseur du 68HC12
Conversion par approximation successive:
chaque échantillon du signal analogique → code binaire signé/non-signée justifié à gauche ou non et pondéré, avec 8 ou 10 bits de résolution
précision de ± 1 du LSbVRH
VRL$00 $FF
1/2FS
1/4FS
1/8FS
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-40
C.4(2) Convertisseur du 68HC12
Registres pertinents:
[$0082 - $0085] ATDCTL2-5: registres de contrôleconfigurent la séquence de conversion pour des opérations spécifiques
[$0086 / $008B] ATDSTAT0/ATDSTAT1: registres d’états
deux registres de 8 bits qui contiennent les drapeaux du convertisseur
[$008F] PORTAD: registre de port ATDun port associé aux entrées ATD
[$0090 - $009F] ATDDR0H-ATDDR7H: 8 registres de résultats de16 bits
contiennent les résultats binaires après la conversion
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-41
C.4(2) Convertisseur du 68HC12
[$0082] ATDCTL2 - registre de contrôle 2:pour l’activation et la configuration de base
ADPU (‘ATD Power Up’): activation du convertisseur‘1’ = activer le ATD – suite à l’activation, on doit attendre une période d’initialisation d’au moins 100µsec avant d’utiliser le convertisseur A-N
‘0’ = désactiver (toutes conversions sont abandonnées)
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-42
C.4(2) Convertisseur du 68HC12
[$0082] ATDCTL2 - registre de contrôle 2:
AFFC (‘ATD Fast Flag Clear All’): RAZ rapide des drapeaux SCF et CCFn dans le registre ATDSTAT0 et ATDSTAT1
‘0’: normale – processus en 2 étapes (spécialisé pour le mode ‘polling’)
‘1’: rapide – se fait automatiquement lorsqu’on lit un résultat des registres ATDDRn (spécialisé pour le mode INT)
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-43
C.4(2) Convertisseur du 68HC12
[$0082] ATDCTL2 - registre de contrôle 2:AWAI (‘ATD Stop in Wait Mode’): opération s’éteint si le 68HCS12 est en mode ‘wait’
‘0’: ATD continue d’opérer si en mode ‘wait’‘1’: ATD cesse d’opérer pour consommer moins de puissance
ASCIE (‘ATD Sequence Complete Interrupt Enable’): ‘0’: masquer l’interruption du convertisseur‘1’: permet l’interruption (quand une séquence de conversion est complétée, c.-à-d., quand ASCIF = 1)
ASCIF (‘ATD Sequence Complete Interrupt Flag’): un drapeau qui s’active quand une séquence de conversion est complétée (il y a aussi une INT si ASCIE = 1)
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-44
C.4(2) Convertisseur du 68HC12
[$0083] ATDCTL3 - registre de contrôle 3:
permet de contrôler le nombre de conversions par séquence
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-45
C.4(2) Convertisseur du 68HC12
[$0084] ATDCTL4 - registre de contrôle 4:
permet de contrôler l’échantillonnage, la résolution et le temps du S/H pour une séquence de conversion
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-46
C.4(2) Convertisseur du 68HC12
[$0084] ATDCTL4 - registre de contrôle 4:
PRS[4:0] (‘Select ATD Clock Prescaler’): indique le facteur d’échelle pour division de PCLK
fATD = fBCLK / {2 · (PRS[4:0]+1)10}
facteur d’échelle PRS[4:0]
valeur du diviseur fréquence d’horloge ATD, fATD
00001 4 2.00 MHz
00010 6 1.33 MHz
00011 8 1.00 MHz
00100 10 800 kHz
00101(par défaut) 12 667 kHz
00111 16 500 kHz
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-47
C.4(2) Convertisseur du 68HC12
[$0084] ATDCTL4 - registre de contrôle 4:
SMP[1:0] (‘Select Sample Time’): indique le nombre de périodes de l’horloge ATD pour effectuer un échantillonnagedans le calcul de la fréquence d’échantillonnage fech
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-48
C.4(2) Convertisseur du 68HC12
[$0084] ATDCTL4 - registre de contrôle 4:
SRES8 (‘A/D Resolution Select’): 0 10-bits résolution 1 8-bits résolution
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-49
C.4(2) Convertisseur du 68HC12
[$0085] ATDCTL5 - registre de contrôle 5: pour configurer le mode de conversion utilisé (gâchette)
DJM: ‘Result Register Data Justification’Justification à droite ou à gauche
‘0’: Justification à gauche‘1’: Justification à droite
DSGN: ‘Result Register Data Signed or Unsigned’ ‘0’: Non signé‘1’: Signé
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-50
C.4(2) Convertisseur du 68HC12
[$0085] ATDCTL5 - registre de contrôle 5:SCAN: activer la conversion par balayage continu
‘0’: effectue une séquence de conversion‘1’: effectue continuellement des séquences
MULT: active le mode de conversion pour de multiples canaux
‘0’: échantillonnage d’un canal individuel ‘1’: échantillonnage de canaux multiples
CC,CB,CA: sélection du canal de départ
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-51
C.4(2) Convertisseur du 68HC12
[$0086] ATDSTAT0 – 1ier registre d’état:
CC0-CC2 (‘Conversion Counter’): indique dans quel registre de résultat la conversion en cours sera stockée.
SCF (‘Sequence Complete Flag’): drapeau qui indique la fin d’une séquence de conversion. Le drapeau est RAZ si:
on écrit 1 à SCFécrit au ATDCTL5 (RAZ normal)on lit un des registres ATDDRn (RAZ rapide)
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-52
C.4(2) Convertisseur du 68HC12
[$008B] ATDSTAT1 – 2ième registre d’état: série de drapeaux pour indiquer l’état du convertisseur
CCF0-CCF7 (‘Conversion Complete Flag’): indique les canaux de la séquence qui sont complétés. (Pointe les registres de résultats)
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-53
C.4(2) Convertisseur du 68HC12
[$0090-9F] ATDDR0H-7H – registres de résultat:
stocke les résultats des conversions justifiées à gauche
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-54
C.4(2) Convertisseur du 68HC12
[$0090-9F] ATDDR0H-7H – registres de résultat:
stocke les résultats des conversions justifiées à droite
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-55
C.4(2) Convertisseur du 68HC12
Procédure générale pour exploiter le convertisseur A-N:
1. effectuer les connexions physiques:
a) voltages de référence aux broches externes VRH et VRL
b) signaux analogiques aux broches d’entrée du convertisseur PAD0 – PAD7
2. fixer ADPU = ‘1’ au registre ATDCTL2 pour activer le système
3. attendre 100+ µsec avant d’utiliser le système de conversion
4. initialiser le fonctionnement du système selon l’application avec les registres ATDCTL2-4
5. entamer et configurer un processus de conversion en écrivant au registre ATDCTL5
6. surveiller la fin du processus avec drapeaux du registre ATDSTAT07. accéder les résultats de conversion aux registres ATDDRnH8. désactiver (ADPU = ‘0’) pour réduire la consommation de puissance
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-56
C.4(2) Convertisseur du 68HC12
Diagramme de flots de données:
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger
C.4-57
C.4(2) Convertisseur du 68HC12
Structure typique de programme:
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.4-58
C.4(3) Programmation du convertisseur
Exemple1: Mesurer un signal analogique inconnu connecté à la broche PAD6 du 68HCS12, 4 fois
1. utilise VRL = 0V et VRH = 5V, et connecter le signal au PAD6
2. écrire ADPU = ‘1’ pour activer
3. générer un délai de 100 µsec en logiciel
4. initialiser le système: pas d’interruptions, RAZ normal des drapeaux, 4 conversions/séquence, 2 ATDclk/échant., réduction d’échelle = 4 (conversions à 2 MHz), 8 bit non signés justifiés à droite.
5. entamer et configurer: mode d’échantillonnage à canal simple, mode non continu, une séquence de 4 conversions, signal sur PAD6, etc.
6. surveillance: balayage pour vérifier le bit SCF du registre ATDSTAT0
7. résultats de conversion: écrits aux registres ATDDR0H-3H
8. on laisse le système activé
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.4-59
C.4(3) Programmation du convertisseur
;********************; Programme principal
ATDCTL2-5 EQU $0082-85 ; déclaration des adresses déjà fait dansATDSTAT EQU $0086 ; le fichier d’inclusion mc9s12c32.incATDDR0H-3H EQU $0090-98
ORG $0800 ECHAN DS.B $4
ORG $4000 LDS #$1000 ; initialise la pile
BSR INIT ; sr d’initialisation BSR CONVERT ; sr processus de
conversion Fin: BRA Fin
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.4-60
C.4(3) Programmation du convertisseur
;************************************************; INIT: sous-routine pour initialiser le convertisseur A-N
INIT LDAA #$80 ; activer, RAZ drapeau normal, pas d’interrupt.
STAA ATDCTL2
BSR DELAY ; brancher vers la sous-routine DELAYLDAA #$20 ; 4 conversions
STAA ATDCTL3
LDAA #$81 ; 2 ATDclk/échan., réduction d’échelle = 4
STAA ATDCTL4RTS
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.4-61
C.4(3) Programmation du convertisseur
;***********************************************
; DELAY: sous-routine pour délai de 100 µsec
DELAY LDAA #$C8 ; charger A avec un délai de 100 µsec
LOOP DECA
BNE LOOP ; branchement si A n’est pas 0
RTS
génération d’un délai logiciel:
$C8 = 200 passes dans la boucle de délai
4 cycles d’horloge / boucle (DECA + BNE), alors 800 cycles total
si la fréquence d’horloge du CPU est 8 MHz, délai de 100 µsec
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.4-62
C.4(3) Programmation du convertisseur
;***********************************************************
; CONVERT: un processus de conversion et stock le résultat
CONVERTLDAA #$86 ; SCAN=0, MULT=0, PAD 6,...
STAA ATDCTL5 ; gâchette
WTCNV BRCLR ATDSTAT0, $80, WTCNV ; attendre SCF = 1
MOVB ATDDR0L, ECHAN ; sauvegarder
MOVB ATDDR1L, ECHAN+1 ; les échantillons
MOVB ATDDR2L, ECHAN+2
MOVB ATDDR3L, ECHAN+3
RTS
END
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.4-63
C.4(3) Programmation du convertisseur
Exemple 2: Mesurer un signal analogique inconnue connecté à la broche PAD2 du 68HC12, une fois et stocker à l’adresse $0800
1. utilise VRH = 5V et VRL = 0V, et connecter le signal au PAD2
2. écrire ADPU = ‘1’ pour activer
3. générer un délai de 100 µsec en logiciel
4. initialiser le système: pas d’interruptions, RAZ rapide des drapeaux, 2 ATDclk/echan., réduction d’échelle = 4 (conversions à 2 MHz), 8 bit non signés justifiés à droite.
5. entamer et configurer: mode d’échantillonnage à canal simple, mode non continue, signal sur PAD2, etc.
6. surveillance: balayage pour vérifier le bit CCF0 de ATDSTAT17. résultat de conversion: est écrit au registre ATDDR0H8. on désactive le système en mode WAIT pour conserver de la puissance
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.4-64
C.4(3) Programmation du convertisseur
;********************; Programme principal
ATDCTL2-5 EQU $0082-85 ; déclaration des adresses déjà fait dansATDSTAT EQU $0086 ; le fichier d’inclusion mc9s12c32.incATDDR0H-3H EQU $0090-98
ORG $4000 LDX #$0800 ; adresse des résultatsLDS #$1000
JSR INIT ; sr initialisation JSR CONVERT ; sr séquence de
conversion Fin: BRA Fin
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.4-65
C.4(3) Programmation du convertisseur
;* INIT: sous-routine pour initialiser le convertisseur A-NINIT MOVB #$C0 , ATDCTL2 ;activer, RAZ rapide drapeaux, pas d’interr.
LDAA #200 ;créer un délai de 100 µsecLOOP DECA
BNE LOOP MOVB #$08, ATDCTL3 ; un canal par scanMOVB #$81, ATDCTL4 ;2 ATDclk/echan., réduction d’échelle=4
RTS
;* CONVERT: conversion d’une séquence et stock le résultatCONVERT MOVB #$82, ATDCTL5 ; SCAN=0, MULT=0, PAD2WTCNV BRCLR ATDSTAT1, $01, WTCNV ; attendre que CCF0 = 1
celui ; qui va recevoir le résultat
; non pas CCF2MOVB ATDDR0L,0,X ; stoker le résultat
RTS
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.4-66
C.4(3) Programmation du convertisseur
Exemple 3: Mesurer 8 signaux analogiques inconnus connectés aux broches PAD0-7 du 68HC12 une fois et les stocker à partir de l’adresse $0800
1. utilise VRH = 5V et VRL = 0V, et connecter les signaux aux PAD0-7
2. écrire ADPU = ‘1’ pour activer
3. générer un délais de 100 µsec en logiciel
4. initialiser le système: pas d’interruptions, RAZ rapide des drapeaux, 8 conversions/séquence, 2 ATDclk/echan., réduction d’échelle = 4 (conversions à 2 MHz), etc.
5. entamer et configurer: mode d’échantillonnage multi-canal, mode continu, une séquence de 8 conversions, signaux sur PAD0-7, 8 bit non signés justifiés à droite.
6. surveillance: balayage pour vérifier le bit SCF de ATDSTAT0
7. les résultats de conversion: registres ATDDR0H-7H
8. on désactive le système en mode WAIT pour conserver de la puissance
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.4-67
C.4(3) Programmation du convertisseur
;********************; Programme principal
ATDCTL2-5 EQU $0082-85 ; déclaration des adresses déjà fait dansATDSTAT EQU $0086 ; le fichier d’inclusion mc9s12c32.incATDDR0H-3H EQU $0090-98
ORG $4000 LDX #$0800 ; adresse des résultatsLDS #$1000
JSR INIT ; sr initialisation JSR CONVERT ; sr séquence de
conversionFin: BRA Fin
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.4-68
C.4(3) Programmation du convertisseur
;************************************************;* INIT: sous-routine pour initialiser le convertisseur A-N
INIT MOVB #$C0 , ATDCTL2 ;activer, RAZ rapide drapeaux, pas d’interr.
LDAA #200 ;créer un délai de 100 µsec
LOOP DECA
BNE LOOP MOVB #$00, ATDCTL3 ; 8 canaux ($40 est aussi bon)
MOVB #$81, ATDCTL4 ;2 ATDclk/échan., réduction d’échelle=4
RTS
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.4-69
C.4(3) Programmation du convertisseur
;***************************************************************
; CONVERT: conversion d’une séquence et stock le résultat
CONVERT MOVB #$90, ATDCTL5 ;DJM=1, DSGN=0,SCAN=0 ;MULT=1, CC:CA=000
WTCNV BRCLR ATDSTAT0, $80, WTCNV ; attendre que SCF = 1MOVB ATDDR0L,1,X+ ; collecter et stoker les MOVB ATDDR1L,1,X+ ; résultats, et ensuite MOVB ATDDR2L,1,X+ ; post-incr. XMOVB ATDDR3L,1,X+ MOVB ATDDR4L,1,X+ MOVB ATDDR5L,1,X+ MOVB ATDDR6L,1,X+ MOVB ATDDR7L,1,X+RTS
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.4-70
C.4(3) Programmation du convertisseur
Exemple 4: Mesurer un signal analogique inconnu connecté à la broche PAD7 du 68HC12, 20 fois
collecter 20 résultats de conversion et les stocker aux adresses mémoire qui commencent à $0800
utiliser la même configuration qu’à l’exemple 1, sauf qu’il faut effectuer:
4 conversions par séquence, et 5 séquences
en stockant les résultats progressivement
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.4-71
C.4(3) Programmation du convertisseur
;********************; Programme principal
ATDCTL2-5 EQU $0082-85 ; déclaration des adresses déjà fait dansATDSTAT EQU $0086 ; le fichier d’inclusion mc9s12c32.incATDDR0H-3H EQU $0090-98
ORG $4000 LDX #$0800 ; pointe vers l’adresse désiréeLDS #$1000
JSR INIT ; sr initialisation du convertisseur
LDY #5 ; compteur de séquences DONE JSR CONVERT ; sr séquence de conversion
DBNE Y, DONE ; décrémenter et testerFIN BRA FIN
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.4-72
C.4(3) Programmation du convertisseur
;************************************************;* INIT: sous-routine pour initialiser le convertisseur A-N
INIT MOVB #$C0 , ATDCTL2 ;activer, RAZ rapide drapeaux, pas d’interr.
LDAA #200 ;créer un délai de 100 µsec
LOOP DECA
BNE LOOP MOVB #$20, ATDCTL3 ; nb de conversions = 4
MOVB #$81, ATDCTL4 ;2 ATDclk/echan., réduction d’échelle = 4
RTS
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.4-73
C.4(3) Programmation du convertisseur
;***************************************************************
; CONVERT: 5 séquence de 4 conversion et stock les résultats
CONVERTMOVB #$87, ATDCTL5 ; DJM=1, DSGN=0,
; SCAN=0, ; MULT=0,
CC-CA=111
WTCNV BRCLR ATDSTAT0, $80, WTCNV ; attendre que SCF=1
MOVB ATDDR0L,1,X+ ; collecter et stoker les
MOVB ATDDR1L,1,X+ ; résultats, et ensuite
MOVB ATDDR2L,1,X+ ; post-incr. X
MOVB ATDDR3L,1,X+ RTS
END
Université du Québec
École de technologie supérieure GPA770: Microélectronique appliquée C.4-74
C.4(3) Programmation du convertisseur
Laboratoire 2d: Détection de voltage des capteurs IR
(sections 9.1, 9.6 et 9.7 du livre)
Objectifs: extraire la valeur de senseurs IR avec le ATD du 68HCS12
programmer 3 canaux du système ATD pour numériser les sorties de 3 senseurs IRpour une plage de valeurs analogiques des senseurs de 0V à 3.2Vsurveiller continuellement la sortie des 3 senseurs pour détecter des obstacles:
le voltage augmente plus la distance diminue
Université du Québec
École de technologie supérieure
Labo 2d
GPA770: Microélectronique appliquée C.4-75
:***************************************************************************************:***************************************************************************************:***************************************************************************************; Laboratoire 2d session H2011, GPA770;; Auteur: Maurice Tremblay;; MÀJ: 16 mars 2014;; Convertisseur analogique à numérique 68HCS12 de Motorola; Ref.: MC9S12C128V1.pdf p.233-241
org RAMStart;***************************************************************************************; ; Déclaration et allocation de trois variables pour la sauvegarde des trois voltages des trois; capteurs de proximitéCapteurD : ds.b $01 ; les trois voltages des capteursCapteurC : ds.b $01 ; droit, centre et gaucheCapteurG : ds.b $01
org ROMStart;***************************************************************************************; ; Initialisation du convertisseur N/A; Mode 8 bits non signés à droite; Multiple numérisations. Canal 1, 2 et 3; Vitesse du ‘sample and hold’ à 2 coups d'horloge; Vitesse de l'horloge de conversion à 2MHz
InitAN: movb #$C0,ATDCTL2 ; mise en marche du convertisseur et du AFFC movb #$18,ATDCTL3 ; 3 conversions à la fois movb #$81,ATDCTL4 ; 8 bits, 2 clocks S/H, 2MHz
Université du Québec
École de technologie supérieure
Labo 2d (suite)
GPA770: Microélectronique appliquée C.4-76
…………(Vos autres initialisations ici pour compenser le 100 microsecondes de mise en marche du module ATD)……….
;***************************************************************************************;; Conversion des trois voltages des trois capteurs IRs
Final: movb #$91,ATDCTL5 ; début de conversion justifiée à droite, multiple, à partir du ; canal 1
; Interrogation du bit SCF du registre de statut ATDSTAT0
Attendre: brclr ATDSTAT0,#$80,Attendre ; Attendre la fin des trois conversions (SCF) movb ATDDR2L, CapteurD ; sauvegarde des trois voltages des capteurs movb ATDDR1L, CapteurC movb ATDDR0L, CapteurG jsr AfficheLCD ; votre routine d’affichage sur LCD des trois voltages
…………(Logique floue, calcul de braquage etc.)………. ; à faire dans le projet final seulement
ldy #200 ; À refaire 4 à 5 fois par secondes
jsr DELAI bra Final ; et pour toujours