université du québec École de technologie supérieure gpa770: microélectronique appliquée Éric...

73
Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS A . M ISE EN CONTEXTE B. C ONCEPTS LO G IC IELS ( PR O G R A M M A TIO N EN ASSEM BLEUR ET EN C) C . C ONCEPTS M ATÉRIELS ( COM POSANTS D UN M ICROCONTRÔLEUR )

Upload: antoine-henry

Post on 04-Apr-2015

106 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-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)

Page 2: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-2

Partie C − Concepts matériels

C.1 Configurations matérielles: 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

Page 3: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-3

Sommaire de la section C.3

C.3 Module de temporisation: 1)Concepts fondamentaux

2)Module de temporisation standard (TIM)

3)Capter des entrées (IC) − saisie des paramètres d’un signal

4)Comparer des sorties (OC) − génération de signaux précis

5)Accumuler des impulsions (PA)

Page 4: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-4

C.3(1) Concepts fondamentauxRô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)

Page 5: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-5

C.3(1) Concepts fondamentaux

Sous-système de temporisation

Fonction globale: permet de gérer des interfaces avec des événements précis dans le temps

Principales composants:1. TIM – Module de temporisation standard: mesurer des

entrées, générer des sorties, compter des événements externes

2. PWM – Module de modulation de longueur d’impulsions: générer des signaux dont la longueur d’impulsions varie

Page 6: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-6

C.3(1) Concepts fondamentaux

MC9S12C32

Page 7: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-7

C.3(1) Concepts fondamentaux

PWM/IOC/PTT

Page 8: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-8

C.3(1) Concepts fondamentaux

Module d’horloge: le 68HCS12 utilise des signaux d’horloges internes, chacun dérivé d’une horloge primaire.

Le module TIM utilise le Bus Clock dérivé de la fréquence du cristal ÷ 2

XTAL = 16MHz ÷ 2 = 8MHz = Bus Clock

Page 9: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-9

C.3(1) Concepts fondamentaux

Caractéristiques fondamentales d’un signal numérique:

Page 10: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-10

Sommaire de la section C.3

C.3 Module de temporisation: 1)Concepts fondamentaux

2)Module de temporisation standard (TIM)

3)Capter des entrées (IC) − saisie des paramètres d’un signal

4)Comparer des sorties (OC) − génération de signaux précis

5)Accumuler des impulsions (PA)

Page 11: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-11

C.3(2) Module TIMFonctions principales du TIM:1. IC (‘Input Capture’): permet de mesurer les

caractéristiques d’un signal numérique en entréeexemple: il peut être programmé pour mesurer une longueur d’impulsion, la fréquence, la période et le cycle de service d’un train d’impulsions

2. OC (‘Output Compare’): permet de générer un signal numérique très précis en sortie

exemple: il peut être programmé pour générer un signal avec fronts d’ondes périodiques, des impulsions, etc.

3. PA (‘Pulse Accumulate’): permet de compter des événements internes ou externes

exemple: il peut être programmé pour compter des impulsions provenant d’un module externe

Page 12: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-12

C.3(2) Module TIM

Composants matériels du TIM:

A. Compteur binaire programmable à 16 bits qui tourne continuellement

incrémenté par l’horloge Bus Clockpoint de référence pour synchronisation

B. Circuiterie pour gérer 8 canaux d’entrée/sortie indépendants

chaque canal exploite le compteur binaire comme référenceLes canaux 0 à 7 peuvent être IC ou OC et le canal 7 peut, en plus, être utilisé pour le PA.

Page 13: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-13

C.3(2) Module TIM

Page 14: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-14

C.3(2) Module TIM

Page 15: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-15

C.3(2) Module TIM

A. Compteur binaire à 16 bits Cœur du TIM – un compteur programmable à 16 bits qui compte constamment selon les impulsions de Bus Clock:

