You are on page 1of 46

MICRO CONTROLEUR 68HC811

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.

REGISTRES INTERNES du 68HC11

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

LES PORTS DENTREES / SORTIES PARALLELES

I)
a)
b)

Le port A :
description de linterface :
les registres associs :

14
14
14
15

II)
a)
b)

les ports B et C, les broches STRA et STRB :


Description des interfaces :
les registres associs :

16
16
16

III)
a)
b)
c)

Description des modes de fonctionnement :


Dialogue simple :
Dialogue complet en entre :
Dialogue complet en sortie :

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.

LINTERFACE SERIE ASYNCHRONE

22

a.

Description de linterface :

22

b.

Les broches utilises :

22

c.

Les registres associs :


Le registre SCDR :
Le registre BAUD :
Le registre SCSR :

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.

LE CONVERTISSEUR ANALOGIQUE NUMERIQUE

a.

Description de linterface :

b.

29

Description de la conversion :

c.

29

Les entres de conversion :

d.

e.

29

Les registres du convertisseur :


le registre ADCTL :
le registre OPTION :

30
30
31

Exemple dutilisation :

5.

31

LE TIMER

a.

32

Description de linterface :

b.

29

32

Le TIMER usage gnral :


Pr diviseur et compteur :
le registre TCNT :
Le registre TMSK2 :
Interruption temps rel :
Le registre TFLG2 :
Le registre PACTL :

32
33
33
33
34
35
35

La fonction chien de garde :


Le registre OPTION :
Le registre CONFIG :

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

INSTRUCTIONS SPECIALES MICROCONTROLEUR :


Ces instructions ne marchent quavec un adressage direct ou index.
ETIQ BSET PORTD,X,#$40 = Mise 1 du bit b6 du de ladresse X+PORTD

ETIQ BCLR MEM,X,#$08 = Mise 0 du bit b3 de ladresse X+MEM

ETIQ BRSET PORTB,X,#$01 ETIQ = Saut ETIQ si le bit b0 de PORTB+X est 1

ETIQ BRCLR MEM,#$02 ETIQ = Saut ETIQ si le bit b1 de MEM est 0

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.

NB: Au reset toutes les lignes E/S sont configures en Entres.


DDR = 0 Ligne configure en Entre.
DDR = 1 Ligne configure en Sortie.
PORT A : 2 Entres/Sorties, 3 Entres, 4 Sorties. Partag avec les E/S du TIMER.
PORT B : 8 Sorties. Partag avec MSB du bus adresse en mode tendu.
PORT C : 8 Entres/Sortie. Partag avec Bus Data et LSB adresse en mode tendu.
PORT D : 6 Entres/Sorties. Partag avec PORT SYN (I2C) ou ASYN (RS232).
PORT E : 8 Entres. Partag avec les entres du Convertisseur Analogique Numrique.
NOTE: Les Ports en Entre doivent tre tirs au + Vcc par des rsistances de 10 K.
Les 8 du port C : PC0 PC7
Les 6 du port D: PD0 / PD1 / PD2 / PD3 / PD4 et PD5
Les 4 du port A : PA0 / PA1 / PA2 / PA7

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

RAM en MODE BOOTSTRAP


$00
$AF
$B0

175 Octets

Programme Talker avec PCBUG 11


20 Octets DISPONIBLE

$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

Zones utilises par PCBUG


Ne pas utiliser cette RAM
car PLANTE de PCBUG

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 :

Initialisation de IRQ en mode seul :

ORG $00EE
FCB $7E
FDB ETIQ-SPIRQ

ORG

$FFF2
FDB
ETIQ-SPIRQ

VECTEURS des INTERRUPTIONS


