Table 27-17. Serial Programming Instruction Set (Hexadecimal values) (Continued)
Instruction Format
Instruction/Operation
Write EEPROM Memory Page (page access)
Write Lock bits
Byte 1
$C2
Byte 2
Byte 3
aaaa aa00
$00
Byte4
0000 00aa
$E0
$00
$AC
$AC
$AC
$AC
data byte in
data byte in
data byte in
data byte in
Write Fuse bits
$A0
$00
Write Fuse High bits
$A8
$00
Write Extended Fuse Bits
$A4
$00
Notes: 1. Not all instructions are applicable for all parts.
2. a = address.
3. Bits are programmed ‘0’, unprogrammed ‘1’.
4. To ensure future compatibility, unused Fuses and Lock bits should be unprogrammed (‘1’) .
5. Refer to the correspondig section for Fuse and Lock bits, Calibration and Signature bytes and Page size.
6. Instructions accessing program memory use a word address. This word may be random within the page range.
7. See htt://www.atmel.com/avr for Application Notes regarding programming and programmers.
If the LSB in RDY/BSY data byte out is ‘1’, a programming operation is still pending. Wait until
this bit returns ‘0’ before the next instruction is carried out.
Within the same page, the low data byte must be loaded prior to the high data byte.
After data is loaded to the page buffer, program the EEPROM page, see Figure 27-8 on page
302.
Figure 27-8. Serial Programming Instruction example
Serial Programming Instruction
Load Program Memory Page (High/Low Byte)/
Load EEPROM Memory Page (page access)
Write Program Memory Page/
Write EEPROM Memory Page
Byte 1
Byte 2
Byte 3
Byte 4
Byte 1
Byte 2
Byte 3
Byte 4
Adr MSB
Adr LSB
Adr MSB
Adr LSB
Bit 15
B
0
Bit 15
B
0
Page Buffer
Page Offset
Page 0
Page 1
Page 2
Page Number
Page N-1
Program Memory/
EEPROM Memory
302
ATmega48/88/168
2545M–AVR–09/07