Title: GPA770: Micro
1CONTENU DU COURS
2Partie C - Concepts matériels
- C.1 Configurations matérielles
- architecture du système, mémoire, et ports de/s
- C.2 Gestion dexceptions
- réponses aux remises-à -zéro et aux interruptions
avec le 68HC12 - vecteur et priorité dexceptions, et routines de
service dinterruption - 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.5 Interfaces de communications sérielles
- communications sérielles avec un microcontrôleur
- interfaces sérielles multiples du 68HC12 SCI et
SPI
3Sommaire de la section C.1
- C.1 Configurations matérielles
- Architecture du système 68HC12
- Sous-système de mémoire
- Ports dentrée/sortie
4C.1(1) Architecture du système
- Caractéristiques du 68HC12
- introduit au marché en 1997 évolution plus
performante et versatile (instructions, modes
dadressage, etc.) du 68HC11 - microcontrĂ´leur avec CPU Ă 16 bits le chemin de
données interne est de 16 bits - horloge de système à 8 MHz générée par un
crystal à 16MHz divisé par 2 - conçu en technologie CMOS la consommation de
puissance est basse - architecture de système un ensemble de modules
interconnecté par un bus interne
5C.1(1) Architecture du système
- Principaux modules dans tous les 68HC12
- CPU12 unité de traitement central à haute
performance de 16 bits - INT module de gestion dinterruption et de RAZ
- MĂ©moire un bloc de registres (512 octets), de la
RAM (1Koctets) et de la EEPROM (variable) - Bus le module LIM - combine les buses de DATA,
dADDR et de CTRL - Périphériques dentrée/sortie
- ports dentrée/sortie
- module de temporisation (TIM) Ă 16 bits
- convertisseur analogique-numérique (ADC) à 8
bits - interfaces de communications sérielles SCI et
SPI
6C.1(1) Architecture du système
- Plusieurs variantes du 68HC12
- différences entre variantes selon
- la structure de la mémoire
- le nombre et partage de canaux dentrée/sortie
- la configuration pour les communications
sérielles - en cours MC68HC912B32 ciblé pour mode circuit
autonome - au laboratoire MC9S12C32 (série 68HCS12 -
introduit au marché en 2002), avec plus de
mémoire interne et une horloge à 25 MHz
7C.1(1) Architecture du système
- MC68HC912B32
- avec composants propres
- mémoire (32 Koctets de Flash EEPROM)
- modulateur de durée dimpulsion (PWM)
- En mode Ă©tendu, les bus ADDR et DATA sont
multiplexés (ports A et B) - pas de ports C et D
8C.1(1) Architecture du système
MC9S12C32
9C.1(1) Architecture du système
- Modes dopération
- 3 modes normaux avec protection de régions
- mode normal circuit autonome
- mode normal Ă©tendu bus DATA de 16 bits
- mode normal Ă©tendu Ă©troit bus DATA de 8 bits
- 5 modes spéciaux
- pour les tests et le développement en usine
- donne daccès aux régions protégées
- Configuration du mode dopération selon 3 broches
externes - BKGD MODB MODA
10C.1(1) Architecture du système
- Mode normal circuit autonome
- BKGD 1 MODB 0 MODA 0
- utilisé quand toutes les ressources (mémoire pour
programmes et variables) sont contenues dans le
microcontrĂ´leur - suppose aucun bus externe ADDR ou DATA
- les ports A, B, C et D peuvent servir de GPIOs
- ces ports parallèles font 1 octet chaque
11C.1(1) Architecture du système
- Mode dopération normal étendu
- BKGD 1 MODB 0 MODA 1
- utilisé quand la mémoire interne nest pas
suffisante pour lapplication - les ports A et B forment un ADDR Ă 16 bits
- les ports C et D forment un DATA Ă 16 bits
- remarque C et D sont utilisés pour DATA car le
CPU12 lit/Ă©crit 2 octets (16 bits) Ă la fois,
alignée sur les adresses paires...
12C.1(1) Architecture du système
- Mode dopération normal étendu étroit
- BKGD 1 MODB 1 MODA 1
- aussi utilisé quand la mémoire interne nest pas
suffisante pour lapplication - les ports A et B forment un ADDR Ă 16 bits
- le port C forme un DATA Ă 8 bits
- les donnĂ©es de 16 bits sont transfĂ©rĂ©es 1 octet Ă
la fois le MSB premier, et ensuite le LSB - ladresse est auto incrémentée pour le LSB
- le port D peut servir de GPIOs
13C.1(1) Architecture du système
- Interface - broches dentrées/sorties
- boîtiers de puces pour la famille 68HC12 sont
disponibles sous plusieurs formes - entre 80 et 112 broches, dont la fonction est
partagée selon le mode dopération - pour un circuit ciblé autonome buses ADDR et
DATA sont multiplexés pour fonctionner en mode
Ă©tendu - types de broches
- alimentation tension ou de référence Vxx
- ports Pxx
- contrĂ´le externe XTAL, etc.
14Sommaire de la section C.1
- C.1 Configurations matérielles
- Architecture du système 68HC12
- Sous-système de mémoire
- Ports dentrée/sortie
15C.1(2) Sous-système de mémoire
- Modèle général liste adressable de registres
16C.1(2) Sous-système de mémoire
- Capacité dune mémoire
- largeur de mémoire (n)
- correspond au nombre de bits par registre
- N largeur du DATA (N pas toujours n)
- longueur de mémoire (M)
- correspond au nombre de registres quon peut
adresser - M 2m, oĂą m largeur du ADDR
- capacité largeur x longueur n x M bits
17C.1(2) Sous-système de mémoire
- Capacité modèle de mémoire du 68HC12
- n 8 bits (1 octet) par registre
- bus DATA (interne) de N 2n 16 bits
- bus ADDR de m 16 bits
- adresses de 0000 Ă FFFF
- donc on peut adresser
- M 216 65, 536 64k registres
- capacité potentielle de mémoire
- C n x M 8 x 64 kbits
18C.1(2) Sous-système de mémoire
- Composants de mémoire interne au 68HC12
- bloc de registres configurations du contrĂ´leur
- RAM variable temporaires
- Flash EEPROM programmes (i.e., séquences
dinstructions) et constantes - Allocation des composants
- dépend du montage spécifique (configuration,
carte, etc.) - chaque composant peut être lié à une autre espace
mémoire sur les bornes 2k ou 4k-octets - Expansion mémoire en mode étendue on peut
allouer un espace adressable Ă un composant
mémoire externe
19C.1(2) Sous-système de mémoire
MC9S12C32
20C.1(2) Sous-système de mémoire
- Bloc de registres
- déf. registres (512 octets) à usage spécial
qui permettent de configurer le 68HC12 - contiennent les valeurs dĂ©faut après une remise Ă
zéro - permettent dactiver un sous-système et de le
configurer pour des tâches spécifiques - Exemples activer le ATD avec le registre ATDCTL2
- ATDCTL2 EQU 0062 déclaration du registre
- ......
- LDAA 10000000 masque pour alimenter
le ATD - STAA ATDCTL2
21C.1(2) Sous-système de mémoire
- Les registres de configuration sont liés à la
mĂ©moire - une adresse spĂ©cifique du bloc est associĂ©e Ă
chacun des registres de configuration, permettant
ainsi - dinterroger (lire) les registres avec LDxx...
- de manipuler (Ă©crire) les registres avec STxx...
- 000001FF adresses pour lensemble des
registres du bloc - Note lusager devrait Ă©tiqueter chaque registre
du bloc, et lui associer son adresse avec la
directive EQU - car ce ne sont pas des mots réservés pour
lassembleur
22Sommaire de la section C.1
- C.1 Configurations matérielles
- Architecture du système 68HC12
- Sous-système de mémoire
- Sous-système de ports
23C.1(3) Sous-système de ports
- définition périphériques permettant la
communication binaire parallèle avec
lenvironnement externe - Chaque port a un côté externe et interne
- vue externe chaque port est un bus de 8 bits
permettant la communication de données avec un
composant externe - vue interne chaque port est un registre qui est
liés à la mémoire (appartient au bloc de
registres)
24C.1(3) Sous-système de ports
- Vue externe
- Concept dentrée/sortie parallèle
- un port de/s est un ensemble de 8 broches quon
peut connecter avec un bus de 8 bits - donc 8 bits peuvent ĂŞtre lues/Ă©crites
simultanément - caractéristique commune au microprocesseurs qui
permet des opérations dentrée/sortie rapides
25C.1(3) Sous-système de ports
- Vue externe
- Le 68HC12 est un système à ports multiples
- A H, J ports de/s dont la fonction dépend du
mode dopération et des configurations - M, S ports pour les modules SCI et SPI
- T port pour le module TIM
- P port pour le module PWM
- AD port pour le module ATD
26C.1(3) Sous-système de ports
27C.1(3) Sous-système de ports
- Vue interne
- Architecture dentrée/sortie liées à la mémoire
- on contrĂ´le un port de/s Ă travers les registres
internes du port, liĂ©s au bloc de registres - les bus DATA, ADDR et CTRL internes servent Ă
contrôler les ports de/s, comme de la mémoire - les instructions LDxx et STxx permettant
daccéder à la mémoire servent aussi à contrôler
les ports de/s
28C.1(3) Sous-système de ports
- Vue interne
- Procédure pour contrôler les ports
dentrée/sortie - données en entrée
- transfert entre fils connectés au port dentrée ?
reg 68HC12 - utilise les instructions pour lire des données de
la mémoire (LDAA, MOVB, etc.) - données en sortie
- utilise les instructions pour écrire des données
à la mémoire (STAA, MOVB, etc.) - transfert entre reg 68HC12 ? fils connectés au
port de sortie
29C.1(3) Sous-système de ports
- La fonction spécifique dun port dépend des
configurations - on configure chaque port comme entrée, sortie, ou
bien bi-directionnel (mixte) - avec un port bi-directionnel (e.g., A, B, P et
T), certains bits sont en entrée, dautres sont
en sortie - les adresses de ports devraient aussi ĂŞtre
étiquetées avec la directive EQU - PORTA EQU 0000 voir le bloc de registres
- DDRB EQU 0003
30C.1(3) Sous-système de ports
- Registres pour configurer un port
- DDRx (Data Direction Register) configure les
bits du port comme entrée (0) ou sortie (1) - PUCR (Pull Up Control Register) permet
dutiliser des résistances intégrées pull-up
pour toutes les broches dun port (applications
dinterface) - RDRIV (Reduced Drive of I/O Line Registers)
permet de réduire la capacité de conduite
(courant) de toutes broches dun port de sortie
31C.1(3) Sous-système de ports
- Exemples configurer les port A et B comme entrée
et sortie - PORTA EQU 0000 voir le bloc de registres
- PORTB EQU 0001
- DDRA EQU 0002
- DDRB EQU 0003
- ORG 4000
- CLRA configurer le PORT A en entrée
- STAA DDRA
- COMA configurer le PORT B en sortie
- STAA DDRB
- Ă©crire au port B
- lire du port A
- END
32C.1(3) Sous-système de ports
- Exemples élimine les résistances pull-ups sur
ports B et C, et réduire le courant sur ports B
et D - PUCR EQU ______ voir le bloc de registres
- RDRIV EQU ______
- ............
- LDAA Ă©limine pull-up sur
A et B - STAA PUCR
- LDAA _____ réduire de conduite sur B
- STAA RDRIV
33C.1(3) Sous-système de ports
- Exemple Feux de circulation
- ORG 0800
- LDAA 00111111 Broches du PORTA en
sortie - STAA DDRA
- MAIN LDAA 00100001 RE et VN actifs au
début - STAA PORTA Active les LEDs
- JSR DELAI3 Sous-routine de délai de 3 sec
- LDAA 00010001 RE et JN actifs
- STAA PORTA Active les LEDs
- JSR DELAI1 Sous-routine de délai de 1 sec
- LDAA 00001100 VE et RN actifs
- STAA PORTA Active les LEDs
- JSR DELAI3 Sous-routine de délai de 3 sec
- LDAA 00001010 JE et RN are actifs
34C.1(3) Sous-système de ports
- Exemple Feux de circulation
- DELAI3 LDY 120 120 fois en boucle externe
- Loop2 LDX 50000 50,000 fois en boucle
interne25 msec - Loop1 DEX décrémente X
- BNE Loop1 boucle interne
- DEY décrémente Y
- BNE Loop2 boucle externe
- RTS retour de la sous-routine
- DELAI1 LDY 40 40 fois en boucle externe
- Loop4 LDX 50000
- Loop3 DEX
- BNE Loop3
- DEY
- BNE Loop4
- RTS