Microcontroleur
Microcontroleur
MOTOROLA
68HC11
P. LECARDONNEL
P. LETENNEUR
GRANVILLE - 2002
LE MICRO CONTROLEUR MC68HC811E2
SOMMAIRE
2) ORGANISATION INTERNE.........................................................................................................................4
19) BIBLIOGRAPHIE.................................................................................................................................... 47
2) ORGANISATION INTERNE.
MODA/ MODB/
LIR VSTBY XTAL EXTAL E IRQ XIRQ/VPPE* RESET
OSC
INTERRUPT
MODE CONTROL
LOGIC ROM OR EPROM
CLOCK LOGIC
(SEE TABLE)
PERIODIC INTERRUPT
TIMER
COP
EEPROM
SYSTEM
M68HC11 CPU (SEE TABLE)
RAM
PULSE ACCUMULATOR
(SEE TABLE)
MISO
MOSI
OC2
OC3
OC4
SCK
RxD
TxD
PAI
IC1
IC2
IC3
A/D CONVERTER
CONTROL CONTROL
PB7/ADDR15
PB6/ADDR14
PB5/ADDR13
PB4/ADDR12
PB3/ADDR11
PB2/ADDR10
PB1/ADDR9
PB0/ADDR8
STRB/R/W
PD3/MOSI
PD2/MISO
STRA/AS
PD4/SCK
PE7/AN7
PE6/AN6
PE5/AN5
PE4/AN4
PE3/AN3
PE2/AN2
PE1/AN1
PE0/AN0
PA7/PAI
PD1/TxD
PD0/RxD
PA2/IC1
PA1/IC2
PA0/IC3
PD5/SS
3) CONFIGURATION DU µC.
$1000 1000
64-BYTE REGISTER BLOCK
103F
EXT EXT
BOOT BFC0 SPECIAL MODES
BF00
ROM INTERRUPT
VECTORS
BFFF BFFF
5.1) RESET.
Cette broche est bidirectionnelle, elle sert à initialiser le µC mais peut servir à initialiser des circuits
périphériques lors de RESETs déclenchés par le chien de garde.
EXTERNAL RESET. Remise à zéro extérieure. Il faut appliquer un niveau bas sur l'entrée RESET
pendant au moins 8 cycles machine pour que l'Initialisation soit prise en compte.
VDD VDD
VDD
2 4.7 k
IN
MANUAL 4.7 k 1
RESET TO RESET
RESET SWITCH
MC34064 OF M68HC11
4.7 k
GND
1.0 µF 2 3
[3]
IN
1
RESET
MC34164
GND
3
État du µC au RESET :
- Les masques d'interruptions, les structures internes (SPI, SCI, COP et TIMER) sont bloquées et
les bits I et X du CCR sont à 1, ce qui bloque la prise en compte de toutes les interruptions.
STOP STOP
M68HC11 M68HC11
EXTAL XTAL EXTAL XTAL
Rf 10 M R 10M
f
XTAL
R
C1 C2 S
22pF 22pF XTAL
C1 C2
22pF 22pF
Remarque : La consommation du circuit sera d'autant plus faible que la fréquence sera petite, cela
peut être intéressant pour des applications de faible consommation (alimentation autonome).
CRYSTAL
C2 C1
PIN 7
Rf EXTAL
PIN 8
XTAL
M68HC11
MCU
Ce sont les entrées de référence de tension du convertisseur A/N. Si la tension d'alimentation est
correctement stabilisée, on peut utiliser le montage ci-dessous.
V
DD
1K
TO V REFH
OF M68HC11
1 00 nF
TO V REFL
OF M68HC11
6) L'UNITÉ CENTRALE.
6.1) Organisation.
IX INDEX REGISTER X
IY INDEX REGISTER Y
SP STACK POINTER
PC PROGRAM COUNTER
S X H I N Z V C CONDITION CODES
STOP DISABLE
Elle est composée de :
- Deux accumulateurs 8 bits A et B qui peuvent se concaténer pour former un registre 16 bits D (A est l’octet
de poids fort).
b7 b6 b5 b4 b3 b2 b1 b0
CCR S X H I N Z V C
7) JEU D'INSTRUCTIONS.
OPERATIONS ARITHMETIQUES
additions ADD ABA ABX ABY ADCA ADCB ADDA ADDB ADDD
soustractions SUBTRACT SBA SBCA SBCB SUBA SUBB SUBD
comparaisons COMPARE CBA CMPA CMPB CPD CPX CPY
incrémentations INCREMENT INC INCA INCB INS INX INY
décrémentations DECREMENT DEC DECA DECB DES DEX DEY
négations (opposé) NEGATION NEG NEGA NEGB
multiplication-divisions MUL FDIV IDIV
ajustement décimal DAA
OPERATIONS LOGIQUES
et AND ANDA ANDB
ou OR ORAA ORAB
ou exclusif EXCLUSIVE OR EORA EORB
complémentations COMPLEMENT COM COMA COMB
décalages ARITHMETIC SHIFT ASL ASLA ASLB ASLD ASR ASRA ASRB
LOGICAL SHIFT LSL LSLA LSLB LSLD LSR LSRA LSRB LSRD
rotations ROTATE ROL ROLA ROLB ROR RORA RORB
mise à 0 CLEAR CLR CLRA CLRB
tests BIT TEST BITA BITB TST TSTA TSTB
TRANSFERTS DE DONNEES
chargements de registres LOAD LDAA LDAB LDD LDS LDX LDY
stockages de registres STORE STAA STAB STD STS STX STY
transferts de registres TRANSFER TAB TBA TPA TAP TSX TSY TXS TYS
échange de registres EXCHANGE XGDX XGDY
sauvegardes dans la pile PUSH PSHA PSHB PSHX PSHY
restitution à partir de la pile PULL PULA PULB PULX PULY
MANIPULATIONS DE BITS
forçage de bits BIT CLEAR BCLR
BIT SET BSET
tests de bits BRANCH IF BIT CLEAR BRCLR
BRANCH IF BIT SET
BRSET
contrôle des bits du CCR CLEAR / SET CLC CLI CLV SEC SEI SEV
TESTS ET BRANCHEMENTS
BRANCH IF BCC BCS BVC BVS BEQ BNE BMI BPL
BGT BLE BGE BLT BHI BLS BHS BLO
DIVERS
BSR JSR JMP BRA BRN RTS RTI
NOP STOP SWI TEST WAI
C
LSLB Logical Shift Left B b7 b0
B INH 58 — 2 — — — — ∆ ∆ ∆ ∆
0
8.1.2) Syntaxe.
MNEMONIQUE
8.1.3) Exemples.
INCA * incrémentation de l’accumulateur A
ABX * addition de l’accumulateur B et du registre d’index X (résultat dans X)
NOP * aucune opération (temporisation)
8.2) Adressage immédiat.
8.2.1) Description.
L'instruction porte sur une valeur constante indiquée immédiatement après le mnémonique.
8.2.2) Syntaxe.
MNEMONIQUE #constante
8.2.3) Exemples.
Maxi EQU 100
LDAA #255 * charge $FF dans l’accumulateur A
LDD #Maxi * charge $0064 dans le registre D
8.3) Adressages direct et étendu.
8.3.1) Description.
L'instruction porte sur le contenu de l'adresse mentionnée après le mnémonique.
L'adressage direct permet d'accéder au contenu des adresses $0000 à $00FF (le poids fort est
obligatoirement $00).
L'adressage étendu permet d'accéder à l'intégralité du plan mémoire ($0000 à $FFFF).
L'assembleur utilise le mode d'adressage adapté :
- valeur précisée < 256 : adressage direct
- valeur précisée ≥ 256 : adressage étendu
8.3.2) Syntaxe.
MNEMONIQUE Adresse
8.3.3) Exemples.
PORTB EQU $1004
VARIABLE EQU $0010
LDAB VARIABLE * charge la variable dans B (adressage direct)
STAB PORTB * stocke le contenu de B sur le PortB (adressage étendu)
8.4) Adressage relatif.
8.4.1) Description.
Ce mode d'adressage est utilisé pour les branchements à la suite de tests.
Il précise le déplacement à effectuer pour déterminer l'adresse de la prochaine instruction à
exécuter. Le déplacement est une valeur signée (-128 à +127).
Si le résultat du test est positif
alors il y a branchement à l'adresse de destination précisée
sinon l'instruction suivante est exécutée.
8.4.2) Syntaxe.
MNEMONIQUEduTEST EtiquetteDeDestination
8.4.3) Exemples.
8.5.2) Syntaxe.
MNEMONIQUE Constante,X pour le registre d’index X
MNEMONIQUE Constante,Y pour le registre d’index Y
8.5.3) Exemples.
Decalage EQU 10
ORG $F800
LDX #$1000
LDY #100
LDAB 0,X * charge dans B le contenu de l’adresse $1000 (Port A)
LDAA 4,X * charge dans A le contenu de l’adresse $1004 (Port B)
STD Decalage,Y * stocke le contenu de D à l’adresse $006E et $006F
8.6) Manipulation de bits.
8.6.1) Forçage de bits.
8.6.1.1) Description.
Il s’agit de 2 instructions permettant de mettre à 0 ou 1 un ou plusieurs bits d'un octet de l'espace
mémoire. Elles sont le plus souvent utilisées pour positionner des bits des registres du µC.
8.6.1.2) Syntaxe.
BSET adresse,#masque pour mettre à 1
ou BCLR adresse,#masque pour mettre à 0
8.6.1.4) Masque.
Le masque permet d'identifier le ou les bits à forcer. C'est une valeur constante, il est donc spécifié
avec le symbole immédiat : #
8.6.1.5) Exemples.
Les modes d'adressage et le masque ont été décrit pour les instructions de forçage de bits.
8.6.2.2) Syntaxe.
BRSET adresse,#masque,EtiquetteDuBranchement
pour le test de bits à 1
ou BRCLR adresse,#masque,EtiquetteDuBranchement
pour le test de bits à 0
8.6.2.3) Exemples.
LDX #$1000
Attente BRSET 0,X,#4,Attente
BRCLR 3,X,#129,Attente
L’instruction BRSET boucle sur elle même tant que le bit 2 (masque = % 0000 0100) du registre
d’adresse $1000 (PortA) est à 1
L’instruction BRCLR boucle à l’étiquette Attente tant que les bits 7 et 0 (masque = % 1000 0001) du
registre d’adresse $1003 (PortC) sont à 0
Ces instructions permettent donc d’attendre que PA2 passe à 0, PC7 passe à 1 et PC0 passe à 1.
Port A : les broches PA7 à PA0 sont utilisées conjointement par le Timer
Le sens de PA7 et PA3 est défini par les bits DDRA7 et DDRA3 du registre PACTL
PACTL DDRA7 - - - DDRA3 - - - $1026
Reset 0 - - - 0 - - -
Sens S S S S S S S S
PORTB PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0 $1004
Reset 0 0 0 0 0 0 0 0
Le sens des broches PC7 à PC0 est défini par le registre DDRC
DDRC DDRC7 DDRC6 DDRC5 DDRC4 DDRC3 DDRC2 DDRC1 DDRC0 $1007
Reset 0 0 0 0 0 0 0 0
Port D : les broches PD5 à PD0 sont utilisées conjointement par les liaisons SPI et SCI
Le sens des broches PD5 à PD0 est défini par le registre DDRD
DDRD - - DDRD5 DDRD4 DDRD3 DDRD2 DDRD1 DDRD0 $1009
Reset 0 0 0 0 0 0
Port E : les broches PE7 à PE0 sont utilisées conjointement par le CAN. Elles peuvent être utilisées
simultanément comme des entrées logiques.
Sens E E E E E E E E
PORTE PE7 PE6 PE5 PE4 PE3 PE2 PE1 PE0 $100A
Reset E E E E E E E E
Remarques:
• A l’initialisation le registre de données PORTX peut contenir n'importe quelle valeur, donc il faut
l’initialiser avant le registre de direction DDRX pour éviter d'avoir sur le port n'importe quelle
valeur.
PE0
AN0 VRH
8-BIT CAPACITIVE DAC
WITH SAMPLE AND HOLD
PE1
VRL
AN1
PE2
AN2 SUCCESSIVE APPROXIMATION
REGISTER AND CONTROL
PE3
AN3 RESULT
ANALOG
MUX
PE4
AN4
PE5
AN5
INTERNAL
DATA BUS
PE6
AN6
SCAN
MULT
CCF
CD
CC
CB
CA
PE7
AN7
ADCTL A/D CONTROL
ADR1 A/D RESULT 1 ADR2 A/D RESULT 2 ADR3 A/D RESULT 3 ADR4 A/D RESULT 4
- Si MULT=0 : l'entrée définie par les bits CD-CA est convertie 4 fois et les 4 résultats consécutifs
se trouvent dans ADR1, ADR2, ADR3 et ADR4.
- Si MULT=1: Le groupe d'entrées défini par CD et CC est converti et les résultats se trouvent
dans ADR1, ADR2, ADR3 et ADR4.
E CLOCK
12 E CYCLES 4 2 2 2 2 2 2 2 CYC
CYCLES CYC CYC CYC CYC CYC CYC CYC END
SAMPLE ANALOG INPUT SUCCESSIVE APPROXIMATION SEQUENCE
SET CC FLAG
CONVERT FIRST CONVERT SECOND CONVERT THIRD CONVERT FOURTH
CHANNEL, UPDATE CHANNEL, UPDATE CHANNEL, UPDATE CHANNEL, UPDATE
0 ADR1 32 ADR2 64 ADR3 96 ADR4 128 — E CYCLES
10.4) Registres.
b7 b6 b5 b4 b3 b2 b1 b0
OPTION ADPU CSEL - - - - - - $1039
Reset 0 0 0 1 0 0 0 0
b7 b6 b5 b4 b3 b2 b1 b0
ADCTL CCF 0 SCAN MULT CD CC CB CA $1030
Reset 1 0 1 1 1 1 1 1
b7 b6 b5 b4 b3 b2 b1 b0
ADR1 R7 R6 R5 R4 R3 R2 R1 R0 $1031
b7 b6 b5 b4 b3 b2 b1 b0
ADR2 R7 R6 R5 R4 R3 R2 R1 R0 $1032
b7 b6 b5 b4 b3 b2 b1 b0
ADR3 R7 R6 R5 R4 R3 R2 R1 R0 $1033
b7 b6 b5 b4 b3 b2 b1 b0
ADR4 R7 R6 R5 R4 R3 R2 R1 R0 $1034
C'est une liaison de type série synchrone fonctionnant en full duplex. Elle permet de communiquer
avec d'autres microcontrôleurs ou circuits SPI. Elle est utilisée en général pour simplifier le routage du circuit
imprimé d'un Objet Technique. Elle est utilisée pour de faibles distances.
11.1) Caractéristiques.
• 4 Fils de communication.
• Le µC peut être Maître ou Esclave.
• Vitesse maximale en Maître 1,05 MHz.
• Vitesse maximale en Esclave 2,1 MHz.
• Polarité et Phase de l'horloge programmables.
11.2) Le bus.
Il utilise quatre broches du port D.
MAITRE ESCLAVE
MOSI MOSI
Le contenu du registre de données du maître est transféré dans le registre de données de l'esclave
et le registre de données de l'esclave est transféré dans le registre de données du maître, bit après bit. Le
transfert est synchronisé par l'horloge du maître.
SCK CYCLE # 1 2 3 4 5 6 7 8
SCK (CPOL = 0)
SCK (CPOL = 1)
SAMPLE INPUT
MSB 6 5 4 3 2 1 LSB
(CPHA = 0)DATA OUT
SAMPLE INPUT
MSB 6 5 4 3 2 1 LSB
(CPHA = 1) DATA OUT
SS (TO SLAVE)
MISO
MOSI SLAVE #0
MC68HC11
SCK
SS VDD
MISO
MOSI
SCK
SS
MASTER MC68HC11
PORT 0
PORT 1
PORT 2
PORT 3
MOSI
MOSI
MOSI
MISO
MISO
MISO
SCK
SCK
SCK
SS
SS
SS
L’utilisation de la liaison SPI nécessite le recours aux interruptions. Voir le chapitre correspondant.
MCU INTERNAL
S MISO
CLOCK
PD2
M
SPR0
SS
PD5
DWOM
MSTR
SPE
MSTR
SPI SPE
CONTROL
WCOL
MODF
SPIF
DWOM
MSTR
CPHA
CPOL
SPR1
SPR0
SPIE
SPE
8
SPI STATUS REGISTER SPI CONTROL REGISTER
8 8
b7 b6 b5 b4 b3 b2 b1 b0
SPDR R7/T7 R6/T6 R5/T5 R4/T4 R3/T3 R2/T2 R1/T1 R0/T0 $102A
Reset X X X X X X X X
Si le µC est maître:
- l'écriture dans ce registre provoque la transmission de données sur le bus.
- la donnée lue après un transfert est celle envoyée par l'esclave.
Si le µC est esclave:
- L'écriture dans ce registre pré positionne la donnée à envoyer au maître lors du prochain
transfert.
- La donnée lue après un transfert est celle envoyée par le maître.
La liaison série SCI est une interface série asynchrone de type START / STOP. Elle permet
d'effectuer des communications avec d'autres systèmes ou objets techniques sur de longues distances. Elle
dispose des fonctionnalités suivantes:
- Fonctionnement en Full Duplex, c'est à dire émission et réception de données en même temps.
- Transmission et réception de données (compatibles avec la norme RS232 en utilisant une fonction
d’adaptation de niveaux).
- 32 Vitesses de transmission et de réception disponibles.
- Contrôle des erreurs de transmission et de réception.
- Mode réveil automatique lors de la réception de signaux valides.
- 4 Sources d'interruptions possibles.
-
L’utilisation de la liaison SCI nécessite le recours aux interruptions. Voir le chapitre correspondant.
Etat de repos 8 ou 9 bits de données
ligne libre (Idle line) D0 D1 D2 D3 D4 D5 D6 D7 D8 D0
INTERNAL BUS
IDLE
LINE
SCI
Rx
Rx REG FULL INTERRUPT
OVERRUN
INTERRUPT
Tx
COMPLETE
Tx
REG EMPTY
$102E TDRE TC RDRF IDLE OR NF FE — SCSR
TE SBK RE RWU
M M
RATE GENERATOR
8 7 6 1 0 TxD/
TxD DATA SHIFT REG
PD1
$102F 7 6 5 4 3 2 1 0 SCDR
INTERNAL BUS
b7 b6 b5 b4 b3 b2 b1 b0
SCDR R7/T7 R6/T6 R5/T5 R4/T4 R3/T3 R2/T2 R1/T1 R0/T0 $102F
Reset X X X X X X X X
b7 b6 b5 b4 b3 b2 b1 b0
BAUD 0 0 SCP1 SCP0 0 SCR2 SCR1 SCR0 $102B
Reset 0 0 0 0 0 X X X
b7 b6 b5 b4 b3 b2 b1 b0
SCCR1 R8 T8 0 M WAKE 0 0 0 $102C
Reset X X 0 0 0 0 0 0
b7 b6 b5 b4 b3 b2 b1 b0
SCCR2 TIE TCIE RIE ILIE TE RE RWU SBK $102D
Reset 0 0 0 0 0 0 0 0
b7 b6 b5 b4 b3 b2 b1 b0
SCSR TDRE TC RDRF IDLE OR NF FE 0 $102E
Reset 1 1 0 0 0 0 0 0
• TC : Transmit Complete
1 : Indique que la transmission d'une donnée est complètement terminée et que par conséquent le
registre de transmission est vide. Il est remis à zéro par une lecture du SCSR suivie d'une écriture
dans le SCDR.
0 : La transmission n'est pas complètement terminée.
• OR : Overrun Error
1 : Indique une erreur de débordement du récepteur. Ceci se présente lorsqu'une donnée arrive
alors que la précédente n'a pas encore été lue. Il est remis à zéro par une lecture du SCSR suivie
d'une lecture du registre SCDR.
• NF : Noise Flag
1 : Indique la présence de bruit sur la ligne RDI. Il est remis à zéro par une lecture du SCSR suivie
d'une lecture du registre SCDR.
• FE : Framing error.
1 : Indique une erreur de format caractérisée par la non détection de bit de stop. Il est remis à zéro
par une lecture du SCSR suivie d'une lecture du registre SCDR. La réception est bloquée tant que
ce bit n'est pas remis à zéro.
Il est implanté autour d'un compteur 16bits TCNT (FREE RUNNING COUNTER) incrémenté
automatiquement par un pré diviseur (la pré division peut être de 1, 2, 4 ou 16 suivant les valeurs des bits
PR1 et PR0 du registre TMSK2) . Ce compteur, associé aux registres de comparaison de sortie (Output
Compare Register : OCR), aux registres de comparaison d'entrée 16 bits (Input Capture Register : ICR)
eux-mêmes en liaison avec les broches ICX et OCX, plusieurs registres de contrôle (TCTL2, CFORC,
OC1M, OC1D, TCTL1, TMSK1 et TMSK2) et aux deux registres d'états (TFLG1 et TFLG2), permet de
réaliser un grand nombre de fonctions:
• Générateur de créneaux de PWM (Pulse Width Modulation).
• Compteur d'événements.
• Mesure de temps.
• Générateur d'interruptions cycliques.
PRESCALER
DIVIDE BY TCNT(HI) TCNT(LO) TOI
1, 4, 8, OR 16 9
MCU 16-BIT FREE RUNNING TOF
E CLK PR1 PR0 COUNTER
TAPS FOR RTI, INTERRUPT REQUESTS
COP WATCHDOG, AND (FURTHER QUALIFIED BY
PULSE ACCUMULATOR I BIT IN CCR)
16-BIT TIMER BUS TO PULSE
ACCUMULATOR
OC1I PIN
8 FUNCTIONS
16-BIT COMPARATOR = OC1F
PA7/OC1/
TOC1 (HI) TOC1 (LO) FOC1 BIT 7
PAI
OC2I
7
16-BIT COMPARATOR = OC2F
PA6/OC2/
TOC2 (HI) TOC2 (LO) BIT 6
FOC2 OC1
OC3I
6
16-BIT COMPARATOR = OC3F
PA5/OC3/
TOC3 (HI) TOC3 (LO) BIT 5
FOC3 OC1
OC4I
5
16-BIT COMPARATOR = OC4F
PA4/OC4/
TOC4 (HI) TOC4 (LO) BIT 4
FOC4 OC1
I4/O5I
4
OC5
16-BIT COMPARATOR =
PA3/OC5/
TI4/O5(HI) TI4/O5 (LO) I4/O5F BIT 3
FOC5 IC4/OC1
16-BIT LATCHCLK IC4
CFORC
I4/O5 FORCE OUTPUT IC1I
COMPARE 3
16-BIT LATCH CLK IC1F BIT 2 PA2/IC1
TIC1 (HI) TIC1 (LO) IC2I
2
16-BIT LATCH CLK IC2F BIT 1 PA1/IC2
TIC2 (HI) TIC2 (LO) IC3I
1
16-BIT LATCH CLK IC3F BIT 0 PA0/IC3
TIC3 (HI) TIC3 (LO)
TFLG 1 TMSK 1 PORT A
STATUS INTERRUPT PIN CONTROL
FLAGS ENABLES
CAPTURE COMPARE BLOCK
b7 b6 b5 b4 b3 b2 b1 b0
TCTL2 EDG4B EDG4A EDG1B EDG1A EDG2B EDG2A EDG3B EDG3A $1021
Reset 0 0 0 0 0 0 0 0
La valeur des bits EDGXB et EDGXA détermine la configuration des entrées de capture.
b7 b6 b5 b4 b3 b2 b1 b0
CFORC FOC1 FOC2 FOC3 FOC4 FOC5 0 0 0 $100B
Reset 0 0 0 0 0 0 0 0
Ce registre permet de forcer la comparaison OCX sans attendre l'égalité de TCNT et de TOCX, la valeur de
la broche OCX est fonction des bits OMX et OLX du registre TCTL1.
b7 b6 b5 b4 b3 b2 b1 b0
OC1M OC1M7 OC1M6 OC1M5 OC1M4 OC1M3 0 0 0 $100C
Reset 0 0 0 0 0 0 0 0
Ce registre permet de déterminer les bits affectés par la sortie OC1 lors de l'égalité entre le registre TOC1
et le registre TCNT, en conjonction avec le registre OC1D.
b7 b6 b5 b4 b3 b2 b1 b0
OC1D OC1D7 OC1D6 OC1D5 OC1D4 OC1D3 0 0 0 $100D
Reset 0 0 0 0 0 0 0 0
Si le bit OC1MX du registre OC1M est à un, la sortie OCX prendra la valeur du bit OC1DX.
b7 b6 b5 b4 b3 b2 b1 b0
TCTL1 OM2 OL2 OM3 OL3 OM4 OL4 OM5 OL5 $1020
Reset 0 0 0 0 0 0 0 0
La valeur des bits OMX et OLX détermine l'état logique de la sortie OCX, lorsqu'il y a égalité entre TOCX et
TCNT.
b7 b6 b5 b4 b3 b2 b1 b0
TMSK1 OC1I OC2I OC3I OC4I I4/O5I IC1I IC2I IC3I $1022
Reset 0 0 0 0 0 0 0 0
b7 b6 b5 b4 b3 b2 b1 b0
TFLG1 OC1F OC2F OC3F OC4F I4/O5F IC1F IC2F IC3F $1023
Reset 0 0 0 0 0 0 0 0
Tous ces bits sont remis à zéro par écriture d'un 1 logique sur l'indicateur concerné.
b7 b6 b5 b4 b3 B2 b1 b0
TMSK2 TOI RTII PAOVI PAII 0 0 PR1 PR0 $1024
Reset 0 0 0 0 0 0 0 0
PR[1:0] Division
00 1
01 4
10 8
11 16
b7 b6 b5 b4 b3 b2 b1 b0
TFLG2 TOF RTIF PAOVF PAIF - - - - $1025
Reset 0 0 0 0 0 0 0 0
Tous ces bits sont remis à zéro par écriture d'un 1 logique sur l'indicateur concerné.
HIGHEST
PRIORITY
X BIT YES YES
POWER-ON RESET IN CCR XIRQ PIN SET X BIT IN CCR
(POR) SET ? LOW ?
FETCH VECTOR
NO $FFF4, FFF5
NO
COP WATCHDOG
TIMEOUT
(WITH NOCOP = 0)
NO NO
RESET MCU
HARDWARE
NO NO
Y BIT X IN
CCR = 1? YES YES FETCH VECTOR
IC3I = 1 ? TIMER
IC3F ? $FFEA, FFEB
N
NO
NO
N
SET BITS I AND X NO NO
FETCH VECTOR
2A 2B
1B $FFF4, $FFF5
2A 2B
1B
Y FLAG Y FETCH VECTOR
OC2I = 1? OC2F = 1? $FFE6, $FFE7
Y BIT I IN N N
CCR = 1?
N N
ANY I-BIT Y
INTERRUPT STACK CPU
PENDING? REGISTERS
Y FLAG Y FETCH VECTOR
OC4I = 1? OC4F = 1? $FFE2, $FFE3
N
N N
FETCH OPCODE
Y SWI N N
STACK CPU ANY
INSTRUCTION? N
REGISTERS INTERRUPT
PENDING? Y Y
FLAG FETCH VECTOR
PAII = 1? PAIF = 1?
N $FFDA, $FFDB
SET BIT I IN CCR Y
N N
FETCH VECTOR Y RTI SET BIT I IN CCR
$FFF6, $FFF7 INSTRUCTION?
FLAGS
Y Y FETCH VECTOR
SPIE = 1? SPIF = 1? OR
MODF = 1? $FFD8, $FFD9
N RESOLVE INTERRUPT
RESTORE CPU PRIORITY AND FETCH
REGISTERS VECTOR FOR HIGHEST N N
FROM STACK EXECUTE THIS PENDING SOURCE
INSTRUCTION SEE FIGURE 5–3
SCI
Y FETCH VECTOR
INTERRUPT?
SEE FIGURE $FFD6, $FFD7
5-4
N FETCH VECTOR
1A $FFF2, $FFF3
END
• Il met le bit I ou X du CCR a 1 pour empêcher la prise en compte d'une autre interruption.
• Il charge le compteur programme PC avec le vecteur correspondant à l'interruption.
• Il exécute le programme d'interruption.
• Lorsqu'il rencontre l'instruction RTI, il restitue le contexte en dépilant le contenu de tous les registres.
• Il reprend le programme où il avait été interrompu.
S'il y a au moins deux sources locales d'interruptions autorisées, étant donné que le µC ne dispose que d'un
seul vecteur d'interruption pour la SCI, le programme d'interruption lors des premières instructions devra
déterminer qu'elle est la source locale qui a déclenché l'interruption par une lecture du registre d'état
SCSR($102E).
BEGIN
FLAG Y
RDRF = 1?
Y Y Y
OR = 1? RIE = 1? RE = 1?
N N N
Y Y Y
TDRE = 1? TIE = 1? TE = 1?
N N N
Y Y
TC = 1? TCIE = 1?
N N
Y Y Y
IDLE = 1? ILIE = 1? RE = 1?
N N N
NO
VALID SCI REQUEST
VALID SCI REQUEST
CCR Local
Vector Address Interrupt Source
Mask Bit Mask
FFC0, C1 – FFD4, D5 Reserved — —
FFD6, D7 SCI Serial System I
• SCI Receive Data Register Full RIE
• SCI Receiver Overrun RIE
• SCI Transmit Data Register Empty TIE
• SCI Transmit Complete TCIE
• SCI Idle Line Detect ILIE
FFD8, D9 SPI Serial Transfer Complete I SPIE
FFDA, DB Pulse Accumulator Input Edge I PAII
FFDC, DD Pulse Accumulator Overflow I PAOVI
FFDE, DF Timer Overflow I TOI
FFE0, E1 Timer Input Capture 4/Output Compare 5 I I4/O5I
FFE2, E3 Timer Output Compare 4 I OC4I
FFE4, E5 Timer Output Compare 3 I OC3I
FFE6, E7 Timer Output Compare 2 I OC2I
FFE8, E9 Timer Output Compare 1 I OC1I
FFEA, EB Timer Input Capture 3 I IC3I
FFEC, ED Timer Input Capture 2 I IC2I
FFEE, EF Timer Input Capture 1 I IC1I
FFF0, F1 Real-Time Interrupt I RTII
FFF2, F3 IRQ (External Pin) I None
FFF4, F5 XIRQ Pin X None
FFF6, F7 Software Interrupt None None
FFF8, F9 Illegal Opcode Trap None None
FFFA, FB COP Failure None NOCOP
FFFC, FD Clock Monitor Fail None CME
FFFE, FF RESET None None
MODB/VSTBY
MODA/LIR
STRB/R/W
STRA/AS
PE7/AN7
PE3/AN3
PE6/AN6
PE2/AN2
EXTAL
VRH
VRL
VSS
E
7 6 5 4 3 2 52 51 50 49 48 47
XTAL 8 1 46 PE5/AN5
PC0/A0/D0 9 45 PE1/AN1
PC1/A1/D1 10 44 PE4/AN4
PC2/A2/D2 11 43 PE0/AN0
PC3/A3/D3 12 42 PB0/A8
PC4/A4/D4 13 41 PB1/A9
PC5/A5/D5 14 MC68HC11E2 40 PB2/A10
PC6/A6/D6 15 39 PB3/A11
PC7/A7/D7 16 38 PB4/A12
RESET 17 37 PB5/A13
XIRQ 18 36 PB6/A14
IRQ 19 35 PB7/A15
PD0/RxD 20 34 PA0/IC3
21 22 23 24 25 26 27 28 29 30 31 32 33
PA7/PAI/OC1
PA6/OC2/OC1
PA5/OC3/OC1
PA4/OC4/OC1
PA3/OC5/OC1
VDD
PD4/SCK
PD1/TxD
PA2/IC1
PA1/IC2
PD2/MISO
PD3/MOSI
PD5/SS
17) REFERENCES.
MC 68 HC P 7 11XX B C FN 3 R2
QUALIFICATION LEVEL
MC — FULLY SPECIFIED AND QUALIFIED
XC — PILOT PRODUCTION DEVICE
PC — ENGINEERING SAMPLE
MEMORY TYPE
BLANK — MASKED ROM OR NO ROM
7 — EPROM/OTPROM
8 — EEPROM
MONITOR MASK
NONE — BLANK
B — BUFFALO
TEMPERATURE RANGE
NONE — 0°C TO 70°C
C — – 40°C TO 85°C
V — – 40°C TO 105°C
M — – 40°C TO 125°C
PACKAGE TYPE
FN — 44/52/68/84-PIN PLCC
FS — 44/52/68/84-PIN CLCC
FU — 64/80-PIN QFP
FB — 44-PIN QFP
PV — 112-PIN TQFP
PU — 80/100-PIN TQFP
PB — 52-PIN TQFP
P — 40/48-PIN DIP
S — 48-PIN SDIP
MC68HC11K4 — 24K 640 768 $FF > 1 Mbyte memory space, PWM, CS, 84-Pin
MC68HC711K4 24K — 640 768 $FF One-Time Programmable Version of ’K4
MC68HC11L6 — 16K 512 512 $0F Like ’E9 with more ROM and more I/O, 64/68
MC68HC711L6 16K — 512 512 $0F One-Time Programmable Version of ’L4
1. The EEPROM is relocatable to the top of any 4 Kbyte memory page. Relocation is done with the upper four bits of
the CONFIG register.
2. CONFIG register values in this table reflect the value programmed prior to shipment from Motorola.
3. At the time of this printing a change was being considered that would make this value $0F.
19) BIBLIOGRAPHIE.