contenu du cours n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
CONTENU DU COURS PowerPoint Presentation
Download Presentation
CONTENU DU COURS

Loading in 2 Seconds...

play fullscreen
1 / 73

CONTENU DU COURS - PowerPoint PPT Presentation


  • 119 Views
  • Uploaded on

CONTENU DU COURS. Partie C − Concepts matériels. C.1 Con figurations 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 68HC12

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'CONTENU DU COURS' - klaus


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
contenu du cours
CONTENU DU COURS

GPA770: Microélectronique appliquée

Éric Granger

partie c concepts mat riels
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 68HC12
  • vecteur et priorité d’exceptions, et routines de service d’interruption

C.3 Module de temporisation:

  • module de temporisation standard du 68HC12
  • saisie des entrées et comparaison de sorties

C.4 Convertisseurs analogique-numérique:

  • processus de conversion
  • système de conversion du 68HC12

C.5Interfaces de communications sérielles:

  • communications sérielles avec un microcontrôleur
  • interfaces sérielles multiples du 68HC12: SCI et SPI

GPA770: Microélectronique appliquée

Éric Granger

sommaire de la section c 3
Sommaire de la section C.3

C.3 Module de temporisation:

  • Concepts fondamentaux
  • Module de temporisation standard (TIM)
  • Capter des entrées (IC) − saisie des paramètres d’un signal
  • Comparer des sorties (OC) − génération de signaux précis
  • Accumuler des impulsions (PA)

GPA770: Microélectronique appliquée

Éric Granger

c 3 1 concepts fondamentaux
C.3(1) Concepts fondamentaux
  • Rôle des types de sous-systèmes dans le 68HC12:
    • CPU12:unité de traitement central
      • gestion d’exceptions: interrompre l’exécution normal d’un programme
    • Bus: le module LIM combine DATA, ADDR et CTRL
    • Mémoire: stocker des configurations (bloc), des variables (RAM) , des programmes (ROM) et des vecteurs
    • Périphériques d’entrée/sortie:
      • ports d’entrée/sortie: échanger des données avec le monde externe
      • temporisation: 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)

GPA770: Microélectronique appliquée

Éric Granger

c 3 1 concepts fondamentaux1
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:
    • TIM–Module de temporisation standard:mesurer des entrées, générer des sorties, compter des événements externes
    • PWM – Module de modulation de longueur d’impulsions:générer des signaux dont la longueur d’impulsions varie

GPA770: Microélectronique appliquée

Éric Granger

c 3 1 concepts fondamentaux2
C.3(1) Concepts fondamentaux

MC9S12C32

GPA770: Microélectronique appliquée

Éric Granger

c 3 1 concepts fondamentaux3
C.3(1) Concepts fondamentaux

PWM/IOC/PTT

GPA770: Microélectronique appliquée

Éric Granger

c 3 1 concepts fondamentaux4
C.3(1) Concepts fondamentaux
  • Module d’horloge: le 68HCS12 utilisedes 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

GPA770: Microélectronique appliquée

Éric Granger

c 3 1 concepts fondamentaux5
C.3(1) Concepts fondamentaux
  • Caractéristiques fondamentales d’un signal numérique:

GPA770: Microélectronique appliquée

Éric Granger

sommaire de la section c 31
Sommaire de la section C.3

C.3 Module de temporisation:

  • Concepts fondamentaux
  • Module de temporisation standard (TIM)
  • Capter des entrées (IC) − saisie des paramètres d’un signal
  • Comparer des sorties (OC) − génération de signaux précis
  • Accumuler des impulsions (PA)

GPA770: Microélectronique appliquée

Éric Granger

c 3 2 module tim
C.3(2) Module TIM
  • Fonctions principales du TIM:
    • IC (‘Input Capture’): permet de mesurer les caractéristiques d’un signal numérique en entrée
      • exemple: 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
    • 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.
    • 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

GPA770: Microélectronique appliquée

Éric Granger

c 3 2 module tim1
C.3(2) Module TIM
  • Composants matériels du TIM:
    • Compteur binaire programmable à 16 bits qui tourne continuellement
      • incrémenté par l’horloge Bus Clock
      • point de référence pour synchronisation
    • Circuiterie pour gérer 8 canaux d’entrée/sortie indépendants
      • chaque canal exploite le compteur binaire comme référence
      • Les canaux 0 à 7 peuvent être IC ou OC et le canal 7 peut, en plus, être utilisé pour le PA.

