School Work">
68 HC 11
68 HC 11
68 HC 11
68HC811
0
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 Sorties
0
8 Entres /Sorties
68HC11
Accumulateurs et Instructions
b7
b0
b7
b0
b7
b7
b0
b0
B15
B15
b0
B15
b0
B15
b0
b0
CCR
CARRY
CARRY
NEGATIF
STOP
OVERFLOW
MICRO-CONTROLEUR 68HC11-A1
1
68HC11
$ 0000
256 octets
RAM
$00FF
2
$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 (T x 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.
PORTS du 68HC11
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 Sorties
0
8 Entres /Sorties
TOTAL :
12 Entres.
12 Sorties.
14 Entres / Sorties.
68HC11
CREATION D'UN PROGRAMME
4
ASSEMBLAGE
PROGRAMMATION DU CIRCUIT
EDITION DU FICHIER SOURCE:
EDIT NOMFICH.ASC
ASSEMBLAGE :
ASMHC11 NOMFICH.ASC
L'extension ASC est facultative
Cration d'un fichier listing : NOMFICH.LST
Cration d'un fichier objet au format Motorola: NOMFICH.S19
LOADS NOMFICH.S19 :L'extension S19 est facultative. Il faut auparavant avoir dfinit
la zone EEPROM soit $B600 $B7FF, soit $F800 $FFFF.
LANCEMENT DU PROGRAMME:
G $B600
NB: Ce mme programme peut tourner galement sans le contrle de PCBUG. Il suffit
de faire un strapp pendant 15 ms entre Tx et Rx du microprocesseur avant le Reset .
SOUS PCBUG :
LANCER UN PROGRAMME :
G $B600
STOPPER UN PROGRAMME :
S
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
6
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
.
$00
$AF
$B0
$C3
$C4
$C6
$C7
$C9
$CA
$CC
$CD
$CF
$D0
$D2
$D3
$D5
$D6
$D8
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
7
$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 : 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.
LES INTERRUPTIONS
Exemple :
Initialisation de IRQ en mode BOOT : ORG $00EE
FCB $7E
FDB ETIQ-SPIRQ
INTERRUPTION
RESET.
Surveillance horloge.
8
$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
DIRECTIVES ASSEMBLEUR
ORG : Fixe l'origine des adresses pour l'assemblage.
ORG $B600
Ex:
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.
$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
SPI
UART
CAN
$1034 = ADR4
$1035 $1038 = RESERVE MOTOROLA
$1039 = OPTION
$103A = COPRST
$103B = PPROG
$103C = HPRIO
$103D = INIT
$103E = TEST1
$103F = CONFIG
LE TIMER du 68HC11
- 1 - LE COMPTEUR :
Il est constitu dun compteur 16 bits, qui compte sans arrt lhorloge
du 68HC11. Il part de $0000 jusqu' $FFFF puis dborde et revient
$0000 en positionnant un bit de dbordement.
Il est prcd dun prdiviseur programmable.
PR1 PR0 Div
TMSK2 : $1024
PR1
PR0
0
0
1
1
0
1
0
1
1
4
8
16
Les bits PR0 et PR1 sont des bits protgs. Ils doivent imprativement
tre modifis pendant les 64 cycles dhorloge qui suivent le Reset.
Avec un quartz de 8 Mhz on a E= 2 Mhz donc T=500ns. La capacit
max du comptage est : 65536 x 16 x 500ns =524,288 ms si Prdiv =
16.
$100E b15
$100F B7
B8
B0
11
= MSB
= LSB
Le compteur possde
dinterruption.
TFLG2 : $1025
un
bit
dtat
et
un
bit
dautorisation
TOF
TOI
$1010 b15
$1011 B7
B8
$1012 b15
$1013 B7
B8
$1014 b15
$1015 B7
B8
B0
B0
B0
Les bits IC1F IC2F et IC3F passent 1 quand une transition valide est
gnre sur lentre de capture correspondante. Pour les remettre
zro il faut crire dans TFLG1 un 1 la place du bit correspondant. On
peut remettre plusieurs bits zro en mme temps. NE PAS
UTILISER L'INSTRUCTION BSET ( voir remarque prcdente
pour TFLG2).
12
TFLG1 : $1023
IC1F
IC2F
IC3F
IC1I
IC2I
IC3I
Edge A
Edge1B
Edge1A
Edge2B
Edge2A
Edge3B
Edge3A
Transition active
0
0
0
1
Invalide
Front montant
Front descendant
Pour remettre ces bits zro il faut crire dans TFLG1 avec le bit
correspondant 1. NE PAS UTILISER L'INSTRUCTION BSET ( voir
remarque prcdente pour TFLG2)
OC1I OC2I OC3I OC4I OC5I
TMSK1 en $1022
Quand ils sont positionns 1, ces bits OCI autorisent les IT produites
par le passage 1 des bits dtat OCF.
OM2 OL2 OM3 OL3 OM4 OL4
OM5 OL5
TCTL1 en $1020
Ces bits dfinissent le comportement de la sortie de comparaison
correspondante ( pour OC2 OC3 OC4 et OC5 ).
13
OM
OL
0
0
0
1
1
1
0
1
Sortie OC1 : elle peut agir sur nimporte quelle pins du PORT A entre
PA3 et PA7.
OC1M7 OC1M6 OC1M5 OC1M4 OC1M3
OC1M en $100C
Si le bit OC1Mx est mis 1 la sortie de comparaison agira sur le port
correspondant PAx. On peut faire agir OC1 sur plusieurs pins de sortie.
OC1D7 OC1D6 OC1D5 OC1D4 OC1D3
OC1D en $100D
Les bits OC1Dx dfinissent ltat de la pin de sortie quand la
comparaison est valide (soit 1 soit zro) condition que OC1M
lautorise.
- 4 - LES INTERRUPTIONS TEMPS REEL = RTI:
La source dhorloge est la frquence du micro E divise par 2 13 soit une
priode entre deux interruptions de : 0,5ms x 8192 = 4,1 ms.
Les bits RTR1 et RTR0 permettent de diviser par 2, 4 ou 8 cette
frquence.
PACTL en $1026
RTR1 RTR0
0
0
1
1
0
1
0
1
RTR1 RTR0
DIV
Priode RTI
Quartz 8 Mhz
1
2
4
8
4,1 ms
8,2 ms
16,4 ms
32,8 ms
TFLG2 en $1025
RTIF
Le bit RTIF passe 1 quand une interruption temps rel arrive. On doit
imprativement le remettre zro avant de quitter le SP
dinterruption. Pour cela on crit un 1 en position b 6 dans TFLG2. NE
PAS UTILISER L'INSTRUCTION
BSET ( voir remarque
prcdente pour TFLG2)
TMSK2 en $1024
RTII
Quand le bit RTII est mis 1 les interruptions temps rel sont
autorises. Quand il est zro, les IT sont inhibes mais la RTI
fonctionne et positionne toujours le bit RTIF du registre TFLG2.
- 5 - LACCUMULATEUR DIMPULSIONS:
14
Il est compos dun TIMER de 8 bits qui peut soit compter les
impulsions qui lui sont appliques sur son entre : PA7 soit ouvrir par
commande sur PA7 une porte qui autorise le comptage du signal la
frquence E/64.
Deux sources dIT sont disponibles. Une quand le compteur dborde de
$FF $00. Lautre quand une transition valide est dtecte sur PA 7.
PACTL en $1026
DDRA7 PAEN
PAMOD PEDGE
TFLG2 en $1025
PAOVF PAIF
Bit 4 : PAIF = ce bit est mis 1 lors de la dtection dune transition valide sur
PA7.
Bit 5 : PAOVF = ce bit est mis 1 quand le compteur dborde de $FF $00.
Ces deux bits doivent tre remis zro, par criture dun 1 en position 4 ou 5 de
TFLG2.
TMSK2 en $1024
PAOVI
PAII
Mis 1 ces bits autorisent les IT quand les bits PAOVF et PAIF passent 1.
Ces bits zro inhibent les IT provoques par ces deux flags.
TOC5 = TIMER
PA3 est mis "0"
DUREE
PA3
15
PERIODE
IT de OC1
(TOC1=TIMER)
PA3 est mis "1"
PROGRAMME:
INIT BSET TMSK2,X,#$02 ; prdiv=8 donc TIMER = 4 s avec Xtal de 8 MHz.
BSET OC1M,X,#$08 ; bit 3 de OC1M mis "1": OC1 agit sur PA3.
BSET OC1D,X,#$08 ; bit 3 de OC1D mis "1": OC1 mettra PA3 "1".
BSET TCTL1,X,#$02 ; OC5 mettra PA3 "0".
LDD #$00FA
; valeur sur 16 bits.
STD PERIODE
; Priode = 250 x = 4 s =1 ms.
STD TOC1,X
; initialisation du registre TOC1 avec la valeur de la priode.
LDD #$valeur
; valeur sur 16 bits de $000D (min) $00FA (max=priode).
STD DUREE
; Dure = valeur x = 4 s. Valeur variable pour PWM.
BSET TMSK1,X,#$80 ; autorisation de IT par OC1.
CLI
; Autorisation des IT.
*** SOUS PROGRAMME IT par OC1 ***
OC1 LDD TOC1,X
ADDD DUREE
STD TOC5,X
; TOC5 = TOC1 + DUREE.
LDD TOC1,X
ADDD PERIODE
STD TOC1,X
; TOC1 = TOC1 + PERIODE.
BCLR TFLG1,X,#$7F ; RAZ du flag de OC1 qui passe "1" quand TOC1 = TIMER.
RTI
; on ne peut pas utiliser BSET pour mettre b7 "1"
ADR1 :
ADR2 :
ADR3 :
ADR4 :
$1031
$1032
$1033
$1034
OPTION : $1039
ADPU CSEL
Le bit CSEL est le Clock select. Pour une horloge E normale ce bit est mis o . Par contre si la
frquence de E est trop lente ( < 750 Khz ) ce bit dit tre mis 1 pour que la cellule RC prvu sur
la puce soit mise en service.
Le bit ADPU doit tre mis 1 pour valider le fonctionnement du convertisseur. Sil est 0 le
convertisseur est considr comme inactif.
ADCTL : $1030
CCF
SCAN MULT CD
CC
CB
CA
Le bit SCAN sil est 1 permet la conversion en continu. Quand il est 0 une seule conversion
est effectue.
Le bit CCF est un Flag qui doit tre lu. Il est 1 quand la conversion est termin et que les registres
de donnes contiennent des data valides. Pour remettre ce bit 0 il faut lire une fois le registre
ADCTL.
Bit CD = 0 :
CC CB CA
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
Entre
PE0
PE1
PE2
PE3
PE4
PE5
PE6
PE7
Rsultat
ADR1
ADR2
ADR3
ADR4
ADR1
ADR2
ADR3
ADR4
EEPROM DATA
Les 512 octets dEEPROM entre $B600 et $B7FF sont rservs pour sauvegarder des donnes. La
gestion de cette zone mmoire se fait avec le registre PPROG.
PPROG : $103B
ODD
EVEN
BYTE ROW
Le bit EEPGM sil est 1 permet le gnration de la tension interne de programmation Vpp.
Le bit EELAT permet de latcher lEEPROM. Quand il est 0 la mmoire peut tre lue. Quand il est
1 la mmoire se comporte comme si elle avait t enleve de lespace adressable du 68HC11 et
mise sur un programmateur. Dans ce cas laccs en lecture est impossible.
Un programme qui crit ou qui efface lEEPROM ne peut pas tre contenu dans cette lEEPROM.
Le bit ERASE permet sil est 1 deffacer lEEPROM. A 0 il permet la lecture ou lcriture.
Les bits ROW et BYTE slectionnent le mode deffacement quand le bit ERASE = 1.
BYTE ROW
Type deffacement
0
0
Effacement complet.
0
1
Effacement 16 octets dune ligne.
1
0
Effacement dun octet.
1
1
Effacement dun octet.
Les bits ODD et EVEN ne sont utiliss que par Motorola en phase de test.
EFFACEMENT TOTAL
EELAT = 1
ERASE = 1
PPROG =$06
Ecriture
EELATdata
= 0 qq
ERASE
une adresse
= 0 qq
EEPGM = 10
$00
PPROG 10
= $07
Attente
ms
EELAT = 1
ERASE = 1
BYTE = 1
ROW = 0
PPROG =$16
Effacement dun octet
17
Programmation dun octet
SOUS PROGRAMMES
GESTION EEPROM
********************************
**
SP ERASE BYTE
**
** X pointe adresse effacer
**
********************************
CLBYT
PSHA
LDAB #$16
STAB PPROG
STAB 0,X
LDAB #$17
STAB PPROG
JSR DLY10
CLR PPROG
PULA
RTS
********************************
**
SP ERASE TOUT
**
**
512 octets EEPROM
**
**
$B600 $B7FF
**
********************************
CLTOU
LDAB #$06
STAB PPROG
STAB $B600
LDAB #$07
STAB PPROG
JSR DLY10
CLR PPROG
RTS
**********************************
**
SP ECRITURE
**
** X pointe adresse programmer **
** A = DATA programmer
**
**********************************
ECRIT
LDAB #$02
STAB PPROG
STAA 0,X
LDAB #$03
STAB PPROG
JSR DLY10
CLR PPROG
********************************
**
SP DELAI
**
**
dure de 10 ms environ
**
********************************
DLY10
PSHX
LDX #$1000
BOU
DEX
BNE BOU
PULX
RTS
18
RTS
SPI
La SPI : Serial Peripheral interface est une interface de type srie synchrone. Elle permet la connexion
sous forme srie de plusieurs circuits du type Matre / Esclave comme par exemple les circuits I 2C.
Quatre pattes du 68HC11 sont rserves pour cette SPI sur le PORTD.
PD2 = MISO : Cest une entre si le 68HC11 est configur en matre et une sortie si on est en esclave.
PD3 = MOSI : Cest une sortie si le 68HC11 est configur en matre et une entre si on est en esclave.
PD4 = SCK : Cest lhorloge fournie par le matre pour synchroniser les changes de donnes. Cest
une entre pour un esclave.
PD5 = SS : Cest une entre de slection du mode. Sur un esclave cette patte est 0 . Sur un matre
cette patte peut tre soit une entre soit une sortie en fonction du bit DDR5. Si DDR5 = 0 alors SS est
une entre de dtection de dfaut de transmission. Un passage de 1 0 signale au 68HC11 quun
esclave veut devenir matre et quil doit cesser de transmettre. Si DDR5 = 1 alors SS est une sortie
usage gnral PD5.
Avant dutiliser la SPI on doit initialiser le registre de direction du port D.
DDRD : $1009
DDR5
DDR2 : Ce bit donne le sens de la patte MISO. Il est mis 1 pour un esclave, afin davoir la patte
configure en sortie. Pour un matre cette patte est une entre quelque soit la valeur du bit DDR2.
DDR3 : Ce bit donne le sens de la patte MOSI. Il est mis 1 pour un matre, afin que cette patte
soit configure en sortie. Pour un esclave cette patte est toujours une entre quelque soit DDR3.
DDR4 : Ce bit dtermine le sens de la patte SCK. Pour un matre on doit la mettre 1 pour avoir
une sortie. En mode esclave cette patte est une entre quelque soit ltat du bit DDR4.
DDR5 : Ce bit donne le sens de la patte SS. En mode esclave cette patte est toujours une entre
quelque soit ltat de ce bit. En mode matre si DDR5 = 1 la patte SS est une sortie dusage gnral, et
si DDR5 = 0 cette patte est une entre de dtection des dfauts de transmission.
SPCR : $1028
SPIE
SPE
DWO
SPR2
0
E Divise par
2
0
1
1
1
0
1
4
16
32
500 Khz
125 Khz
62,5 Khz
SPSR : $1029
SPIF WCOL
MOD
SPDR : $ 102A
Cest le registre DATA dans lequel on vient lire les donnes reues ou bien crire les donnes
transmettre. Cest le registre buffer du registre dcalage 8 bits du srialisateur/ dsrialisateur.
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.
20
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 .
UART
Linterface srie asynchrone peut tre programme par 5 registres :
SCDR :
$102F
Cest le registre de DATA. Une criture cette adresse met la DATA dans le registre
TDR, et une lecture de cette adresse permet de lire la donnes reue qui est dans RDR.
BAUD :
$102B
SCP1
SCP0
Les bits SCP fixent la vitesse max en fonction du quartz de loscillateur du CPU.
SCP1
0
0
1
1
SCP0
0
1
0
1
Div
1
3
4
13
Xtal 8 Mhz
125 K baud
41,667 K Baud
31,250 K baud
9600 Baud
Les bits SCR permettent dobtenir la vitesse qui est un sous multiple de la vitesse max
dtermine par les bits SPR en fonction du quartz.
SCR2
0
0
0
0
1
1
1
1
SCR1
0
0
1
1
0
0
1
1
SCR0
0
1
0
1
0
1
0
1
DIV
1
2
4
8
16
32
64
128
Max : 9600
9600 Baud
4800 Baud
2400 Baud
1200 Baud
600 Baud
300 Baud
150 Baud
75 Baud
Max : 19200
19200 Baud
9600 Baud
4800 Baud
2400 Baud
1200 Baud
600 Baud
300 Baud
150 Baud
Max : 76,8 K
76,8 K Baud
38,4 K Baud
19200 Baud
9600 Baud
4800 Baud
2400 Baud
1200 Baud
600 Baud
SCCR1 :
$102C
R8
SCCR2 :
$102D
TIE TCIE
T8
M
RIE
ILIE
WAKE
TE
RE
RWU SBK
Le bit T8 : Cest ce bit que lon crit et qui est transmis comme 9eme bit.
Le bit SBK : Si ce bit est 1 le Tx envoie en permanence des BREAK sur la ligne,
cest dire des blocs de 10 zros logiques. Un rcepteur qui reoit un tel signal ne voit
pas de bit STOP ( niveau logique 1 ) aprs les 8 bits de data et produit donc une
FRAMING ERROR . Ce bit 0 permet un fonctionnement normal du Tx.
Le bit RWU : si ce bit est 1 , le Rx est en sommeil. Il se rveillera en fonction du
choix fait avec le bit WAKE. Si ce bit est 0 linterface fonctionne normalement.
Le bit RE : Sil est 0 , le rcepteur est dsactiv. Quand il est 1 , le rcepteur
fonctionne normalement.
Le bit TE : Sil est 0 , lmetteur est dsactiv et la ligne PD1 peut alors tre
rcupre et passe sous contrle de DDRD1. Quand il est 1 le Tx fonctionne
normalement.
Le bit ILIE : Sil est 1 , il autorise les IT causes par le bit IDLE du registre dtat.
Le bit RIE : Sil est 1 , il autorise les IT causes par le rcepteur, donc par les bits
RDRF et OR du registre dtat.
Le bit TCIE : Sil est 1 , il autorise les IT si une transmission est compltement
termine, donc causes par le bit TC du registre dtat.
Le bit TIE : Sil est 1 il autorise les IT si le registre de transmission est vide, donc
causes par le bit TDRE du registre dtat.
SCSR :
$102E
NF
FE
SOUS PCBUG :
Taper la commande : DEFM NOM-MACRO ou bien DEFM AUTOSTART ( si on veut que cette
macro se lance automatiquement au dmarrage de PCBUG).
Une fentre souvre et on peut taper directement les commandes. Attention les directives BEGIN et
END sont ajoutes automatiquement par PCBUG.
Exemple: EEPROM $F800 $FFFF
MM $1035 $10
EEPROM ERASE BULK $F800
Terminer par la touche ESC puis la touche
RETOUR A PCBUG :
Sauver la macro dans une librairie par la commande : SAVEM NOM-LIBRAIRIE
Soit :
-1- Mettre dans PCBUG.bat la ligne suivante : MACRO=NOM-LIBRAIRIE
-2- Aprs le lancement de PCBUG taper : NOM-MACRO . Si la macro AUTOSTART
fait partie de la librairie charge, elle se lancera automatiquement.
EXEMPLE :
La librairie MENES.MCR contient trois macro : AUTOSTART EFF et GO
DEFM AUTOSTART
BEGIN
eeprom $F800 $ffff
mm $1035 $10
END
DEFM EFF
BEGIN
EEPROM ERASE BULK $F800
END
DEFM GO
BEGIN
G $F800
END
68HC811 et PCBUG
PRISE EN MAIN
23
PCBUG:
Sous DOS crer un rpertoire (ex: 68HC11) et y copier le fichier ENAC6811.exe. Ce fichier
contient tous les fichiers compresss de PCBUG11.exe ainsi que le cross assembleur ASMHC11.exe de
MOTOROLA. L'excution de ce fichier dcompressera l'archive et crera tous les fichiers ncessaires
ainsi que les talkers des diffrents 68HC11.
Pour lancer PCBUG11.exe il faut lancer un fichier *.bat (par exemple PCBUG.bat) qui charge le
bon Talker , qui dtermine le port srie utilis et qui charge ventuellement une bibliothque de
MACRO.
Exemple : PCBUG.bat = PCBUG11.exe -a MACRO=MENES PORT=1
PCBUG va dmarrer sur le PORT COM1, utilisera le Talker du 68HC11E2 et la bibliothque de
MACRO nomme MENES.mcr sera charge.
FAIRE un PROGRAMME:
Lancer l'diteur du DOS en tapant "EDIT nom-prog.asc". L'extension du nom de programme
est importante pour l'assembleur. Aprs avoir entr le programme, le sauver et quitter l'diteur.
L'assemblage se fait en tapant "ASMHC11 nom-prog". Le cross assembleur attend un nom de
programme ayant pour extension *.asc. Il va crer un fichier listing : nom-prog.lst dans lequel il
signalera les ventuelles erreurs d'assemblage, et un fichier objet: nom-prog.s19 qui sera directement
chargeable par PCBUG dans l'EEPROM du 68HC11
68HC11:
La maquette comportant le 68HC11 doit tre relie au Port COM1 et le microcontrleur doit
fonctionner en mode BOOT (pin MOD B "0").
Faire un reset du micro. Puis lancer PCBUG.bat en tapant "PCBUG".
- Sous PCBUG dfinir la zone EEPROM en tapant : "EEPROM $F800 $FFFF"
- Lever la protection de l'EEPROM en tapant "MM $1035" puis $10 la place de $FF.
- Ces commandes sont faites automatiquement si l'on a charg la macro: MENES.mcr.
On peut alors charger le programme du 68HC11 en tapant "LOADS nom-prog".
Chaque octet se programme en 20 ms (10 ms pour d'abord effacer et 10ms pour programmer).
Pour gagner les 10 ms d'effacement chaque octet il suffit d'effacer totalement l'EEPROM avant de
commencer le LOADS. Pour cela il faut taper : "EEPROM ERASE BULK $F800".
Si la Macro MENES.mcr a t charge il suffit de taper "EFF"
Le programme est en place dans l'EEPROM du 68HC11 on peut donc l'excuter sous PCBUG
en mode BOOT en tapant "G $F800". Si la macro MENES.mcr a t charge il suffit de taper : "GO".
Le programme peut aussi tre excut en mode SEUL. Pour cela passer le micro en mode SEUL
(pin MOD B "1") et faire un reset, le programme en EEPROM est excut.
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
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
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
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
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.
25
CCR
A
B
Adresses dcroissantes
X High
X low
YHigh
Y low
Pointeur de pile
avant IT
PC High
PC low
26