ADRESSE
$FFFE - $FFFF
$FFFC - $FFFD
$FFFA - $FFFB
$FFF8 - $FFF9
$FFF6 - $FFF7
$FFF4 - $FFF5
$FFF2 - $FFF3
$FFF0 - $FFF1
$FFEE - $FFEF
$FFEC - $FFED
$FFEA - $FFEB
$FFE8 - $FFE9
$FFE6 - $FFE7
$FFE4 - $FFE5
$FFE2 - $FFE3
$FFE0 - $FFE1
$FFDE - $FFDF
$FFDC - $FFDD
$FFDA - $FFDB
$FFD8 - $FFD9
$FFD6 - $FFD7

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:

ORG : Fixe l'origine des adresses pour l'assemblage.


ORG $B600

FCB : Rserve une adresse mmoire et l'initialise une valeur.


Ex : ORG $xxxx
FCB $7E
La valeur $7E sera crite l'adresse $xxxx
FDB : Rserve deux adresses (un mot ) et les initialise.
Ex : ORG $xxxx
FDB ETIQ
La valeur de ETIQ est crite l'adresse $xxxx. Comme ETIQ est une adresse sur 16 bits son MSB sera
mis en $xxxx et son LSB en $xxxx + 1
FCC : Rserve plusieurs adresses et les initialise avec le code ASCII des caractres du
texte.
Ex : ORG $xxxx
FCC "TEXTE"
Le code ASCII de T sera mis l'adresse $xxxx puis celle de E en $xxxx +1
RMB : Rserve des adresses memoire mais sans les initialiser une valeur particulire.
Ex: ORG $xxxx
RMB $06
Les 6 cases memoire partir de l'adresse $xxxx sont rserves.
EQU : Affecte une valeur permanente une tiquette.
Ex: PORTB EQU $04

M. EBEL F.

Cours 68HC11

Informatique Industrielle

g. REGISTRES INTERNES du 68HC11


$1000 = PORT A (DDRA des Bit3 et Bit7 en $1026 = PACTL)
$1001 = RESERVE MOTOROLA
$1002 = PIOC
$1003 = PORT C
$1004 = PORT B
$1005 = PORT CL
$1006 = RESERVE MOTOROLA
$1007 = DDRC
$1008 = PORT D
$1009 = DDRD
$100A = PORT E
$100B = CFORC
$100C = OC1M
$100D = OC1D
$100E et $100F = TCNT
$1010 et $1011 = TIC1
$1012 et $1013 = TIC2
$1014 et $1015 = TIC3
$1016 et $1017 = TOC1
$1018 et $1019 = TOC2
$101A et $101B = TOC3
$101C et $101D = TOC4
$101E et $101F = TOC5
$1020 = TCTL1
$1021 = TCTL2
$1022 = TMSK1
$1023 = TFLG1
$1024 = TMSK2
$1025 = TFLG2
$1026 = PACTL
$1027 = PACNT
$1028 = SPCR
$1029 = SPSR
$102A = SPDR
$102B = BAUD
$102C = SCCR1
$102D = SCCR2
$102E = SCSR
$102F = SCDR
$1030 = ADCTL
$1031 = ADR1
$1032 = ADR2
$1033 = ADR3
$1034 = ADR4
$1035 $1038 = RESERVE MOTOROLA
$1039 = OPTION
$103A = COPRST
$103B = PPROG
$103C = HPRIO
$103D = INIT
$103E = TEST1
$103F = CONFIG

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

A chaque interruption il y aura 9


octets de sauvegards dans la
RAM.

M. EBEL F.

Il ne faut pas oublier d'initialiser le pointeur


de pile SP sur une adresse en RAM ou le
micro pourra sauvegarder ses registres.
Exemple: SP pointe le bas de la zone des
256 octets de RAM interne: LDS #$00FF
Il faudra initialiser le vecteur d'interruption
en crivant l'adresse du vecteur l'adresse
du programme correspondant.
Exemple: SPIRQ est l'tiquette du sous
programme excuter si un niveau bas
apparat sur l'entre IRQ.
ORG $FFF2
FDB SPIRQ
Il faudra au dbut du programme autoriser
les interruptions.
Exemple: CLI