[$0046] TSCR1: le module TIM est activé en fixant le bit TEN = 1 (‘Timer Enable’) dans ce registre

ensuite le compteur progresse de $0000 → $FFFF, retourne à $0000 et continu à compter (débordement à chaque 216 impulsions)

remarque: Les fonctions IC, OC et PA du TIM sont synchronisées à partir du compteur

binaire

$46

Page 16: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-16

C.3(2) Module TIM

A. Compteur binaire à 16 bits

Bus Clock

Page 17: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-17

C.3(2) Module TIM

A. Compteur binaire à 16 bits La valeur du compteur est stockée dans 1 registre à 16 bits: (‘Timer Counter Register High et Low’)

[$0044:$0045] TCNT (hi): (lo) registre MSB:LSB

On y accède avec des instructions de 2 octets:

LDD, STD, etc.

Page 18: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-18

C.3(2) Module TIM

A. Compteur binaire à 16 bits

Drapeau de débordement:

débordement = le compteur tourne de $FFFF → $0000

[$004F] TFLG2 (‘Timer Flag Register 2’) – le 68HCS12 active le bit d’état TOF pour un débordement

Page 19: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-19

C.3(2) Module TIM

A. Compteur binaire à 16 bits

Fréquence du compteur binaire:

la fréquence de Bus Clock peut être divisée par un facteur de réduction d’échelle

[$004D] TSCR2 (‘Timer System Control Register 2’) – ce facteur est programmé par l’usager, à travers des bits PR[2:0]

Page 20: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-20

C.3(2) Module TIMA. Compteur binaire à 16 bits

Page 21: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-21

C.3(2) Module TIM

A. Compteur binaire à 16 bits

Exemple codé 3-1: étapes minimums requises pour exploiter le compteur binaire

1. fixer le facteur de réduction avec le bits PR[2:0] du registre TSCR2 pour l’intervalle de comptage désirée

2. fixer le bit TEN du registre TSCR1 pour activer le compteur

Question: Quel est le temps écoulé au débordement si PR = 101?

Page 22: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-22

C.3(2) Module TIM

B. Canaux d’entées/sorties

Fonction IC/OC: 8 canaux individuels pour manipuler des signaux

chaque canal peut être configuré pour IC ou OCinterne: [$0240] PORT T PTT est associé aux 8 canauxexterne: broches IOC[7:0] sont associées aux 8 canaux

Page 23: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-23

C.3(2) Module TIM

B. Canaux d’entées/sorties

Fonction PA – accumulation d’impulsions 16 bits: 1 canal peut compter des événements externes

le dernier canal du TIM peut être configuré pour PAinterne: partage le bit PTT7 du PORT T externe: la broche IOC7/PAI est liée à l’accumulateur

Page 24: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-24

C.3(2) Module TIM

B. Canaux d’entées/sorties

[$0040] TIOS (‘Timer IC/OC Select’) permet d’indiquer les canaux qui sont utilisés pour:

IC: si on fixe un 0 in au bit correspondant

OC: si on fixe un 1 in au bit correspondant

Page 25: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-25

C.3(2) Module TIMB. Canaux d’entées/sorties

Page 26: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-26

C.3(2) Module TIMEnsemble des registres TIM pour IC/OC:

TIOS EQU $0040 ;choix (capter entrées)/(comparer sorties)

CFORC EQU $0041 ;comparaison forcé

OC7M EQU $0042 ;masque comparer sorties 7

OC7D EQU $0043 ;données comparer sorties 7

TCNT (hi):(lo) EQU $0044 ;valeur du compteur (haut)

EQU $0045 ;valeur du compteur (bas)

TSCR1 EQU $0046 ;contrôle du système 1

TCTL1- TCTL4 EQU $0048-004B ;contrôle des fronts 1-4

TIE – TSCR2 EQU $004C-$004D ;masques pour les interruptions 1-2

TFLG1 - TFLG2 EQU $004E-$004F ;drapeaux des interruptions 1-2

