33.8.3 Serial Programming Instruction Set

This section describes the Instruction Set.

Table 33-18. Serial Programming Instruction Set (Hexadecimal values)
Instruction/OperationInstruction Format
Byte 1Byte 2Byte 3Byte 4
Programming Enable0xAC0x530x000x00
Chip Erase (Program Memory/EEPROM)0xAC0x800x000x00
Poll RDY/BSY0xF00x000x00data byte out
Load Instructions
Load Extended Address byte(1)0x4D0x00Extended adr0x00
Load Program Memory Page, High byte0x480x00adr LSBhigh data byte in
Load Program Memory Page, Low byte0x400x00adr LSBlow data byte in
Load EEPROM Memory Page (page access)0xC10x000000 000aa(2)data byte in
Read Instructions(5)
Read Program Memory, High byte0x28adr MSBadr LSBhigh data byte out
Read Program Memory, Low byte0x20adr MSBadr LSBlow data byte out
Read EEPROM Memory0xA00000 00aa(2)aaaa aaaa(2)data byte out
Read Lock bits(3)0x580x000x00data byte out
Read Signature Byte0x300x000000 000aa(2)data byte out
Read Fuse bits(3)0x500x000x00data byte out
Read Fuse High bits(3)0x580x080x00data byte out
Read Extended Fuse Bits(3)0x500x080x00data byte out
Read Calibration Byte0x380x000x00data byte out
Write Instructions(5)
Write Program Memory Page(6)0x4Cadr MSB(8)adr LSB(8)0x00
Write EEPROM Memory0xC00000 00aa(2)aaaa aaaa(2)data byte in
Write EEPROM Memory Page (page access)0xC20000 00aa(2)aaaa aa00(2)0x00
Write Lock bits(3)(4)0xAC0xE00x00data byte in
Write Fuse bits(3)(4)0xAC0xA00x00data byte in
Write Fuse High bits(3)(4)0xAC0xA80x00data byte in
Write Extended Fuse Bits(3)(4)0xAC0xA40x00data byte in
Note:
  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 corresponding section for Fuse and Lock bits, Calibration and Signature bytes and Page size.
  6. Instructions accessing program memory use a word address. This address may be random within the page range.
Note: See www.microchip.com/design-centers/8-bit/microchip-avr-mcus 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, Please refer to the following figure.

Figure 33-7. Serial Programming Instruction example