GPA770: Microélectronique appliquée

Éric Granger

c 3 2 module tim2
C.3(2) Module TIM

GPA770: Microélectronique appliquée

Éric Granger

c 3 2 module tim3
C.3(2) Module TIM

GPA770: Microélectronique appliquée

Éric Granger

c 3 2 module tim4
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 (‘TimerEnable’) 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

GPA770: Microélectronique appliquée

Éric Granger

c 3 2 module tim5
C.3(2) Module TIM

A. Compteur binaire à 16 bits

Bus Clock

GPA770: Microélectronique appliquée

Éric Granger

c 3 2 module tim6
C.3(2) Module TIM

A. Compteur binaire à 16 bits

  • La valeur du compteur est stockée dans 1 registre à 16 bits: (‘TimerCounterRegister High et Low’)
    • [$0044:$0045] TCNT (hi): (lo)registre MSB:LSB
  • On y accède avec des instructions de 2 octets:

LDD, STD, etc.

GPA770: Microélectronique appliquée

Éric Granger

c 3 2 module tim7
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 TOFpour un débordement

GPA770: Microélectronique appliquée

Éric Granger

c 3 2 module tim8
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]

GPA770: Microélectronique appliquée

Éric Granger

c 3 2 module tim9
C.3(2) Module TIM

A. Compteur binaire à 16 bits

GPA770: Microélectronique appliquée

Éric Granger

c 3 2 module tim10
C.3(2) Module TIM

A. Compteur binaire à 16 bits

  • Exemple codé 3-1:étapes minimums requises pour exploiter le compteur binaire
  • fixer le facteur de réduction avec le bits PR[2:0] du registre TSCR2pour l’intervalle de comptage désirée
  • fixer le bit TENdu registre TSCR1 pour activer le compteur

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

GPA770: Microélectronique appliquée

Éric Granger

c 3 2 module tim11
C.3(2) Module TIM

B. Canaux d’entées/sorties

  • Fonction IC/OC: 8 canaux individuels pour manipuler des signaux
    • chaque canalpeut être configuré pour IC ou OC
    • interne:[$0240] PORT TPTT est associé aux 8 canaux
    • externe: broches IOC[7:0] sont associées aux 8 canaux

GPA770: Microélectronique appliquée

Éric Granger

c 3 2 module tim12
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 PA
    • interne: partage le bit PTT7 du PORT T
    • externe: la broche IOC7/PAI est liée à l’accumulateur

GPA770: Microélectronique appliquée

Éric Granger

c 3 2 module tim13
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

GPA770: Microélectronique appliquée

Éric Granger

c 3 2 module tim14
C.3(2) Module TIM

B. Canaux d’entées/sorties

GPA770: Microélectronique appliquée

Éric Granger

c 3 2 module tim15
C.3(2) Module TIM
  • Ensemble 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

GPA770: Microélectronique appliquée

Éric Granger

c 3 2 module tim16
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 TIM
      • TOI permet de générer un INT de débordement (si le TOF=1)

GPA770: Microélectronique appliquée

Éric Granger