TC0 - TC7 EQU $0050-$005E ; capter entrées ou comparer sorties 0-7

Page 27: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-27

C.3(2) Module TIM

Registres essentiels pour configurer le TIM:

[$0046] TSCR1 (pour ‘Timer Source Control 1’)

TEN doit être fixé à ‘1’ afin d’activer le compteur binaire dans le TIM

[$004D] TSCR2 (pour ‘Timer Source Control 2’)

PR[2:0] spécifie le nombre d’étages division-par-2 (réduction d’échelle) qu’on veut insérer entre MCLK et le compteur binaire du TIMTOI permet de générer un INT de débordement (si le TOF=1)

Page 28: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-28

C.3(2) Module TIMRegistres essentiels pour configurer le TIM:

[$0044:$0045] TCNT(hi):(lo) (pour ‘Timer Counter Register High/Low’)

contient la valeur du compteur binaire à 16 bits

[$0060] PACTL (pour ‘PA Control Register’)PAEN doit être fixé à ‘1’ afin d’activer le système d’accumulation d’impulsionsCLK[1:0] offrent d’autres alternatives comme base de temps à TCNT

[$0040] TIOS (‘Timer IC/OC Select’) permet d’indiquer quels canaux sont en IC ou en OC

Page 29: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-29

C.3(2) Module TIM

Gestion des interruptions avec le TIM

Page 30: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-30

C.3(2) Module TIMGestion des interruptions avec le TIM

Page 31: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-31

Sommaire de la section C.3

C.3 Module de temporisation: 1)Concepts fondamentaux

2)Module de temporisation standard (TIM)

3)Capter des entrées (IC) − saisie des paramètres d’un signal

4)Comparer des sorties (OC) − génération de signaux précis

5)Accumuler des impulsions (PA)

Page 32: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-32

C.3(3) Capter des entrées (IC)

Objectif: mesurer les paramètres clés d’un signal numérique en entrée

Concept général:le TIM permet de capter la valeur du compteur binaire lorsqu’un événement a lieu:

événement ≡ un front montant, un front descendant, ou un front quelconque sur le signal en entréel’événement d’intérêt est définit par l’usager

l’usager peut ensuite calculer le temps écoulé entre deux événements d’intérêt

Page 33: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-33

C.3(3) Capter des entrées (IC)

Circuit IC pour un canal n = 0, 1, ..., 7:

Page 34: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-34

C.3(3) Capter des entrées (IC)

Capter la valeur du compteur:

le circuit capte une vue instantanée du compteur lors d’un événement (un front) sur le signal en entrée

l’usager doit définir les événements qu’il veut détecter:

[$004A:$004B] TCTL3:TCTL4 (pour ‘Timer Control Registers 3 et 4’) 2 bits/canal indiquent le front

Page 35: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-35

C.3(3) Capter des entrées (IC)

Sélection du front pour le signal en entrée:

Page 36: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-36

C.3(3) Capter des entrées (IC)

Lorsqu’un événement (un front) a lieu:

1. [$004E] TFLG1 – le drapeau CnF correspondant au canal n (n = 1...7) est activé:

pour une remise à zéro du drapeau, il s’agit d’écrire un ‘1’ au bit CnF à désactiver (et ‘0’ aux autres bits)

Page 37: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-37

2. [$008C] TIE – interruption correspondant au canal n est activé (si le masque est désactivé, CnI=1)

3. [$0050:$0005F] TCn (hi):(lo) – une vue instantanée du compteur est stockée sur 16 bits

C.3(3) Capter des entrées (IC)

Page 38: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-38

C.3(3) Capter des entrées (IC)

Processus général pour un IC: (approche ‘polling’)

1. Configurer le canal en mode IC (TIOS)2. Fixer les paramètres du compteur (TEN, PR[2:0])

3. Mesurer le temps ‘start’:

