291
ATmega16M1/32M1/64M1 [DATASHEET]
8209E–AVR–11/2012
programmed without chip erasing the device. In this case, data polling cannot be used for the value 0xFF, and the
user will have to wait at least t
WD_EEPROM before programming the next byte. See Table 27-17 for tWD_EEPROM value. Figure 27-11. Serial programming waveforms.
Table 27-17. Minimum wait delay before writing the next flash or EEPROM location.
Symbol
Minimum wait delay
t
WD_FLASH
4.5ms
tWD_EEPROM
3.6ms
t
WD_ERASE
9.0ms
MSB
LSB
SERIAL CLOCK INPUT
(SCK)
SERIAL DATA INPUT
(MOSI)
(MISO)
SAMPLE
SERIAL DATA OUTPUT
Table 27-18. Serial programming instruction set.
Instruction
Instruction format
Operation
Byte 1
Byte 2
Byte 3
Byte 4
Programming Enable
1010 1100
0101 0011
xxxx xxxx
Enable Serial Programming after
RESET goes low
Chip Erase
1010 1100
100x xxxx
xxxx xxxx
Chip Erase EEPROM and Flash
Read Program Memory
0010 H000
000a aaaa
bbbb bbbb
oooo oooo
Read H (high or low) data o from
Program memory at word address a:b
Load Program Memory Page
0100 H000
000x xxxx
xxbb bbbb
iiii iiii
Write H (high or low) data i to Program
Memory page at word address b. Data
low byte must be loaded before Data
high byte is applied within the same
address
Write Program Memory Page
0100 1100
000a aaaa
bb
xx xxxx
xxxx xxxx
Write Program Memory Page at
address a:b
Read EEPROM Memory
1010 0000
000x xxaa
bbbb bbbb
oooo oooo
Read data o from EEPROM memory at
address a:b
Write EEPROM Memory
1100 0000
000x xxaa
bbbb bbbb
iiii iiii
Write data i to EEPROM memory at
address a:b
Load EEPROM Memory
Page (page access)
1100 0001
0000 0000
0000 00bb
iiii iiii
Load data i to EEPROM memory page
buffer. After data is loaded, program
EEPROM page
Write EEPROM Memory
Page (page access)
1100 0010
00xx xxaa
bbbb bb00
xxxx xxxx
Write EEPROM page at address a:b
Read Lock bits
0101 1000
0000 0000
xxxx xxxx
xxoo oooo
Read Lock bits. “0” = programmed, “1”