13

Cours 68HC11

Informatique Industrielle

2. Les ports dentres / sorties parallles


Le 68HC811E2 a un total dune quarantaine de broches dentres sorties dusage gnral. Ces broches
sont partages avec au moins une autre fonction priphrique non tudie dans ce chapitre.
I)

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 :

Ce registre 8 bits est accessible en lecture criture.


Reset

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

Pour recevoir une donne qui arrive sur le port A :


PORTA

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

Sens de fonctionnement de PA7


0

Entre commune avec lentre PAI de laccumulateur dimpulsions

Sortie commune avec lentre PAI de laccumulateur dimpulsions

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)

les ports B et C, les broches STRA et STRB :


a) Description des interfaces :

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.

b) les registres associs :

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

Pour envoyer une donne vers le port A, il suffit donc dcrire :


PORTB

EQU
STAA

M. EBEL F.

$1004
PORTB ; la donne est dans laccumulateur A

16

PORTB $1004

Cours 68HC11

Informatique Industrielle

le registre DDRC :

Ce registre 8 bits de direction de donnes est accessibles en lecture criture.


Reset

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

le registre PORTC et PORTCL :

Ces deux registres 8 bits sont accessibles en lecture criture.

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)

Transition active dtecte sur STRA


Masque dinterruption de STRA
0

Demande inhibe

Interruptions (gnres par passage 1 de STAF) autorises


Configuration matrielle du port C
0

Sortie CMOS

Sorties drain ouvert ncessitant une rsistance de pull up


Mode de fonctionnement

Reset

STAF

STAI

CWOM

Dialogue simple

Dialogue complet en entre

Dialogue complet en sortie

HDNS

OIN

PLS

EGA

INVB

Fonctionnement de STRB
Mode verrouill

Mode impulsionnel

Choix du front actif de STRA


Front descendant

Front montant

Niveau actif de STRB


Niveau bas

Niveau haut

M. EBEL F.

18

PIOC $1002

Cours 68HC11

III)

Informatique Industrielle

Description des modes de fonctionnement :


a) Dialogue simple :

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.

b) Dialogue complet en entre :


Lorsquune condition prt est reconnue, le systme externe place les donnes sur les lignes du port
C, puis dlivre un front actif sur la ligne STRA.
Ce front verrouille les donnes du port C dans le registre PORTCL et positionne lindicateur STAF
(provoquant ventuellement une interruption).
En mode verrouill (PLS = 0), la ligne STRB est mise son tat actif pour inhiber le systme
externe en ce qui concerne la validation de nouvelles donnes sur le port C.
La lecture du registre PORTCL efface lindicateur STAF et repositionne STRB ltat prt pour
permettre un nouveau cycle.
En mode impulsionnel (PLS = 1), la lecture du registre PORTCL efface lindicateur STAF et
gnre une impulsion dune dure de 2 cycles sur la ligne STRB pour indiquer que le microcontrleur
est prt pour un nouveau cycle.
c) Dialogue complet en sortie :
Lcriture dune donne dans le registre PORTCL positionne les lignes de sortie du port C, active la
ligne STRB pour indiquer au systme externe que les informations sont valides et remet
ventuellement zro le bit STAF.
En mode impulsionnel (PLS = 0), la ligne STRB reste positionne seulement pendant 2 cycles
dhorloge.
En mode verrouill (PLS = 1), la ligne STRB restera jusqu lapparition dun front valide sur STRA.
Le systme externe, aprs avoir trait la donne, active la ligne STRA pour indiquer quun nouveau
cycle peut dbuter.

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

Ce registre 8 bits de direction de donnes est accessibles en lecture criture.

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 :

Ce registre 8 bits de direction de donnes est accessibles en lecture criture.

Reset

PD5

V)

0
PD4

PD3

PD2

PD1

0
PD0