1. choisir un type de front avec EDGnB:EDGnA (TCTL3-4)2. surveiller le drapeau CnF du canal n (TFLG1)3. quand CnF devient actif, stocker le contenu de TCnH:L en mémoire

4. Mesurer le temps ‘stop’:

1. effectuer une remise-à-zéro du CnF, en écrivant un ‘1’ au bit correspondant de TFLG1

2. si nécessaire, choisir un différent type de front avec EDGnB:EDGnA3. surveiller encore le drapeau CnF, et stocker le contenu de TCnH:L en

mémoire quand ce bit devient actif

5. Calculer la différence entre les deux valeurs en mémoire, et multiplier par Tc (la période du compteur)

Page 39: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-39

C.3(3) Capter des entrées (IC) Cas 1: mesurer la longueur d’impulsions (Ls) pour un signal actif bas sur le canal 3

1. configurer le canal 3 en entrée dans TIOS

2. fixer Tc (PR[2:0]dans TSCR2) et TEN=1

3. mesurer le temps start:1. spécifier qu’on veut détecter un front descendant: EDG3B:EDG3A = ’10’2. surveiller le drapeau C3F dans TFLG13. quand ce bit devient actif, stocker le contenu de TC3H:L en mémoire

MOVW TC3, start4. faire une remise-à-zéro de C3F en lui écrivant un ‘1’ dans TFLG1 avec MOVB

4. mesurer le temps stop:1. spécifier qu’on veut détecter un front montant: EDG3B:EDG3A = ’01’2. surveiller le drapeau C3F dans TFLG1, et quand il devient actif, stocker le contenu de

TC3H:L en mémoire

MOVW TC3, stop3. calculer la différence, stop – start, et la longueur d’impulsion du signal,

Ls = (stop - start)Tc

Page 40: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-40

C.3(3) Capter des entrées (IC)

Cas 2: mesurer la période (Ts) pour un signal sur le canal 4 avec un résolution de 0.5 µsec, et avec un horloge de 8MHz

1. fixer Tc = 0.5μsec (alors PR[2:0]=‘010’ dans TSCR2) et TEN=12. configurer le canal 4 en entrée dans TIOS3. mesurer le temps start:

1. spécifier qu’on veut détecter un front descendant: EDG3B:EDG3A = ’10’2. surveiller le drapeau C4F dans TFLG13. quand ce bit devient actif, stocker le contenu de TC4H:L en mémoire

MOVW TC4, start

4. mesurer le temps stop:1. faire une remise-à-zéro de C4F en lui écrivant un ‘1’ dans TFLG1 (MOVB) 2. surveiller le drapeau C4F dans TFLG1, et quand il devient actif, stocker le

contenu de TC4H:L en mémoire

MOVW TC4, stop5. calculer la différence, stop – start, et la période du signal:

Ts = (stop - start) Tc

Page 41: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-41

C.3(3) Capter des entrées (IC)

Exemple: code pour mesurer la période d’un signal (Ts) périodique connecté au canal 2 du module TIM

Ts : mesure le temps écoulé entre 2 fronts montants successifs

configure le canal 2 du TIM pour capter un signal d’entrée

on suppose que la fréquence de MCLK est 8 MHz, et on fixe la réduction d’échelle pour le diviser par 4

la fréquence d’horloge pour le compteur est alors de 2 MHz, et donc Tc = 0.5 sec

MAIN-initialize

TIMER_INIT MEAS_PER

Page 42: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-42

C.3(3) Capter des entrées (IC)

Exemple: diagramme de flots de données

Initialiser les registres et masques:TMSK2, TCTL4, TIOS et TSCR

Déclarer des variables:start et period

Remise-à-zéro du drapeau C2F

1er front?

Remise-à-zéro du drapeau C2Fstocker compteur dans start

2e front?

Calculer la période

TSCR2 TSCR1

Page 43: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-43

