1 / 73

CONTENU DU COURS

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

klaus
Download Presentation

CONTENU DU COURS

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CONTENU DU COURS GPA770: Microélectronique appliquée Éric Granger

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

  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

  4. 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

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

  6. C.3(1) Concepts fondamentaux MC9S12C32 GPA770: Microélectronique appliquée Éric Granger

  7. C.3(1) Concepts fondamentaux PWM/IOC/PTT GPA770: Microélectronique appliquée Éric Granger

  8. 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

  9. C.3(1) Concepts fondamentaux • Caractéristiques fondamentales d’un signal numérique: GPA770: Microélectronique appliquée Éric Granger

  10. 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

  11. 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

  12. 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

  13. C.3(2) Module TIM GPA770: Microélectronique appliquée Éric Granger

  14. C.3(2) Module TIM GPA770: Microélectronique appliquée Éric Granger

  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 (‘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

  16. C.3(2) Module TIM A. Compteur binaire à 16 bits Bus Clock GPA770: Microélectronique appliquée Éric Granger

  17. 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

  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 TOFpour un débordement GPA770: Microélectronique appliquée Éric Granger

  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] GPA770: Microélectronique appliquée Éric Granger

  20. C.3(2) Module TIM A. Compteur binaire à 16 bits GPA770: Microélectronique appliquée Éric Granger

  21. 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

  22. 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

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

  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 GPA770: Microélectronique appliquée Éric Granger

  25. C.3(2) Module TIM B. Canaux d’entées/sorties GPA770: Microélectronique appliquée Éric Granger

  26. 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

  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 TIM • TOI permet de générer un INT de débordement (si le TOF=1) GPA770: Microélectronique appliquée Éric Granger

  28. 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

  29. C.3(2) Module TIM Gestion des interruptions avec le TIM GPA770: Microélectronique appliquée Éric Granger

  30. C.3(2) Module TIM Gestion des interruptions avec le TIM GPA770: Microélectronique appliquée Éric Granger

  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

  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é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

  33. C.3(3) Capter des entrées (IC) • Circuit IC pour un canal n = 0, 1, ..., 7: GPA770: Microélectronique appliquée Éric Granger

  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 GPA770: Microélectronique appliquée Éric Granger

  35. 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

  36. 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

  37. 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

  38. 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

  39. 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

  40. 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

  41. 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

  42. C.3(3) Capter des entrées (IC) • Exemple: diagramme de flots de données TSCR1 TSCR2 GPA770: Microélectronique appliquée Éric Granger

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

  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 GPA770: Microélectronique appliquée Éric Granger

  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 GPA770: Microélectronique appliquée Éric Granger

  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 lorsde la soustraction) GPA770: Microélectronique appliquée Éric Granger

  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) + nx 216 t = (stop-start) + (n-1)x 216 t = nx 216 GPA770: Microélectronique appliquée Éric Granger

  48. 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

  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é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

  50. C.3(4) Comparer des sorties (OC) Circuit OC pour un canal n = 0, 1, .., 7: GPA770: Microélectronique appliquée Éric Granger

More Related