PORTD $1008

le port E :

Les 8 broches du port E sont les entres du convertisseur analogique numrique.


Elles peuvent tre aussi utilises comme port dentre usage gnral.
Linformation prsente sur le port est transmise seulement pendant la lecture du port.

Reset

PE7

PE6

M. EBEL F.

0
PE5

0
PE4

PE3

PE2

PE1

21

0
PE0

PORTE $100A

Cours 68HC11

Informatique Industrielle

3. LINTERFACE SERIE ASYNCHRONE


a. Description de linterface :
Cette interface permet au microcontrleur dchanger des donnes avec des circuits priphriques
utilisant une liaison srie asynchrone (ordinateurs, tables traantes, modem, instruments de musique)
Les circuits internes de la SCI permettent :
Des changes asynchrones bidirectionnels en full duplex
De choisir la vitesse de transmission
De choisir le format de transmission
De choisir le mode dactivation de la partie rception ( classique ou rveil )
De grer les erreurs de transmission
Dindiquer la fin de transmission
b. Les broches utilises :
La liaison est assure par deux broches RXD (PD0) et TXD (PD1) du port D. aprs un RESET, la SCI
est inhibe et le port D est configur comme un port dusage gnral.
La SCI peut tre active en rception et/ou en mission (half ou full duplex).
Lorsque la SCI est active en rception, PD0 devient lentre de rception des donnes RXD.
Lorsque la SCI est active en mission, PD1 devient la sortie de transmission des donnes TXD.
c. Les registres associs :
La liaison srie asynchrone est entirement gre par 5 registres et le bit DWON commun la SCI et
la SPI.
Le registre des donnes (SCDR) est le registre dans lequel on vient crire la donne transmettre ou
dans lequel on vient lire la donne reue.
Il faut au pralable avoir configur correctement la SCI en programmant ses registres de contrle
SCCR1 et SCCR2 ainsi que le bit DWON du registre SPCR.
Le registre BAUD permet, en fonction du quartz cadenant le microcontrleur, de slectionner la
vitesse de transmission des donnes.
Les informations sur ltat de la liaison sont fournies dans le registre dtat SCSR.

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 :

Le rcepteur et lmetteur travaillent la mme vitesse, drive de lhorloge interne du


microcontrleur. Le registre 8 bits BAUD, accessible en lecture criture permet de choisir cette
vitesse.

Reset :

0
0

0
0

SCP1

SCP0

DM = 125 000 bauds

DM = 41 666 bauds

DM = 31 250 bauds

DM= 9 600 bauds

0
0

0
SCR2

0
SCR1

SCR0

BAUD $102B

Dbit de transmission
Maxi pour Q = 8 MHz

Dbit de transmission en bauds

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

Registre vide (RAZ par lecture de SCSR puis lecture de SCDR )


Transmission complte
0

Emission complte

Emission termine (RAZ par lecture de SCSR puis lecture de SCDR )


Registre de rception plein
0

Registre de rception incomplet

Rception termine (RAZ par lecture de SCSR puis lecture de SCDR )


Dtection ligne en attente

Reset

1
TDRE

TC

RDRF

Ligne RXD en activit

Ligne RXD en attente au niveau 1 .( RAZ par lecture de


SCSR puis lecture de SCDR )

0
IDLE

OR

NF

FE

Erreur de surcharge

SCSR $102E

Erreur de format

Pas de surcharge

Format correct

Surcharge du registre de rception. (RAZ par


lecture de SCSR puis lecture de SCDR )

Format incorrect.
(RAZ par lecture de
SCSR puis lecture de
SCDR )

Bruit de transmission
Rception non bruite

Rception bruite (RAZ par lecture de SCSR puis lecture de


SCDR )

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

En mission sur 9 bits : valeur de D8

T8

Reset :

R8

0
T8

0
WAKE

0
0

SCCR1 $102C

Mode de rveil du rcepteur