C.3(3) Capter des entrées (IC)

;*************************************************; Définitions

TSCR2_IN equ $02 ;désactiver TOI=0, reduction d’échelle=4 TCTL4_IN equ $10 ;config IC2 pour détecter front montantTIOS_IN equ $00 ;choisir le canal comme IC TSCR1_IN equ $80 ;activer le compteur TENCLR_CH2 equ $04 ;masque RAZ du drapeau canal 2

;*************************************************; Programme principale

ORG $0800 EDGE_1: ds.w 1 ;variablesPERIOD: ds.w 1

ORG $4000 LDS #$1000 ; initialiser le pointeur de

pile DEBUT: BSR TIMERINIT ; SR initialise compteur BSR MEAS_PER ; SR measure la période

Fin: BRA Fin

Page 44: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-44

C.3(3) Capter des entrées (IC)

;*************************************************; TIMERINIT: sous-routine qui initialise TIM pour IC2

TIMERINIT CLR TIE ; configurer le canal 2

LDAA #TSCR2_IN

STAA TSCR2

LDAA #TCTL4_IN

STAA TCTL4

LDAA #TIOS_IN

STAA TIOS

LDAA #TSCR1_IN

STAA TSCR1 ; activer le compteur

RTS

Page 45: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-45

C.3(3) Capter des entrées (IC) ;*************************************************; MEAS_PER: sous-routine mesure la période entre ; 2 fronts montants (version ‘polling’ ou balayage)

MEAS_PER LDAA #CLR_CH2 ;RAZ du drapeau IC2 STAA TFLG1 WTFLG1 BRCLR TFLG1, #$04, WTFLG1 ;attendre le front 1 LDD TC2 ;charger la valeur TC2 STD EDGE_1 ;stocker le temps du front 1

LDAA # CLR_CH2 ; RAZ du drapeau IC2 STAA TFLG1 WTFLG2 BRCLR TFLG1, #$04, WTFLG2 ;attendre front 2 LDD TC2 ;charger la valeur de TCNT SUBD EDGE_1 ;calculer la période: D-

Edge1 STD PERIOD RTS

END

Page 46: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-46

C.3(3) Capter des entrées (IC)

Calcule du temps écoulé entre 2 événements:

cas 1: 0 débordement

t = stop - start

cas 2: 1 débordement

t = stop - start

(ignore le bit C du

CCR lors de la

soustraction)

Page 47: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-47

C.3(3) Capter des entrées (IC)

Calcule du temps écoulé entre 2 événements:cas 3: n débordements

t = (stop-start) + n x 216

t = (stop-start) + (n-1) x 216

t = n x 216

Page 48: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-48

Sommaire de la section C.3

C.3 Module de temporisation: 1)Concepts fondamentaux

2)Module de temporisation standard (TIM)

3)Capter des entrées (IC) − saisie des paramètres d’un signal

4)Comparer des sorties (OC) − génération de signaux précis

5)Accumuler des impulsions (PA)

Page 49: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-49

C.3(4) Comparer des sorties (OC)

Objectif: générer des signaux numériques en sortie avec une grande précision

l’usager peut générer un niveau de tension sur une broche selon des caractéristiques désirées:

impulsion active sur transition basse ou haute, avec ou sans un délaisignal répétitif selon une certaine fréquence et cycle de servicesignal dont la longueur d’impulsion varie comme un PWM (Pulse Width Modulation)

Page 50: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-50

C.3(4) Comparer des sorties (OC)

Circuit OC pour un canal n = 0, 1, .., 7:

Page 51: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-51

C.3(4) Comparer des sorties (OC)

Générer des signaux en sortie:

le circuit compare 2 registres (16 bits) internes TCnH:TCnL au compteur binaire

si TCnH:TCnL = TCNTH:TCNTL, alors un front désiré est produit sur la broche de sortie PTn du port T