c 3 2 module tim17
C.3(2) Module TIM
  • Registres essentiels pour configurer le TIM:
    • [$0044:$0045] TCNT(hi):(lo)(pour ‘TimerCounterRegister 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’impulsions
      • CLK[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

GPA770: Microélectronique appliquée

Éric Granger

c 3 2 module tim18
C.3(2) Module TIM

Gestion des interruptions avec le TIM

GPA770: Microélectronique appliquée

Éric Granger

c 3 2 module tim19
C.3(2) Module TIM

Gestion des interruptions avec le TIM

GPA770: Microélectronique appliquée

Éric Granger

sommaire de la section c 32
Sommaire de la section C.3

C.3 Module de temporisation:

  • Concepts fondamentaux
  • Module de temporisation standard (TIM)
  • Capter des entrées (IC)− saisie des paramètres d’un signal
  • Comparer des sorties (OC) − génération de signaux précis
  • Accumuler des impulsions (PA)

GPA770: Microélectronique appliquée

Éric Granger

c 3 3 capter des entr es ic
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ée
      • l’é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

GPA770: Microélectronique appliquée

Éric Granger

c 3 3 capter des entr es ic1
C.3(3) Capter des entrées (IC)
  • Circuit IC pour un canal n = 0, 1, ..., 7:

GPA770: Microélectronique appliquée

Éric Granger

c 3 3 capter des entr es ic2
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

GPA770: Microélectronique appliquée

Éric Granger

c 3 3 capter des entr es ic3
C.3(3) Capter des entrées (IC)
  • Sélection du front pour le signal en entrée:

GPA770: Microélectronique appliquée

Éric Granger

c 3 3 capter des entr es ic4
C.3(3) Capter des entrées (IC)
  • Lorsqu’un événement (un front) a lieu:
    • [$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)

GPA770: Microélectronique appliquée

Éric Granger

c 3 3 capter des entr es ic5
C.3(3) Capter des entrées (IC)

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

GPA770: Microélectronique appliquée

Éric Granger

c 3 3 capter des entr es ic6
C.3(3) Capter des entrées (IC)
  • Processus général pour un IC: (approche ‘polling’)
  • Configurer le canal en mode IC (TIOS)
  • Fixer les paramètres du compteur (TEN, PR[2:0])
  • Mesurer le temps ‘start’:
    • choisir un type de front avec EDGnB:EDGnA (TCTL3-4)
    • surveiller le drapeau CnF du canal n (TFLG1)
    • quand CnF devient actif, stocker le contenu de TCnH:L en mémoire
  • Mesurer le temps ‘stop’:
    • effectuer une remise-à-zéro du CnF, en écrivant un ‘1’ au bit correspondant de TFLG1
    • si nécessaire, choisir un différent type de front avec EDGnB:EDGnA
    • surveiller encore le drapeau CnF, et stocker le contenu de TCnH:L en mémoire quand ce bit devient actif
  • Calculer la différence entre les deux valeurs en mémoire, et multiplier par Tc (la période du compteur)

GPA770: Microélectronique appliquée

Éric Granger

c 3 3 capter des entr es ic7
C.3(3) Capter des entrées (IC)
  • Cas 1: mesurer lalongueur d’impulsions (Ls) pour un signal actif bas sur le canal 3
  • configurer le canal 3 en entrée dans TIOS
  • fixer Tc(PR[2:0]dans TSCR2) et TEN=1
  • mesurer le temps start:
    • spécifier qu’on veut détecter un front descendant: EDG3B:EDG3A = ’10’
    • surveiller le drapeau C3F dans TFLG1
    • quand ce bit devient actif, stocker le contenu de TC3H:L en mémoire
          • MOVW TC3, start
    • faire une remise-à-zéro de C3F en lui écrivant un ‘1’ dans TFLG1 avec MOVB
  • mesurer le temps stop:
    • spécifier qu’on veut détecter un front montant: EDG3B:EDG3A = ’01’
    • surveiller le drapeau C3F dans TFLG1, et quand il devient actif, stocker le contenu de TC3H:L en mémoire
          • MOVW TC3, stop
    • calculer la différence, stop – start, et la longueur d’impulsion du signal,

Ls = (stop - start)Tc

GPA770: Microélectronique appliquée

Éric Granger

c 3 3 capter des entr es ic8
C.3(3) Capter des entrées (IC)
  • Cas 2: mesurerla période (Ts) pour un signal sur le canal 4 avec un résolution de 0.5 µsec, et avec un horloge de 8MHz
  • fixer Tc = 0.5μsec (alors PR[2:0]=‘010’ dans TSCR2) et TEN=1
  • configurer le canal 4 en entrée dans TIOS
  • mesurer le temps start:
    • spécifier qu’on veut détecter un front descendant: EDG3B:EDG3A = ’10’
    • surveiller le drapeau C4F dans TFLG1
    • quand ce bit devient actif, stocker le contenu de TC4H:L en mémoire
          • MOVW TC4, start
  • mesurer le temps stop:
    • faire une remise-à-zéro de C4F en lui écrivant un ‘1’ dans TFLG1 (MOVB)
    • surveiller le drapeau C4F dans TFLG1, et quand il devient actif, stocker le contenu de TC4H:L en mémoire
          • MOVW TC4, stop
  • calculer la différence, stop – start, et la période du signal:

Ts = (stop - start) Tc

GPA770: Microélectronique appliquée

Éric Granger

c 3 3 capter des entr es ic9

MAIN

-initialize

TIMER_INIT

MEAS_PER

C.3(3) Capter des entrées (IC)
  • Exemple: code pourmesurer la périoded’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 msec

GPA770: Microélectronique appliquée

Éric Granger

c 3 3 capter des entr es ic10
C.3(3) Capter des entrées (IC)
  • Exemple: diagramme de flots de données

TSCR1

TSCR2

GPA770: Microélectronique appliquée

Éric Granger

c 3 3 capter des entr es ic11
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 montant

TIOS_IN equ $00 ;choisir le canal comme IC

TSCR1_IN equ $80 ;activer le compteur TEN

CLR_CH2 equ $04 ;masque RAZ du drapeau canal 2

;*************************************************

; Programme principale

ORG $0800

EDGE_1: ds.w 1 ;variables

PERIOD: 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

GPA770: Microélectronique appliquée

Éric Granger

c 3 3 capter des entr es ic12
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

GPA770: Microélectronique appliquée

Éric Granger

c 3 3 capter des entr es ic13
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

GPA770: Microélectronique appliquée

Éric Granger

c 3 3 capter des entr es ic14
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 lorsde la

soustraction)

GPA770: Microélectronique appliquée

Éric Granger

c 3 3 capter des entr es ic15
C.3(3) Capter des entrées (IC)
  • Calcule du temps écoulé entre 2 événements:

cas 3: n débordements

t = (stop-start) + nx 216

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

t = nx 216

GPA770: Microélectronique appliquée

Éric Granger

sommaire de la section c 33
Sommaire de la section C.3

C.3 Module de temporisation:

  • Concepts fondamentaux
  • Module de temporisation standard (TIM)
  • Capter des entrées (IC) − saisie des paramètres d’un signal
  • Comparer des sorties (OC) − génération de signaux précis
  • Accumuler des impulsions (PA)

GPA770: Microélectronique appliquée

Éric Granger

c 3 4 comparer des sorties oc
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élai
      • signal répétitif selon une certaine fréquence et cycle de service
      • signal dont la longueur d’impulsion varie comme un PWM (Pulse Width Modulation)

GPA770: Microélectronique appliquée

Éric Granger

c 3 4 comparer des sorties oc1
C.3(4) Comparer des sorties (OC)

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

GPA770: Microélectronique appliquée

Éric Granger

c 3 4 comparer des sorties oc2
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 PTndu 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

GPA770: Microélectronique appliquée

Éric Granger

c 3 4 comparer des sorties oc3
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é.

GPA770: Microélectronique appliquée

Éric Granger

c 3 4 comparer des sorties oc4
C.3(4) Comparer des sorties (OC)
  • Lorsque TCnH:TCnL = TCNTH:TCNTL
    • [$004E] TFLG1 – le drapeau CnF du canal n s’active
      • pour une remise à zéro du drapeau, il s’agit d’écrire un ‘1’ au bit CnF à désactiver (et ‘0’ aux autres bits)

GPA770: Microélectronique appliquée

Éric Granger

c 3 4 comparer des sorties oc5
C.3(4) Comparer des sorties (OC)
  • [$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

GPA770: Microélectronique appliquée

Éric Granger

c 3 4 comparer des sorties oc6
C.3(4) Comparer des sorties (OC)
  • Processus général pour OC:
  • configurer le canal en mode OC (TIOS)
  • choisir le type de front désiré avec OMn:OLn (TCTL1-2)
  • fixer les paramètres du compteur binaire (TEN, PR[2:0])
  • calculer NI ≡ le nombre d’incréments du compteur par Ts (période du signal à générer): NI = fc / fs
  • avant chaque événement: stocker au registre TCn la valeur future de temps auquel on veut créer le front:
    • accéder la valeur actuel de TCNT
    • stocker la somme TCNT + α(%) * NI dans TCnH:L
  • après l’événement: effectuer une remise-à-zéro du CnF, en écrivant un ‘1’ au bit correspondant de TFLG1

GPA770: Microélectronique appliquée

Éric Granger

c 3 4 comparer des sorties oc7
C.3(4) Comparer des sorties (OC)

GPA770: Microélectronique appliquée

Éric Granger

c 3 4 comparer des sorties oc8
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 Clockest 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 msec)
    • 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)

