
Application Note
AN1060
—
Rev. 1.0
288
MOTOROLA
Figure 3. MC68HC711E9 Bootloader Flowchart
RECEIVE DATA READY
INITIALIZATION:
SP = TOP OF RAM($01FF)
X = START OF REGS ($1000)
SPCR = $20 (SET DWOMBIT)
BAUD = $A2 (
÷
4;
÷
4) (7812.5 BAUD @ 2 MHz)
SCCR2 = $C0 (Tx & Rx ON)
TOC1 = DELAY CONSTANT (539 = 4 SCI CHARACTER TIMES)
START
FROMRESET
IN BOOT MODE
SEND BREAK
RECEIVED FIRST CHAR YET
NO
YES
FIRST CHAR = $00
NO
YES
JUMP TO START
OF EEPROM($B600)
NOTZERO
FIRST CHAR = $FF
NO
YES
BAUDOK
SWITCH TO SLOWER SCI RATE...
BAUD = $33 (
÷
13;
÷
8) (1200 BAUD @ 2 MHz)
CHANGE DELAY CONSTANT...
TOC1 = 3504 (4 SCI CHARACTER TIMES)
NOTE THAT A BREAK
CHARACTER IS ALSO
RECEIVED AS $00
POINT TO START OF RAM( Y = $0000 )
INITIALIZE TIMEOUT COUNT
STORE RECEIVED DATA TO RAM( ,Y )
TRANSMIT (ECHO) FOR VERIFY
POINT AT NEXT RAMLOCATION
SET UP FOR PROGRAMUTILITY:
X = PROGRAMMING TIME CONSTANT
Y = START OF EPROM
JUMP TO START
OF RAM($0000)
WAIT
NO
YES
WTLOOP
DECREMENT TIMEOUT COUNT
TIMED OUT YET
YES
[10]
NO
PAST END OF RAM
NO
YES
STAR
LOOP =
19
CYCLES
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[11]
[12]
[13]
[14]
[15]
[16]
[17]