[$0048: $0049] TCTL1:TCTL2 (pour ‘Timer Control Registers 1 et 2’) 2 bits/canal indiquent le front montant et/ou front descendant du signal

Page 52: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-52

C.3(4) Comparer des sorties (OC)

Sélection du front pour le signal en sortie:le front spécifique sur la broche de sortie OCn peut être soit montant, soit descendant ou soit inversé.

Page 53: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-53

C.3(4) Comparer des sorties (OC)

Lorsque TCnH:TCnL = TCNTH:TCNTL

1. [$004E] TFLG1 – le drapeau CnF du canal n s’activepour une remise à zéro du drapeau, il s’agit d’écrire un ‘1’ au bit CnF à désactiver (et ‘0’ aux autres bits)

Page 54: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-54

2. [$004C] TIE – interruption correspondant au canal n est activé (si le masque est désactivé, CnI=1)

3. le front spécifié dans OMn:OLn a lieu sur la broche de sortie correspondante du port T

C.3(4) Comparer des sorties (OC)

Page 55: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-55

C.3(4) Comparer des sorties (OC)

Processus général pour OC:

1. configurer le canal en mode OC (TIOS)2. choisir le type de front désiré avec OMn:OLn (TCTL1-2)3. fixer les paramètres du compteur binaire (TEN, PR[2:0])4. calculer NI ≡ le nombre d’incréments du compteur par Ts

(période du signal à générer): NI = fc / fs

5. avant chaque événement: stocker au registre TCn la valeur future de temps auquel on veut créer le front:a. accéder la valeur actuel de TCNTb. stocker la somme TCNT + α(%) * NI dans TCnH:L

6. après l’événement: effectuer une remise-à-zéro du CnF, en écrivant un ‘1’ au bit correspondant de TFLG1

Page 56: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-56

C.3(4) Comparer des sorties (OC)

Page 57: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-57

C.3(4) Comparer des sorties (OC)

Exemple: générer un signal carrée de 1 kHz avec un cycle de service de 50% sur le canal 2 du TIM

le canal 2 du module TIM (IOC2) est configuré pour généré un signal de sortie

on suppose que la fréquence de Bus Clock est de 8 MHz, et on fixe la réduction d’échelle pour le diviser par 4

la fréquence d’horloge pour le compteur à 16 bits est alors de 2 MHz (période de Tc = 0.5 sec)

alors:un période de 1 kHz correspond à NI = 2000 impulsionsα = 50% haut (actif): 1000 impulsions ($3E8 en hex)1-α = 50% bas (inactif): 1000 impulsions ($3E8 en hex)

Page 58: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-58

C.3(4) Comparer des sorties (OC)

Exemple: diagramme de flots de données

Initialiser les registres et masques:TMSK2, TCTL2, TIOS et TSCR

Charger TC2 avec la valeur initial du compteur

Activer le sous-système de temporisation

C2F=1?

Mise-à-zéro de TC2H

Remise-à-zéro du drapeau C2F

TSCR1 TSCR2

Page 59: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-59

C.3(4) Comparer des sorties (OC)

;*************************************************; Définitions

TSCR2_IN EQU $02 ;désactiver TOI, reduction d’échelle=4

TCTL2_IN EQU $10 ;initialise OC2 avec toggle

TIOS_IN EQU $04 ;config canal 2 comme OC

TSCR1_IN EQU $80 ;activer les compteur, RAZ du drapeau

;*************************************************; Programme principale

ORG $4000 JSR TIMERINIT ; sr initialise le compteur DONE JSR SQ_WAVE ; sr génere un onde carrée

BRA DONE ; branch. infiniEND

Page 60: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-60

C.3(4) Comparer des sorties (OC)

;*************************************************; TIMERINIT: sous-routine qui initialise TIM pour OC2

TIMERINIT CLR TIE ;désactiver les interruptions

MOVB #TSCR2_IN,TSCR2 ;désactiver ovf, réd.d’éch.=4