GPA770: Microélectronique appliquée

Éric Granger

c 3 4 comparer des sorties oc9
C.3(4) Comparer des sorties (OC)
  • Exemple: diagramme de flots de données

TSCR1

TSCR2

GPA770: Microélectronique appliquée

Éric Granger

c 3 4 comparer des sorties oc10
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. infini

END

GPA770: Microélectronique appliquée

Éric Granger

c 3 4 comparer des sorties oc11
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 compteur RTS

GPA770: Microélectronique appliquée

Éric Granger

c 3 4 comparer des sorties oc12
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

GPA770: Microélectronique appliquée

Éric Granger

c 3 4 comparer des sorties oc13
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 msec)
    • alors:
      • un période de 1 kHz correspond à NI = 1000 impulsions
      • α= 30%haut (actif):300 impulsions
      • 1 - α= 70% bas (inactif):700 impulsions

GPA770: Microélectronique appliquée

Éric Granger

c 3 4 comparer des sorties oc14
C.3(4) Comparer des sorties (OC)

TSCR1

TSCR2

GPA770: Microélectronique appliquée

Éric Granger

c 3 4 comparer des sorties oc15
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

GPA770: Microélectronique appliquée

Éric Granger

sommaire de la section c 34
Sommaire de la section C.3

C.3 Module de temporisation:

  • Concepts fondamentaux
  • Module de temporisation standard (TIM)
  • Capter des entrées (IC)− saisie des paramètres d’un signal
  • Comparer des sorties (OC)− génération de signaux précis
  • Accumuler des impulsions (PA)

