
40
AT90S1200
0838H–AVR–03/02
4.
Give XTAL1 a positive pulse. This loads the command.
B: Load Address High Byte
1.
Set XA1, XA0 to “00”. This enables address loading.
2.
Set BS to “1”. This selects high byte.
3.
Set DATA = Address high byte ($00 - $01).
4.
Give XTAL1 a positive pulse. This loads the address high byte.
C: Load Address Low Byte
1.
Set XA1, XA0 to “00”. This enables address loading.
2.
Set BS to “0”. This selects low byte.
3.
Set DATA = Address low byte ($00 - $FF).
4.
Give XTAL1 a positive pulse. This loads the address low byte.
D: Load Data Low Byte
1.
Set XA1, XA0 to “01”. This enables data loading.
2.
Set DATA = Data low byte ($00 - $FF).
3.
Give XTAL1 a positive pulse. This loads the data low byte.
E: Write Data Low Byte
1.
Set BS to “0”. This selects low data.
2.
Give WR a negative pulse. This starts programming of the data byte. RDY/BSY
goes low.
3.
Wait until RDY/BSY goes high to program the next byte.
F: Load Data High Byte
1.
Set XA1, XA0 to “01”. This enables data loading.
2.
Set DATA = Data high byte ($00 - $FF).
3.
Give XTAL1 a positive pulse. This loads the data high byte.
G: Write Data High Byte
1.
Set BS to “1”. This selects high data.
2.
Give WR a negative pulse. This starts programming of the data byte. RDY/BSY
goes low.
3.
Wait until RDY/BSY goes high to program the next byte.
The loaded command and address are retained in the device during programming. For
efficient programming, the following should be considered:
The command needs only be loaded once when writing or reading multiple memory
locations.
Address high byte needs only be loaded before programming a new 256-word page
in the Flash.
Skip writing the data value $FF; that is, the contents of the entire Flash and
EEPROM after a Chip Erase.
These considerations also apply to EEPROM programming and Flash, EEPROM and
signature byte reading.