MOVB #TCTL2_IN,TCTL2 ;OC2 ‘toggle’ chaque compare

MOVB #TIOS_IN,TIOS ;config canal 2 comme OC

MOVW #$03E8,TC2 ;charger TC2 avec compte initial

MOVB #TSCR1_IN,TSCR1 ;activer et config le compteurRTS

Page 61: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-61

C.3(4) Comparer des sorties (OC)

; SQWAVE: sous-routine pour générer le front d’ondes

SQ_WAVE BRCLR TFLG1,#$04,SQ_WAVE ;balayage de C2F

LDD TC2 ;charger la valeur de TC2

ADDD #$03E8 ;addit. la valeur du compteur

STD TC2 ;fixer le prochain t de transition

MOVB #$04,TFLG1 ; écrire un ‘1’ à C2F

RTS

Page 62: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-62

C.3(4) Comparer des sorties (OC)

Exemple: générer un signal carrée de 1 kHz avec un cycle de service active haut de 30% au canal 0 du TIM

le canal 0 du module TIM (IOC0) est configuré pour compare un signal de sortie

on suppose que la fréquence de MCLK est de 8 MHz, et on fixe la réduction d’échelle pour le diviser par 8

la fréquence d’horloge pour le compteur à 16 bits est alors de 1 MHz (période Tc = 1 sec)

alors:un période de 1 kHz correspond à NI = 1000 impulsionsα = 30% haut (actif): 300 impulsions

1 - α = 70% bas (inactif): 700 impulsions

Page 63: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-63

C.3(4) Comparer des sorties (OC)

TSCR1TSCR2

Page 64: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-64

C.3(4) Comparer des sorties (OC) ORG ROMStart

DEBUT: BSET TSCR2, 3 ;facteur d’échelle 8 → 1 Mhz

BSET TIOS, 1 ;choisir le canal 0 pour fonction OC

MOVB #1, TCTL2 ;fixer un ‘toggle’ comme action

BSET PTT, 1 ;activer la broche PT0 à 1

BSET TSCR1, $80 ;activer le compteur

LDD TCNT ;charger la valeur du compteur

ADHI ADDD #300 ;fixer le temps pour comparer avec compteur

STD TC0 ;stocker reg 0 au comparateur

HIGH BRCLR TFLG1, 1, HIGH ;balayage: attend le drapeau COF

MOVB #$01,TFLG1 ; RAZ du drapeau COF

LDD TC0

ADDD #700 ;fixer le temps pour comparer avec compteur

STD TC0

LOW BRCLR TFLG1, 1, LOW ;balayage: attend le drapeau COF

MOVB #$01,TFLG1 ; RAZ du drapeau COF

LDD TC0

BRA ADHI

END

Page 65: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-65

Sommaire de la section C.3

C.3 Module de temporisation: 1)Concepts fondamentaux

2)Module de temporisation standard (TIM)

3)Capter des entrées (IC)− saisie des paramètres d’un signal

4)Comparer des sorties (OC)− génération de signaux précis

5)Accumuler des impulsions (PA)

Page 66: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-66

C.3(5) Accumulateur d’impulsions (PA)

Fonction: compter le nombre d’impulsions en exploitant le compteur binaire

Modes d’opération:1. mode compteur d’événements: permet de compter les

fronts d’ondes (spécifiés par l’usager) qui ont lieu sur la broche d’entrée de l’accumulateur (PAI)

2. mode cumulatif: permet de compter les impulsions d’une horloge dont la fréquence est fixe

il compte les impulsions de l’horloge seulement lorsqu’il est activé par la broche PAIil conserve toujours la dernière valeur comptée

Page 67: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-67

C.3(5) Accumulateur d’impulsions (PA)

Registres TIM (seulement ceux pour l’accumulation d’impulsions)

PACTL EQU $0060 ; registre de contrôle