GPA770: Microélectronique appliquée

Éric Granger

c 3 5 accumulateur d impulsions pa
C.3(5) Accumulateur d’impulsions (PA)
  • Fonction: compter le nombre d’impulsions en exploitant le compteur binaire
  • Modes d’opération:
    • 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)
    • 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 PAI
      • il conserve toujours la dernière valeur comptée

GPA770: Microélectronique appliquée

Éric Granger

c 3 5 accumulateur d impulsions pa1
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)

GPA770: Microélectronique appliquée

Éric Granger

c 3 5 accumulateur d impulsions pa2
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:
      • fixer le bit IOS7 = 0 du registre TIOS, afin d’activer la fonction IC du canal 7
      • fixer les bits OM7 et OL7 (mode/level) à ’00’ dans le registre TCTL1, afin de déconnecter le canal OC de la broche externe
      • fixer le bit OC7M7 = 0 dans le registre OC7M (adresse $0042) pour désactiver le masque no 7 en sortie.

GPA770: Microélectronique appliquée

Éric Granger

c 3 5 accumulateur d impulsions pa3
C.3(5) Accumulateur d’impulsions (PA)
  • Registres pertinents:
    • le registre de contrôle (PACTL) à l’adresse $0060
      • fixer PAEN = 1 active la circuiterie connectée à la broche d’entrée PAI pour la détection de fronts
      • fixer 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

GPA770: Microélectronique appliquée

Éric Granger

c 3 5 accumulateur d impulsions pa4
C.3(5) Accumulateur d’impulsions (PA)
  • Registres pertinents:
    • le registre de drapeau (PAFLG) à l’adresse $0061
      • le 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

GPA770: Microélectronique appliquée

Éric Granger

c 3 5 accumulateur d impulsions pa5
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ème
      • quand 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)

GPA770: Microélectronique appliquée

Éric Granger

c 3 5 accumulateur d impulsions pa6
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énements
      • PAMOD = 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 condition
      • PACNT contient le nombre d’impulsions depuis la dernière remise-à-zéro du système
      • si PEDGE = 0, le système permet de compter si PAI = 1
      • si PEDGE = 1, le système permet de compter si PAI = 0

GPA770: Microélectronique appliquée

Éric Granger

c 3 5 accumulateur d impulsions pa7
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.inc

PACNT 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

GPA770: Microélectronique appliquée

Éric Granger