Table 130. SPI Serial Programming Instruction Set
Instruction Format
Instruction
Byte 1
Byte 2
Byte 3
Programming Enable
1010 1100 0101 0011 xxxx xxxx
Chip Erase
Read Program Memory
1010 1100
0010 H000
100x xxxx
xaaa aaaa
xxxx xxxx
bbbb bbbb
Load Program Memory
Page
0100 H000 xxxx xxxx xbbb bbbb
Write Program Memory
Page
Read EEPROM Memory
Write EEPROM Memory
Read Lock Bits
0100 1100 xaaa aaaa bxxx xxxx
1010 0000 xxxx xaaa bbbb bbbb
1100 0000 xxxx xaaa bbbb bbbb
0101 1000 0000 0000 xxxx xxxx
Write Lock Bits
1010 1100 111x xxxx xxxx xxxx
Read Signature Byte
Write Fuse Bits
0011 0000 xxxx xxxx xxxx xxbb
1010 1100 1010 0000 xxxx xxxx
Write Fuse High Bits
1010 1100 1010 1000 xxxx xxxx
Write Extended Fuse Bits 1010 1100 1010 0100 xxxx xxxx
Read Fuse Bits
0101 0000 0000 0000 xxxx xxxx
Byte4
xxxx xxxx
xxxx xxxx
oooo oooo
iiii iiii
xxxx xxxx
oooo oooo
iiii iiii
xxoo oooo
11ii iiii
oooo oooo
iiii iiii
iiii iiii
xxxx xxii
oooo oooo
Operation
Enable SPI Serial Programming
after RESET goes low.
Chip Erase EEPROM and Flash.
Read H (high or low) data o from
Program memory at word address
a:b.
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 at
address a:b.
Read data o from EEPROM
memory at address a:b.
Write data i to EEPROM memory
at address a:b.
Read Lock bits. “0” = programmed,
“1” = unprogrammed. See Table
116 on page 290 for details.
Write Lock bits. Set bits = “0” to
program Lock bits. See Table 116
on page 290 for details.
Read Signature Byte o at address
b.
Set bits = “0” to program, “1” to
unprogram. See Table 120 on page
292 for details.
Set bits = “0” to program, “1” to
unprogram. See Table 119 on page
292 for details.
Set bits = “0” to program, “1” to
unprogram. See Table 120 on page
292 for details.
Read Fuse bits. “0” = programmed,
“1” = unprogrammed. See Table
120 on page 292 for details.
310 ATmega64(L)
2490G–AVR–03/04