PAFLG EQU $0061 ; registre drapeau

PACNT EQU $0062 ; registre de compteur (2 octets)

Page 68: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-68

C.3(5) Accumulateur d’impulsions (PA)

Configuration de l’accumulateur d’impulsions:

l’entrée de l’accumulateur (PAI) partage la même broche externe que le canal 7 (IC7/OC7) du port T

on doit alors désactiver les fonctions OC du canal 7 afin d’utiliser cette broche pour l’accumulation

étapes: 1. fixer le bit IOS7 = 0 du registre TIOS, afin d’activer la

fonction IC du canal 72. fixer les bits OM7 et OL7 (mode/level) à ’00’ dans le

registre TCTL1, afin de déconnecter le canal OC de la broche externe

3. fixer le bit OC7M7 = 0 dans le registre OC7M (adresse $0042) pour désactiver le masque no 7 en sortie.

Page 69: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-69

C.3(5) Accumulateur d’impulsions (PA)

Registres pertinents:

le registre de contrôle (PACTL) à l’adresse $0060fixer PAEN = 1 active la circuiterie connectée à la broche d’entrée PAI pour la détection de frontsfixer PEDGE = 0 compte des fronts descendants, tandis que PEDGE = 1 compte des fronts montants

le système commence maintenant à compter les fronts sur la broche PAI

Page 70: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-70

C.3(5) Accumulateur d’impulsions (PA)

Registres pertinents:

le registre de drapeau (PAFLG) à l’adresse $0061le bit PAIF s’active chaque fois qu’un front est compté

le registre de compteur (PACNT) aux adresses $0062 et $0063

on compte dans ce registre à 16 bits

Page 71: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-71

C.3(5) Accumulateur d’impulsions (PA)

Registres pertinents:

[$0062:$0063] PACNT -- le registre de compteur:on devrait y accéder avec des instructions à 2 octets (e.g., LDD)le registre PACNT reflète le nombre de fronts actifs (mod 65,536) depuis la dernière remise à zéro du systèmequand PACNT déborde de $FFFF à $0000, le bit PAOVF du registre PAFLG devient actif (il faut lui écrire un ‘1’ pour le remettre à zéro)

Page 72: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-72

C.3(5) Accumulateur d’impulsions (PA)

Mode mémorisé:le bit PAMOD du registre PACTL détermine le mode de l’accumulateur d’impulsions

PAMOD = 0: mode compteur d’événementsPAMOD = 1: mode cumulatif

dans le mode cumulatif, une fréquence fixe (BUSCLK ÷ 64) incrémente le compteur (PACNT) selon que la broche PAI est à 0 ou 1

permet de mesurer le temps de validité d’une conditionPACNT contient le nombre d’impulsions depuis la dernière remise-à-zéro du systèmesi PEDGE = 0, le système permet de compter si PAI = 1si PEDGE = 1, le système permet de compter si PAI = 0

Page 73: Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger C.3-1 CONTENU DU COURS

Université du Québec

École de technologie supérieure GPA770: Microélectronique appliquéeÉric Granger

C.3-73

C.3(5) Accumulateur d’impulsions (PA)

Exemple: compter le nombre de fronts montants sur la broche PAI

PACTL EQU $0060 ; déclaration des adresses de registres déjà déclarés dans PAFLG EQU $0061 ; le fichier d’inclusion mc9s12c32.incPACNT EQU $0062 PACTL_IN EQU $50 ; active le PA, mode compte évén., fronts montants

ORG $4000

MOVW #$0000,PACNT ; Compteur à 0 MOVB #$03,PACFLG ; drapeaux à 0 MOVB #PACTL_IN, PACTL ; active le PA, mode compte

événements ; sur fronts montants à la broche 7

; À partir d’ici, le programme peut alors lire en tout temps le registre PACNT et; effectuer des opérations selon le nombre d’événements qui a eu lieu...

Fin: BRA Fin END