Professional Documents
Culture Documents
CAN
ou
8 Entres
PORT E
7
RS232
Rx
Tx
4 E/S
PORT A
68 HC811 E2
0
1
2
3
4
5
7
6
5
4
3
2
1
0
1 Entre/Sortie
3 Sorties
1 Entre/Sortie
3 Entres
PORT D
PORT B
PORT C
0
8 Entres /Sorties
8 Sorties
0
Cours 68HC11
1.
a.
Accumulateurs et Instructions
b.
MAPPING 68HC11
c.
d.
Informatique Industrielle
INTRODUCTION:
PORTS du 68HC11
68 HC 811 E2
- 1 - ECRITURE du PROGRAMME :
2 - PROGRAMMATION DE LEEPROM :
6
6
6
e.
LES INTERRUPTIONS
f.
DIRECTIVES ASSEMBLEUR
g.
h.
i.
10
SORTIES OU CABLE
11
68HC11 et ADRESSAGE
IMMEDIAT:
DIRECT:
ETENDU:
INDEXE:
INHERENT:
j.
12
12
12
12
12
12
68HC11 et INTERRUPTIONS
2.
13
I)
a)
b)
Le port A :
description de linterface :
les registres associs :
14
14
14
15
II)
a)
b)
16
16
16
III)
a)
b)
c)
19
19
19
19
IV)
a)
b)
Le port D :
Description de linterface :
Les registres associs :
20
20
20
V)
le port E :
21
3.
22
a.
Description de linterface :
22
b.
22
c.
M. EBEL F.
22
23
23
24
1
Cours 68HC11
Informatique Industrielle
le registre SCCR1 :
le registre SPCR :
le registre SCCR2 :
25
25
26
fonctionnement de linterface :
fonctionnement en mission :
fonctionnement en rception :
27
27
28
d.
4.
a.
Description de linterface :
b.
29
Description de la conversion :
c.
29
d.
e.
29
30
30
31
Exemple dutilisation :
5.
31
LE TIMER
a.
32
Description de linterface :
b.
29
32
32
33
33
33
34
35
35
36
37
37
c.
d.
e.
Entres de captures :
les registres TMSK1 et TFLG1 :
Le registre TCTL2 :
38
39
39
Exemples :
Mesure dune priode arrivant sur PA0 (IC3):
Mesure de largeur dimpulsions :
40
40
40
Sorties de comparaison :
Les registres de comparaisons TOC1 TOC5 :
le registre TMSK1 :
le registre TFLG1 :
le registre TCTL1 :
Le registre OC1M :
Le registre OC1D :
Le registre CFORC :
41
41
42
42
42
43
44
45
f.
M. EBEL F.
Cours 68HC11
Informatique Industrielle
1. INTRODUCTION:
a. Accumulateurs et Instructions
b7
b0
b7
b0
b7
b7
b0
B15
b0
B15
b0
B15
b0
Masque
XIRQ
B15
CARRY
b0
ZERO
Masque IRQ
CARRY
CCR
STOP
NEGATIF
OVERFLOW
M. EBEL F.
Cours 68HC11
Informatique Industrielle
b. MAPPING 68HC11
$ 0000
256 octets
RAM
$00FF
$1000
64 octets
Registres
(Port, DDR ...)
$103F
$B600
512 octets
EEPROM data
$B7FF
$BF40
192 octets
ROM du boot loader
$BFFF
$F800
2048 octets
EEPROM si
68FC811
$FFFF
MODE NORMAL: Aprs un Reset le micro dmarre l'adresse qui est en $FFFE - $FFFF.
MODE BOOT STRAP:
Si aprs un Reset le micro reoit un $FF sur le PORT srie (Tx et Rx non boucls), il dmarre en
$BF40 donc il excute le programme Boot Loader. Celui ci charge en RAM les 256 octets qui arrivent
par la RS232.
Si aprs le Reset, le micro reoit un $00 sur le PORT srie (Tx et Rx boucls), il dmarre en
EEPROM en $B600.
M. EBEL F.
Cours 68HC11
Informatique Industrielle
c. PORTS du 68HC11
CAN
ou
8 Entres
PORT E
7
RS232
Rx
Tx
68 HC811 E2
0
1
2
3
4
5
4 E/S
PORT A
7
6
5
4
3
2
1
0
1 Entre/Sortie
3 Sorties
1 Entre/Sortie
PORT D
PORT B
PORT C
0
8 Sorties
0
8 Entres /Sorties
TOTAL :
12 Entres.
12 Sorties.
14 Entres / Sorties.
M. EBEL F.
3 Entres
Cours 68HC11
Informatique Industrielle
d.
68 HC 811 E2
Il est compatible pin pin avec le 68HC11A1 mais il possde 2K dEEPROM implante de $F800
$FFFF.
- 1 - ECRITURE du PROGRAMME :
Pour que le micro puisse tourner en mode SEUL :
- Il faut initialiser la pile au dbut de la RAM en $00FF par :
LDS #$00FF
- Il faut initialiser le vecteur de Reset en $FFFE et $FFFF . Si DEBPROG est ltiquette du
dbut de programme :
ORG $FFFE
FDB DEBPROG
2 - PROGRAMMATION DE LEEPROM :
En mode BOOT sous PCBUG :
- Changer la valeur du registre BPROT de protection en criture EEPROM ladresse $1035.
Au Reset il y a $1F et il faut mettre $10.
MM $1035
$1F
$10
- Dfinir la zone EEPROM :
EEPROM $F800 $FFFF : Erase before write est autoris.
EVENTUELLEMENT : Si on fait EEPROM ERASE BULK $F800 aprs
avoir dfinit la zone EEPROM la fonction Erase before write est inhibe. La programmation sera
plus rapide
- Charger le programme :
LOADS NOMFICH :
Dure de programmation 20ms : 10ms pour erase + 10 ms pour write par octet.
- Lancer le programme :
Sous PCBUG en mode BOOT : G $F800
En mode seul : Reset
.
M. EBEL F.
Cours 68HC11
Informatique Industrielle
175 Octets
$C3
$C4
$C6
$C7
$C9
$CA
$CC
$CD
$CF
$D0
$D2
$D3
$D5
$D6
$D8
$D9
$DB
$DC
$DE
$DF
$E1
$E2
$E4
$E5
$E7
$E8
$EA
$EB
$ED
$EE
$F0
$F1
$F3
$F4
$F6
$F7
$F9
$FA
$FC
$FD
$FF
3 Octets
Interruption SCI (Srie ASYN)
3 Octets
Interruption SPI (Srie SYN)
3 Octets
Interruption : ENTREE DU COMPTEUR
3 Octets
Interruption : DEBORDEMENT DU COMPTEUR
3 Octets
Interruption : DEBORDEMENT DU TIMER
3 Octets
Interruption : OC5 : COMPARATEUR 5
3 Octets
Interruption : OC4 : COMPARATEUR 4
3 Octets
Interruption : OC3 : COMPARATEUR 3
3 Octets
Interruption : OC2 : COMPARATEUR 2
3 Octets
Interruption : OC1 : COMPARATEUR 1
3 Octets
Interruption : IC3 : ENTREE de CAPTURE 3
3 Octets
Interruption : IC2 : ENTREE de CAPTURE 2
3 Octets
Interruption : IC1 : ENTREE de CAPTURE 1
3 Octets
Interruption temps reel : RTI
3 Octets
Interruption IRQ
3 Octets
Interruption de PCBUG : XIRQ
3 Octets
Interruption de PCBUG : SWI
3 Octets
Interruption CODE ILLEGAL
3 Octets
Interruption COP : CHIEN DE GARDE
3 Octets
Interruption DEFAUT dHORLOGE
Si 2 IT imbriques, la pile
remonte de 9 + 9 soit 18
octets.
PLANTE de PCBUG
Pour excuter un programme en mode BOOTSTRAP sous contrle de PCBUG11 il faut placer les variables du programme
et la PILE dans la zone de 20 octets :$B0 - $C3. On peut galement exploiter la zone des interruptions qui ne sont pas
valides : $C4 - $FF. La pile utilise 9 octets pour sauvegarder le contexte lors dune interruption et 2 octets pour un SP.
M. EBEL F.
Cours 68HC11
Informatique Industrielle
e. LES INTERRUPTIONS
Exemple :
Initialisation de IRQ en mode BOOT :
ORG $00EE
FCB $7E
FDB ETIQ-SPIRQ
ORG
$FFF2
FDB
ETIQ-SPIRQ
M. EBEL F.
INTERRUPTION
RESET.
Surveillance horloge.
COP (Chien de garde ).
Code opration illgal.
SWI.
XIRQ .
IRQ.
Interruption temps rel.
TIC1.
TIC2.
TIC3.
TOC1.
TOC2.
TOC3.
TOC4.
TOC5.
Dbordement TIMER.
Accu impulsions dbordement.
Accu impulsions entre.
SPI.
SCI.
Cours 68HC11
Informatique Industrielle
f. DIRECTIVES ASSEMBLEUR
Ex:
M. EBEL F.
Cours 68HC11
Informatique Industrielle
M. EBEL F.
10
Cours 68HC11
Informatique Industrielle
h. SORTIES OU CABLE
Les Ports C et D peuvent tre configurs en sorties Drain Ouvert donc en OU CABLE . Dans
ce cas le transistor MOS canal P vers VDD est dsactiv. Il faut alors tirer la sortie vers le + VDD avec
une rsistance. Plusieurs sorties peuvent alors tre relies entre elles.
Attention : Ne pas tirer la sortie par la rsistance de rappel une tension suprieure VDD car le
transistor MOS interne qui est dsactiv, reste physiquement en place et se comporte comme une diode
entre VDD et la sortie.
PORTC : Le bit 5 CWOM du registre PIOC en $1002 mis 1 passe les 8 sorties du PORT C en
OU CABLE . Au reset ce bit est 0 , donc les sorties sont configures normalement.
PORT D : Le bit 5 DWOM du registre SPCR en $ 1028 mis 1 passe les 6 sorties du PORT D en
OU CABLE . Au reset ce bit est 1 , donc les sorties sont en DRAIN OUVERT .
M. EBEL F.
11
Cours 68HC11
Informatique Industrielle
i. 68HC11 et ADRESSAGE
IMMEDIAT:
La donne fait partie de l'instruction. Par exemple si on veut initialiser un registre avec une valeur
donne, on utilisera ce mode d'adressage.
Exemple: LDAA #$4F Le registre A est charg par la valeur en hexadcimal : 4F.
Ce mode est spcifi l'assembleur par l'utilisation du prfixe # avant la donne.
DIRECT:
La donne est une adresse code sur 8 bits, c'est dire comprise entre $00 et $FF donc dans la zone
RAM. Un seul octet est ncessaire pour spcifier l'adresse.
Exemple: STAA $0F Le contenu du registre A est rang l'adresse $0F.
ETENDU:
La donne est une adresse code sur deux octets, c'est dire n'importe o dans l'espace adressable par
le 68HC11 qui a 16 bits d'adresse.
Exemple: STAA $1000 Le contenu du registre A est rang l'adresse $1000
INDEXE:
La donne est une adresse spcifie par le contenu un registre d'index: X ou Y auquel on ajoute une
valeur d'offset contenue dans l'instruction.
Exemple: LDX
#$1000
LDAA 5,X
Le registre A est charg par l'octet de l'adresse $1005.
INHERENT:
La donne n'est pas ncessaire au micro car l'instruction est implicite.
Exemple: TAB Transfert du contenu du registre A vers le registre B.
M. EBEL F.
12
Cours 68HC11
Informatique Industrielle
j. 68HC11 et INTERRUPTIONS
Il existe de nombreuses sources d'interruption pour le 68HC11: 2 entres externes sensibles un tat
bas : IRQ et XIRQ, une interruption par logiciel SWI et un certain nombre de sources internes lies aux
diffrents priphriques qui quipent le circuit (timer, SCI, SPI).
Quand une interruption apparat, le micro termine d'abord l'instruction en cours, tous les registres ainsi
que le compteur ordinal sont sauvegards dans la pile, et le bit I du registre de condition est mis "1",
ce qui interdit toute nouvelle interruption. Seule XIRQ qui est NON MASQUABLE sera traite si elle
intervient pendant une phase d'interruption.
Ensuite le vecteur correspondant l'interruption de plus haute priorit est recherch, et sa valeur
charge dans le compteur ordinal. Le sous programme li l'interruption va donc s'excuter.
Ce programme se termine par l'instruction RTI qui a pour effet de faire excuter les oprations
inverses, savoir restitution des registres, remise "0" du bit I du CCR autorisant la prise en compte de
nouvelles interruptions et chargement du compteur ordinal avec la valeur qu'il avait avant l'interruption,
ce qui fait reprendre le programme l'endroit o il avait t interrompu.
Au reset du systme le bit I du registre CCR est "1", ce qui masque les interruptions. Si on dsire que
les interruptions soient actives, il faudra les autoriser en passant le bit I "0". On utilisera l'instruction:
CLI. Au contraire si on a besoin de les masquer au cours du programme on utilisera l'instruction : SEI.
Pointeur de
pile aprs IT
CCR
A
B
Adresses dcroissantes
X High
X low
YHigh
Y low
PC High
Pointeur de
pile avant IT
PC low
M. EBEL F.
13
Cours 68HC11
Informatique Industrielle
Le port A :
a) description de linterface :
Le port A est un port parallle usage gnral partag avec le TIMER et laccumulateur dimpulsions.
De ce fait, PA0 PA2 sont figes en entre, PA4 PA6 sont figes en sortie et PA7 et PA3 est
bidirectionnel.
Les broches configures en entre sont triggerises, permettant dliminer les dclenchements
multiples lorsquelles sont utilises par le TIMER ou laccumulateur dimpulsions.
Le sens de fonctionnement de PA7 est programm par le bit DDRA7 du registre de contrle de
laccumulateur dimpulsions PACTL.
Le registre PORTA permet lcriture ou la lecture de PA0 PA7.
Remarque :
Si certaines lignes de sortie sont configures pour tre utilises par le TIMER, il est impossible de
modifier leur tat par une criture dans le registre PORTA.
Le rsultat de cette criture est cependant mmoris dans un latch et, lorsque les broches sont libres
par le TIMER, les donnes mmorises sont transfres en sortie.
Mme si certaines lignes sont configures pour tre utilises par le TIMER, leur tat peut toujours tre
lu dans le PORTA.
M. EBEL F.
14
Cours 68HC11
Informatique Industrielle
b) les registres associs :
le registre PORTA :
PA7
PA6
PA5
PA4
PA3
PA2
PA1
PA0
PORTA $1000
Une lecture du contenu de ce registre retourne ltat rel des broches en entre mais donne ltat
prcdemment crit dans le registre pour les bits correspondants des broches de sortie.
Pour envoyer une donne vers le port A, il suffit donc dcrire :
PORTA
EQU
STAA
$1000
PORTA ; la donne est dans laccumulateur A
EQU
LDAA
$1000
PORTA ; la donne se trouve maintenant dans laccumulateur A
Le registre PACTL :
Ce registre 8 bits est accessible en lecture criture. Seul le bit DDRA7 nous intresse dans ce
paragraphe.
Reset
0
DDRA7
0
PAEN
0
PAMOD
0
PEDGE
0
-
0
-
RTR1
0
RTR0
PACTL $1005
Si vous voulez que PA7 soit, par exemple en sortie, il faut crire :
PACTL
EQU
LDAA
ANDA
STAA
M. EBEL F.
$1005
#%10000000 ; on veut mettre DDRA7 en sortie
#%10000000 ; on masque les autres bits pour ne changer que DDRA7
PACTL
; on envoie dans PACTL
15
Cours 68HC11
Informatique Industrielle
II)
Ces deux ports sont traits ici dans la mme rubrique car ils partagent un certain nombre de
mcanismes de fonctionnement communs.
Le port B est un port de sortie usage gnral dont le sens est fig.
Le positionnement des lignes du port B se fait en crivant dans le registre PORTB.
Une criture de ce registre renvoie les donnes qui ont t prcdemment crits mais est sans rapport
avec ltat rel des broches du port.
Le port C est un port bidirectionnel. Le sens de chaque ligne est programm grce aux bits
correspondants au registre DDRC.
La lecture ou criture des donnes de ou vers le port C fait par contre appel deux registres : PORTC
et PORTCL.
Les ports B et C supportent divers modes de fonctionnement en dialogue qui font intervenir les
lignes STRA et STRB.
Ces modes de fonctionnement se programment grce divers bits du registre PIOC.
le registre PORTB :
Le port B est un port de sortie 8 bits usage gnral accessible en lecture criture.
Il ne dispose pas de registre DDR associ puisque son sens de fonctionnement est fig.
Reset
PB7
PB6
0
PB5
0
PB4
PB3
PB2
PB1
0
PB0
EQU
STAA
M. EBEL F.
$1004
PORTB ; la donne est dans laccumulateur A
16
PORTB $1004
Cours 68HC11
Informatique Industrielle
le registre DDRC :
0
DDRC7
DDRC6
DDRC5
DDRC4
DDRC3
DDRC2
DDRC1
0
DDRC0
DDRC $1007
Sens
Entre
Sortie
Si vous voulez par exemple que les broches PC0 PC5 soient en sortie et les broches PC6 et PC7
en entre, il faut crire :
DDRC
EQU
LDAA
STAA
$1007
#%00111111
DDRC
Reset
P C7
Reset
PCL7
M. EBEL F.
PC6
PCL6
PC5
PCL5
PC4
PCL4
PC3
PCL3
PC2
PC1
PCL2
17
PCL1
PC0
PORTC $1003
PCL0
PORTCL $1005
Cours 68HC11
Informatique Industrielle
le registre PIOC :
Ce registre huit bits, accessible en lecture criture, sert slectionner le mode de dialogue utilis mais
aussi les tats des divers signaux ou transitions.
Etat du dtecteur de front de STRA
0
RAZ : lecture de PIOC (avec STAF = 1) et accs PORTCL (lecture ou criture suivant mode de fct)
Demande inhibe
Sortie CMOS
Reset
STAF
STAI
CWOM
Dialogue simple
HDNS
OIN
PLS
EGA
INVB
Fonctionnement de STRB
Mode verrouill
Mode impulsionnel
Front montant
Niveau haut
M. EBEL F.
18
PIOC $1002
Cours 68HC11
III)
Informatique Industrielle
Une criture dans le registre PORTB place les donnes correspondantes en sortie sur le port de mme
nom et gnre une impulsion dune dure de 2 cycles dhorloge E sur la ligne STRB.
En entre : la lecture du registre PORTC est le reflet de ltat courant des lignes de port. La lecture de
PORTCL, par contre, est le reflet de ltat de ces lignes au moment de la transition valide de la ligne
STRA.
En sortie : le fait dcrire dans PORTC ou dans PORTCL produit les mmes effets au niveau des
broches configures en sortie.
Par contre lcriture dans un de ces registres est videmment sans aucun effet sur les broches
configures en entre.
Ces donnes sont cependant mmorises localement et sont prsentes en sortie si les broches
correspondantes changent de sens de fonctionnement.
M. EBEL F.
19
Cours 68HC11
Informatique Industrielle
Le front actif reconnu par le microcontrleur sur la ligne STRA positionne le bit STAF 1 et
gnre ventuellement une interruption.
Une criture dans PORTCL initialise un nouveau cycle.
IV)
Le port D :
a) Description de linterface :
Le port D est un port dentres sorties 8 bits usage gnral partag avec les interfaces sries
asynchrones (SCI) et synchrones (SPI).
Tant que ces interfaces ne sont utilises, le sens de travail des lignes du port est programm par les bits
correspondants du registre DDRD .
La sortie de donnes se fait par criture de registre PORTD et cest dans ce mme registre que lon
vient lire ltat des broches qui sont positionnes en entres.
Il est possible de programmer le port D pour fonctionner avec des sorties a drain ouvert en mettant
1 le bit DWON du registre du contrle SPCR de linterface srie synchrone.
Avec ce type de sortie, il est ncessaire de cbler des rsistances de pull up.
Si lune ou lautre des interfaces sries est utilise, le sens des lignes du port D est fix en priorit par
ces fonctions quelque soit ltat du bit correspondant du registre DDRD.
Ds que la fonction est slectionne, le bit de DDRD redevient significatif automatiquement.
Toutefois, dans certaines situations, le fonctionnement des lignes de la SPI est influenc par les bits
correspondants du DDRD.
b) Les registres associs :
Le registre DDRD
Reset
0
0
0
0
DDRD5
DDRD4
DDRD3
DDRD2
0
DDRD1
0
DDRD0
DDRD $1009
Sens
M. EBEL F.
Entre
Sortie
20
Cours 68HC11
Informatique Industrielle
Le registre PORTD :
Reset
PD5
V)
0
PD4
PD3
PD2
PD1
0
PD0
PORTD $1008
le port E :
Reset
PE7
PE6
M. EBEL F.
0
PE5
0
PE4
PE3
PE2
PE1
21
0
PE0
PORTE $100A
Cours 68HC11
Informatique Industrielle
M. EBEL F.
22
Cours 68HC11
Informatique Industrielle
Le registre SCDR :
Ce registre, accessible en lecture - criture, est un registre 8 bits. Lors dune transmission, cest le bit
de poids faible D0 qui apparat en premier sur la ligne aprs le bit de start.
Reset :
D7
D6
D5
D4
D3
D2
D1
D0
SCDR $102F
Le registre BAUD :
Reset :
0
0
0
0
SCP1
SCP0
DM = 41 666 bauds
DM = 31 250 bauds
0
0
0
SCR2
0
SCR1
SCR0
BAUD $102B
Dbit de transmission
Maxi pour Q = 8 MHz
M. EBEL F.
DM = 9600 bauds
D=DM/1
9600 bauds
D=DM/2
4800 bauds
D=DM/4
2400 bauds
D=DM/8
1200 bauds
D=DM/16
600 bauds
D=DM/32
300 bauds
D=DM/64
150 bauds
D=DM/128
75 bauds
23
Cours 68HC11
Informatique Industrielle
Le registre SCSR :
Ce registre 8 bits, accessible uniquement en lecture, permet de surveiller le bon droulement des
oprations de la SCI.
Registre dmission vide
0
Registre occup
Emission complte
Reset
1
TDRE
TC
RDRF
0
IDLE
OR
NF
FE
Erreur de surcharge
SCSR $102E
Erreur de format
Pas de surcharge
Format correct
Format incorrect.
(RAZ par lecture de
SCSR puis lecture de
SCDR )
Bruit de transmission
Rception non bruite
M. EBEL F.
24
Cours 68HC11
Informatique Industrielle
le registre SCCR1 :
ce registre huit bits, accessible en lecture criture, permet de dfinir le format de transmission et la
procdure de rveil de rception.
En rception sur 9 bits : valeur de D8
R8
T8
Reset :
R8
0
T8
0
WAKE
0
0
SCCR1 $102C
Format de trame
1 bit de start + 8 bits de donnes +
1 bit de stop
le registre SPCR :
La liaison srie asynchrone, tout comme la liaison srie synchrone, peut tre configure pour disposer
de sorties de type drain ouvert . Le choix se fait en positionnant le bit DWOM du registre SPCR et
influence le comportement de lensemble du port D.
Reset :
0
SPIE
0
SPE
0
DWOM
0
MSTR
CPOL
CPH
SPR1
SPR0
M. EBEL F.
25
SCPR $1028
Cours 68HC11
Informatique Industrielle
le registre SCCR2 :
ce registre 8 bits, accessible en lecture criture, permet de valider ou inhiber certaines fonctions de la
SPI.
Autorisation des interruptions en transmission
0
Interruption inhibe
Interruption inhibe
Interruption si TC = 1
Autorisation des interruptions en rception
0
Interruption inhibe
TIE
TCIE
RIE
Interruption inhibe
ILIE
TE
RE
Full duplex
RWU
SBK
Activation de la SCI
Mode rveil
1
Emission dun BREAK
M. EBEL F.
26
SCCR2 $102D
Cours 68HC11
Informatique Industrielle
d. fonctionnement de linterface :
fonctionnement en mission :
Par programme, le microcontrleur vient tester lindicateur dtat TDRE (registre de transmission
vide).
Sil est 1, le calculateur sait quil peut crire une nouvelle donne dans SCDR (linterface peut
galement envoyer une demande dinterruption au microcontrleur lorsque le registre de transmission
est vide).
Lcriture dun caractre dans SCDR dsactive les indicateurs. Ce caractre est alors envoy sur la
ligne de transmission de donnes TX au rythme de lhorloge dmission.
Algorithme :
Emission
Sauvegarde du contexte
TDRE=1 ?
SCDR A
Restitution du contexte
Programme :
Envoi
M. EBEL F.
PSHX
LDX
BRCLR
STAA
PULX
RTS
#SCSR
0,X,%10000000,envoi
SCDR
27
Cours 68HC11
Informatique Industrielle
fonctionnement en rception :
le priphrique envoie un caractre linterface SCI sur la ligne de rception de donne (RX). La
transition sur la ligne RX du niveau 1 au niveau 0 (signal start) est dtecte par linterface srie.
Sil reconnat le signal start, le microcontrleur effectue sur les bits de donnes les traitements
ncessaires, puis il positionne 1 lindicateur dtat RDRF (registre de rception plein).
Par programme, le microcontrleur vient tester lindicateur dtat RDRF (linterface peut galement
envoyer une demande dinterruption au microcontrleur lorsque le registre de rception est plein).
Sil est 1, le microcontrleur sait quune donne lui est destine dans linterface. Eventuellement, il
vient lire le registre dtat et tester les indicateurs derreur pour vrifier la validit des caractres
transmis.
Le microcontrleur effectue ensuite une lecture du registre de rception, ce qui dsactive les
indicateurs.
Algorithme :
rception
Sauvegarde du contexte
RDRF=1 ?
A SCDR
Restitution du contexte
Programme :
recep
M. EBEL F.
PSHX
LDX
BRCLR
LDAA
PULX
RTS
#SCSR
0,X,%00100000,recep
SCDR
28
Cours 68HC11
Informatique Industrielle
M. EBEL F.
29
Cours 68HC11
Informatique Industrielle
d. Les registres du convertisseur :
le registre ADCTL :
Lorsquune squence de conversion est termine et que les 4 registres de rsultats contiennent les rsultats
de la conversion.
Par criture dans le registre ADCTL, ce qui pour effet de relancer une nouvelle squence de conversion.
Commande de balayage continu
1
Reset
CCF
SCAN
MULT
CD
CC
CB
CA
ADCTL $1030
Slection de voie
Canal
Rsultat
AN0
AN1
AN2
AN3
ADR1
ADR2
ADR3
ADR4
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
AN4
AN5
AN6
AN7
ADR1
ADR2
ADR3
ADR4
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
Rserv
Rserv
Rserv
Rserv
ADR1
ADR2
ADR3
ADR4
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
Vrh
Vrl
Vrh/2
Rserv
ADR1
ADR2
ADR3
ADR4
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
On peut donc convertir sur une seule entre analogique avec MULT = 0 et on aura deux cas :
SCAN = 0 : la voie convertie est 4 fois et les rsultats se retrouvent dans ADR1 ADR4 et la
conversion est stoppe. On peut relancer une conversion par criture dans
ADCTL.
SCAN = 1 : la conversion est effectue sans arrt sur le canal choisi. Le rsultat de la 5 me conversion
est stock dans ADR1 crasant la premire conversion.
M. EBEL F.
30
Cours 68HC11
Informatique Industrielle
On peut aussi convertir sur plusieurs entres avec MULT = 1 avec toujours 2 possibilits :
SCAN = 0 : une conversion est effectue successivement sur chaque voie, les rsultats sont placs
respectivement dans ADR1, ADR2, ADR3 et ADR4 puis la conversion
sarrte.
SCAN = 1 : la conversion est effectue sans arrt selon le principe vu prcdemment.
le registre OPTION :
Deux bits du registre OPTION sont utiliss pour contrler le convertisseur analogique numrique.
Reset
ADPU
CSE
IRQE
1
DLY
CME
CR1
CR0
OPTION $1039
A 0 aprs un reset
e. Exemple dutilisation :
On relie sur les broches PE0 et PE1 deux LDR. On veut convertir la tension fournie qui est le reflet de
la luminosit reue par les LDR, et sauvegarder ces valeurs en mmoire.
CONV
Bcl
LDX
BSET
LDX
BSET
LDX
BRCLR
LDAA
STAA
LDAA
STAA
RTS
M. EBEL F.
#OPTION
0,X,%10000000 ; validation CAN
#ADCTL
0,X,%00010000 ; dbut de conversion
#ADCTL
0,X,%10000000,Bcl
ADR1
$0000
ADR2
$0001
31
Cours 68HC11
Informatique Industrielle
5. Le TIMER
a. Description de linterface :
Le TIMER est divis en quatre blocs fonctionnels distincts :
a) Le TIMER en usage gnral
b) Le watchdog (appel aussi COP : computer operating properly) c'est--dire le chien de
garde
c) Le gnrateur dimpulsion temps rel
d) Laccumulateur dimpulsions
Ces quatre blocs utilisent une source dhorloge et une chane de diviseurs en partie commune mais sont
indpendantes les uns des autres.
M. EBEL F.
32
Cours 68HC11
Informatique Industrielle
Pr diviseur et compteur :
La base du TIMER est un compteur 16 bits qui compte en permanence de $0000 $FFFF sans aucun
moyen de larrter et qui positionne 1 un bit de dpassement lors du passage de $FFFF $0000.
Par contre, on peut venir lire en permanence la valeur du compteur grce au registre TCNT.
Le pr diviseur permet de dfinir le signal dhorloge qui pilote ce compteur (en fait on divise E).
le registre TCNT :
Bit15
Bit8
$100E
Bit7
Bit0
$100F
TCNT
Cest un registre 16 bits, pour le lire on ne peut donc pas utiliser les accumulateurs A et B.
LDX
LDY
LDD
TCNT
TCNT
TCNT
Le registre TMSK2 :
M. EBEL F.
33
Cours 68HC11
Informatique Industrielle
Rapport de pr division
0
0
1
1
Reset
0
TOI
0
RTII
0
PAOVI
0
PAII
0
1
0
1
PR1
PR0
E
Divis
par
Priode/
temps maximal
1
4
8
16
500ns/32 ,77ms
2s/131,1ms
4s/262,1ms
8s/524,3ms
TMSK2 $1024
Interruptions inhibes
Interruption inhibe
Interruptions autorises
Validation des demandes dinterruption par lindicateur de dbordement
La fonction interruption temps rel peut tre utilise pour produire des interruptions intervalle de
temps rgulier.
On peut, grce cela, savoir le temps dexcution dun ou dune partie de programme.
Pour cela, on valide linterruption un point particulier du programme et on larrte en un autre point.
Elle peut aussi tre utilise pour produire des interruptions intervalle rgulier servant de base de
temps. On peut choisir entre 4 rapports de division (registre PACTL).
Il ne faut pas oublier, si on utilise la fonction RTI de remettre lindicateur RTIF 0 sinon, des la fin de
lexcution du programme dinterruption, il y a retour dans ce mme programme.
4 bits de diffrents registres seront utiliss dans ce but :
RTII de TMSK2
RTIF de TFLG2
RTR0 et RTR1 de PACTL.
M. EBEL F.
34
Cours 68HC11
Informatique Industrielle
Reset
0
TOF
Le registre TFLG2 :
0
RTIF
0
PAOVF
0
PAIF
TFLG2 $1025
Le registre PACTL :
Dans ce registre, seul les bits RTR0 et RTR1 sont utiliss pour les interruptions en temps rel.
Ces deux bits dterminent le rapport de slection de la fonction RTI.
Les autres bits sont utiliss pour la programmation du compteur dimpulsion qui sera vu un peu plus
tard dans le cours.
M. EBEL F.
35
Cours 68HC11
Reset
Informatique Industrielle
Rythme de lhorloge temps rel
E/213
Divis
par
4,10ms
8,19ms
16,38ms
32,77ms
1
2
4
8
0
DDR7
PAEN
PAMOD
PEDGE
0
0
1
1
0
0
0
0
0
1
0
1
0
RTR1
RTR0
PACTL $1026
Entre
Sortie
M. EBEL F.
36
Cours 68HC11
Informatique Industrielle
Reset
ADPU
Le registre OPTION :
CSE
IRQE
DLY
CME
Priode
E/215
Divis
par
16,384ms
65,536ms
262,14ms
1,049s
1
4
16
64
CR1
CR0
0
0
1
1
0
1
0
1
OPTION $1039
Le registre CONFIG :
Validation de lEEPROM
Les 512 octets dEEPROM sont inhibs
Reset
0
0
NOSEC
NOCOP
ROMON
EEON
CONFIG $103F
Arrt du watchdog
0
0
1
M. EBEL F.
37
Cours 68HC11
Informatique Industrielle
d. Entres de captures :
On peut choisir la polarit du front qui dclenche la capture et valider ou non les demandes
dinterruption.
Si les interruptions sont inhibes, il est ncessaire de lire priodiquement les indicateurs de capture.
Trois registres correspondent ces trois entres de capture : TIC1, TIC2 et TIC3. Ce sont des registres
16 bits.
Bit15
Bit8
$1010
Bit7
Bit0
$1011
Bit15
Bit8
$1012
Bit7
Bit0
$1013
Bit15
Bit8
$1014
Bit7
Bit0
$1015
TIC1
TIC2
TIC3
Linformation lue avec ces registres est linformation correspondante au front qui sest produit
immdiatement avant la lecture et pas forcement celle qui a dclench lindicateur de capture.
Les entres de capture tant indpendantes, il est possible de saisir simultanment trois fronts de
dclenchement et deffectuer des mesures simultanes de dlais sur trois signaux diffrents.
M. EBEL F.
38
Cours 68HC11
Informatique Industrielle
Les indicateurs de capture ICxF sont automatiquement mis 1 chaque fois que le front slectionn
est dtect sur lentre de capture correspondante.
Reset
IC1F
IC2F
IC3F
OC1F
OC2F
OC3F
OC4F
OC5F
0
TFLG1 $1023
Indicateurs de capture
les bits de contrle ICxI permettent lutilisateur de configurer chaque entre en mode dinterruption
ou en mode de lecture priodique.
Reset
IC1I
IC2I
IC3I
Mode priodique
Mode interruption
OC1I
OC2I
OC3I
OC4I
OC5I
0
TMSK1 $1022
Choix du mode
Le registre TCTL2 :
Lutilisateur peut choisir pour chaque entre de capture le sens du front de dclenchement.
Reset
M. EBEL F.
EDG2B
EDG2A
EDG1B
EDG1A
EDGxB
EDGxA
Configuration
Capture inhibe
39
EDG3B
0
EDG3A
TCTL2 $1021
Cours 68HC11
Informatique Industrielle
e. Exemples :
BCL
BCL1
LDAA
STAA
STAA
LDX
BRCLR
LDD
STD
LDAA
STAA
LDX
BRCLR
LDD
SUBD
On veut mesurer la largeur dimpulsion (temps de niveau haut dun signal) entre un front montant et un
front descendant en examinant ltat de lindicateur IC3F (entre PA0).
BCL
BCL1
M. EBEL F.
LDAA
STAA
STAA
LDX
BRCLR
LDD
STD
LDAA
STAA
LDAA
STAA
LDX
BRCLR
LDD
SUBD
#%00000001
TCTL2
TFLG1
#TFLG1
0,X,%00000001,BCL
TIC3
$0000
#%00000010
TCTL2
#%00000001
TFLG1
#TFLG1
0,X,%00000001,BCL1
TIC3
$0000
40
Cours 68HC11
Informatique Industrielle
f. Sorties de comparaison :
Grce ces sorties, on peut programmer des sorties pour la modulation en largeurs dimpulsion par
exemple, ou la gnration dimpulsions programmables.
Les sorties associes cette fonction sont au nombre de 5 et peuvent contenir une valeur diffrente
(entre par le programmeur).
Un drapeau (OCxF) est positionn quand la valeur du ou des registres est gale celle du compteur et
on peut ou non associer une interruption chacun des indicateurs.
Les 5 sorties sont OC1 OC5.
Pour OC2 OC5 on peut choisir quatre actions au moment de la comparaison (tat haut, tat bas,
aucune action, changement dtat chaque comparaison) en programmant les bits OMx et OLx.
OC1 est particulier : il peut commander directement les 5 sorties de comparaison. Les registres de
contrle et de donnes associes cette fonction sont OC1M et OC1D.
Il est possible de commander les actions sur une seule sortie partir du comparateur OC1 et du
comparateur associ cette sortie.
Bit15
Bit8
$1016
Bit7
Bit0
$1017
Bit15
Bit8
$1018
Bit7
Bit0
$1019
Bit15
Bit8
$101A
Bit7
Bit0
$101B
Bit15
Bit8
$101C
Bit7
Bit0
$101D
Bit15
Bit8
$101E
Bit7
Bit0
$101F
TOC1
TOC2
TOC3
TOC4
TOC5
M. EBEL F.
41
Cours 68HC11
Informatique Industrielle
le registre TMSK1 :
Reset
0
OC1I
OC2I
OC3I
OC4I
OC5I
IC1I
IC2I
IC3I
TMSK1 $1022
Reset
0
OC1F
OC2F
le registre TFLG1 :
OC3F
OC4F
OC5F
IC1F
IC2F
IC3F
TFLG1 $1023
Indicateur de comparaison
0
le registre TCTL1 :
On peut programmer indpendamment laction qui apparat sur chacune des sorties PA3 PA6.
Reset
0
OM2
M. EBEL F.
OL2
OM3
OL3
0
OM4
OL4
OM5
0
OL5
OMx
OLx
Action
Aucune action
42
TCTL1 $1020
Cours 68HC11
Informatique Industrielle
Exemple :
Fabrication dun gnrateur de signaux carrs frquence fixe :
TCTL1
debut
EQU $1020
LDAA #%00000001 ; OM5 = 0 et OL5 = 1
STAA TCTL1
BRA
debut
END
Le registre OC1M :
Reset
0
OC1M7
M. EBEL F.
OC1M6
OC1M5
0
OC1M4
OC1M3
OC1Mx
Sortie slectionne
43
0
0
0
0
OC1M $100C
Cours 68HC11
Informatique Industrielle
Reset
OC1D7
Le registre OC1D :
OC1D6
OC1D5
0
OC1D4
OC1D3
OC1Dx
Sortie 0
Sortie 1
OC1D $100D
Ltat pris par la sortie au moment de la comparaison avec OC1 est indiqu par OC1Dx.
Exemple :
On veut raliser une horloge multiphase sur les sorties PA3 PA7.
LDAA
LDAA
#$80
PACTL
LDY
LDX
LDAA
STAA
#DEBTAB
#TFLG1
#$F8
OC1M
LDAA
STAA
LDAA
INY
CPY
BNE
LDY
#OC1F
TFLG1
0,X
#FINTAB
SUITE
#DEBTAB
STAA
LDD
ADDD
STD
OC1D
TOC1
#20000
TOC1
BRCLR
BRA
0,X,OC1F,BASCUL
RAZ
FCB
EQU
END
00,$80,00,$10,00,$20,00,$40,00,$80
*
COMP :
RAZ :
SUITE :
BASCUL :
DEBTAB :
FINTAB
M. EBEL F.
44
Cours 68HC11
Informatique Industrielle
Le registre CFORC :
Il est possible de forcer, par programme, ltat dune sortie sans avoir besoin dattendre le rsultat
dune comparaison.
Reset
0
FOC1
M. EBEL F.
0
FOC2
0
FOC3
FOC4
FOC5
FOCx
Sortie normale
Comparaison sortie
45
0
0
0
0
CFORC $100B