RXD 1 pendant au moins 1 trame de 10 ou


11 bits

MSB du mot 1 adresse

Format de trame
1 bit de start + 8 bits de donnes +
1 bit de stop

1 bit de start + 9 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

Configuration matrielle de sortie du port D

M. EBEL F.

Sorties de type CMOS

Sorties drain ouvert ncessitant des rsistances de pull up

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 si TDRE = 1 (registre de transmission vide)

Autorisation de linterruption transmission complte


0

Interruption inhibe

Interruption si TC = 1
Autorisation des interruptions en rception
0

Interruption inhibe

Interruption si RDRF =1 (registre de rception plein) ou si OR = 1


Autorisation dinterruption ligne en attente

TIE

TCIE

RIE

Interruption inhibe

Interruption ds que la ligne est MARK (10 ou 11 bits 1

ILIE

TE

RE

SCI dsactive (PD0 et PD1 sont des E/S usage gnral

Half duplex en rception (PD1 usage gnral)

Half duplex en mission (PD0 usage gnral)

Full duplex

RWU

SBK

Activation de la SCI

Mode dactivation du rcepteur


UART classique

Mode rveil

1
Emission dun BREAK

Opration normale en rception

Emission nen continu dun BREAK (10 ou 11 bits au niveau 0)

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 :

La donne est dans A

Emission

Sauvegarde du contexte

TDRE=1 ?

SCDR A

Restitution du contexte

Fin sous programme

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

Fin sous programme

Programme :
recep

M. EBEL F.

PSHX
LDX
BRCLR
LDAA
PULX
RTS

#SCSR
0,X,%00100000,recep
SCDR

28

Cours 68HC11

Informatique Industrielle

4. Le convertisseur analogique numerique


a. Description de linterface :
Le convertisseur intgr dans le 68HC811E2 est un CAN approximation successive. Il dispose de 8
entres multiplexes vers un chantillonneur bloqueur permettant de diminuer les erreurs de conversion
dues la variation du signal dentre.
Les 8 entres sont communes avec le port E.
Deux lignes spcifiques Vrefh et Vrefl sont utilises comme rfrence de tension.
La prcision de ce convertisseur est de LSB sur toute la gamme de temprature, ces rfrences de
tension devront tre stables par rapport aux variations de lalimentation ou de la temprature pour
conserver au convertisseur toute sa prcision.
Il faut toujours garder Vrefh Vrefl > 2,5 Volts.
b. Description de la conversion :
Une tension dentre gale Vrefl est convertie en $00, une tension dentre gale ou suprieure
Vrefh est convertie en $FF.
Lors dune demande de conversion, une squence de 4 conversions est lance.
Le convertisseur utilise le principe des approximations successives :
La tension est compare la diffrence Vi = Vrefh Vrefl divise par 2.
si la tension convertir est suprieure cette valeur, le bit 7 du registre de comparaison est mis 1,
dans le cas contraire, il est mis 0 ainsi que la tension Vi.
Cette nouvelle valeur est compare la tension mesurer et le bit 6 est positionn en fonction de ce
rsultat.
Finalement, la tension mesurer est compare Vi avec cette quation :
b
b b
b
b
b
b
b
Vi = (Vrefh Vrefl ) 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0
4 8 16 32 64 128 256
2
bn=0 ou 1 suivant le rsultat des comparaisons internes.
Chaque opration est effectue en 32 cycles dhorloge E. (si E > 750 kHz).
Le convertisseur possde 4 registres de rsultat spars qui permettent de mmoriser les rsultats de la
squence de 4 conversions.
Cette squence dbute un cycle dhorloge interne aprs une criture dans le registre ADCTL.
c. Les entres de conversion :
Un multiplexeur permet de slectionner une entre analogique parmi 16 voies analogiques :
8 de ces voies correspondent aux broches dentre du port E, 4 autres des rfrences internes, le reste
tant rserv pour un usage futur.
Le choix de la voie grce au registre ADCTL

M. EBEL F.

29

Cours 68HC11

Informatique Industrielle
d. Les registres du convertisseur :

le registre ADCTL :

Indicateur de conversion termine


1

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

Conversion continue, les registres rsultats sont en permanence mis a jour

La squence (4 conversions) sarrete lorsque les 4 registres rsultats sont pleins


Commande 1 voie / plusieurs voies

Reset

CCF

La conversion seffectue sur 4 voies successives

La conversion est effectue 4 fois sur la voie choisie grce CD CA

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

Choix de lhorloge de commande CAN


0

Le CAN utilise lhorloge interne E

Slectionne lhorloge locale cellule RC


Choix de lhorloge de commande CAN

A 0 aprs un reset

Pour utiliser le CAN, il faut mettre ce bit 1

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.

b. Le TIMER usage gnral :


Il utilise un compteur 16 bits qui sincrmente en permanence (free running) ds la remise zro du
microcontrleur.
Il est prcd par un pr diviseur programmable cadenc par lhorloge interne E. On peut donc
programm des frquences dentre multiples de E.
Il dispose aussi de trois registres dits de capture (TIC1, TIC2 et TIC3) sont prvus pour mmoriser
linstant darrive de front actif sur les trois entres correspondantes (IC1, IC2 et IC3), un bit dtat est
positionn (IC1F, IC2F et IC3F) et une interruption peut tre gnre.
Ces trois entres vont permettre la mesure de longueur dimpulsions, de frquence ou dcart entre
vnements diffrent.
La deuxime fonction importante du TIMER est la comparaison en sortie et fait appel 5 registres de
comparaison en sortie (TOC1 TOC5).
On peut les programmer tout instant et ils sont compars en permanence avec le contenu du compteur
16 bits.
Quand il y a galit, un bit dtat est positionn (OC1F OC5F), une interruption peut tre gnre et
la patte de sortie correspondante (OC1 OC5) peut changer dtat comme on le dsir.

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 :

Le prdiviseur est programmable grce aux bits PR0 et PR1.


Le tableau suivant est donn pour une frquence de quartz de 8 MHz.
Ce registre est partag avec certaines parties du TIMER :

Seul PR0 et PR1 nous serons utiles pour la programmation du prdiviseur.


Validation des interruptions avec PAII, TOI, RTII et PAOVI.

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

Bit de validation des interruptions sur PAI


0

Interruptions inhibes

Interruptions autorises et effectives chaque front actif sur lentre


Validation dinterruption lors de dpassement

Interruption inhibe

Les interruptions sont autorises et effectives a chaque passage 0 du compteur


Interruption temps rel

Interruption inhibe, mais la RTI continue de fonctionner et de positionner le bit RTIF

Interruptions autorises
Validation des demandes dinterruption par lindicateur de dbordement

Interruptions inhibes mais le bit TOF continue de fonctionner normalement

Interruptions autorises (par passage 1 de TOF lorsquil est mis 1)

Interruption temps rel :

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

Indicateur dinterruption sur PAI


0

Raz par criture de 1 sur ce bit

A 1 lors de la dtection dune transition valide sur PAI


Indicateur de dpassement

Raz par criture de 1 sur ce bit

A 1 lors du dbordement du compteur de $FF $00


Indicateur dinterruption temps rel

Raz par criture de 1 sur ce bit

A 1 lorsqu une interruption temps relle lieu.


Indicateur de dbordement

Raz par criture de 1 sur ce bit

Il passe 1 chaque dbordement du compteur.

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

Choix du front de comptage et du niveau de commande


0

PAI ragit sur front descendant ou ouvre la porte de comptage avec


un niveau bas

PAI ragit sur front montant ou ouvre la porte de comptage sur un


niveau haut
Choix du mode

Laccumulateur fonctionne en mode comptage sur PAI

Laccumulateur fonctionne en mode comptage de lhorloge E/64 sous contrle du


niveau appliqu sur PAI
Bit de commande de comptage

Le comptage est inhib

Le comptage est autoris


Bit de direction associ PA7

Entre

Sortie

c. La fonction chien de garde :


Le watchdog fonctionne ou non suivant ltat du bit NOCOP du registre CONFIG .
Sa priode est positionne son temps le plus court.
On peut venir changer sa priode en programmant les bits CR0 et CR1 du registre OPTION.
Ce dispositif permet de protger le systme contre les dfaillances logicielles.
Quand on utilise le watchdog, si une boucle infinie se prsente dans le programme, et que le watchdog
nest pas relanc alors une squence de rinitialisation interne est lance.

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

Les 512 octets dEEPROM sont valids de $B600 $B7FF

Validation de la ROM interne

Reset

0
0

Les 8 koctets sont inhibs

Les 8 koctets sont valids

NOSEC

NOCOP

ROMON

EEON

CONFIG $103F

Arrt du watchdog
0

Il est arrt et ne produit pas de reset

Il est valid ds la fin du reset


Verrouillage de lEEPROM

0
1

M. EBEL F.

Cette possibilit nest offerte que si la ROM t programme par


usine pour cette usage.

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 registres TMSK1 et TFLG1 :

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

Raz en crivant 1 sur le bit correspondant

A chaque front slectionn dtect sur lentre


correspondante

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

Capture sur fronts montants

Capture sur fronts descendants

Capture sur chaque fronts

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

Mesure dune priode arrivant sur PA0 (IC3):


#%00000001
TCTL2
TFLG1
#TFLG1
0,X,%00000001,BCL
TIC3
$0000
#%00000001
TFLG1
TFLG1
0,X,%00000001,BCL1
TIC3
$0000

Mesure de largeur dimpulsions :

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.

Les registres de comparaisons TOC1 TOC5 :

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

Ces registres 16 bits peuvent tre lu ou crit.


On utilisera donc linstruction LDD pour lire ces registres.

M. EBEL F.

41

Cours 68HC11

Informatique Industrielle

le registre TMSK1 :

Reset

0
OC1I

OC2I

OC3I

OC4I

OC5I

IC1I

IC2I

IC3I

TMSK1 $1022

Validation des interruptions


0

Les interruptions sont masques

Les interruptions sont valides

Reset

0
OC1F

OC2F

le registre TFLG1 :

OC3F

OC4F

OC5F

IC1F

IC2F

IC3F

TFLG1 $1023

Indicateur de comparaison
0

Raz en crivant 1 sur le bit correspondant

A 1 quand le contenu du registre identique au compteur

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

La sortie change dtat chaque comparaison

La sortie passe 0 chaque comparaison

La sortie passe 1 chaque comparaison

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

La sortie PA3 est programme pour changer dtat chaque comparaison.


Le registre de comparaison est $FFFF aprs le reset.
Donc on aura un changement dtat chaque comparaison donc toutes les 32,77 ms pour un quartz 8
MHz.

Le registre OC1M :

Le comparateur OC1 occupe une place part.


Il permet de contrler une ou plusieurs autres sorties de comparaison.
Les sorties affectes par la fonction de comparaison OC1 sont repres en mettant 1 les bits OC1Mx
correspondant.

Reset

0
OC1M7

M. EBEL F.

OC1M6

OC1M5

0
OC1M4

OC1M3

OC1Mx

Slection des sorties

Sortie non slectionne

Sortie slectionne

43

0
0

0
0

OC1M $100C

Cours 68HC11

Informatique Industrielle

Reset

OC1D7

Le registre OC1D :

OC1D6

OC1D5

0
OC1D4

OC1D3

OC1Dx

Etat des sorties

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

Forage des sorties

Sortie normale

Comparaison sortie

45

0
0

0
0

CFORC $100B

You might also like