274
ATmega165A/PA/325A/PA/3250A/PA/645A/P/6450A/P [DATASHEET]
8285E–AVR–02/2013
27.8.3
Serial Programming Instruction set
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 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.
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.
Table 27-16. Serial Programming instruction set.
Instruction/Operation
Instruction format
Byte 1
Byte 2
Byte 3
Byte4
Programming Enable
$AC
$53
$00
Chip Erase (Program Memory/EEPROM)
$AC
$80
$00
Poll RDY/BSY
$F0
$00
data byte out
Load Instructions
Load Extended Address byte
(1)$4D
$00
Extended adr
$00
Load Program Memory Page, High byte
$48
$00
adr LSB
high data byte in
Load Program Memory Page, Low byte
$40
$00
adr LSB
low data byte in
Load EEPROM Memory Page (page access)
$C1
$00
0000 00aa
data byte in
Read Instructions
Read Program Memory, High byte
$28
adr MSB
adr LSB
high data byte out
Read Program Memory, Low byte
$20
adr MSB
adr LSB
low data byte out
Read EEPROM Memory
$A0
0000 00aa
aaaa aaaa
data byte out
Read Lock bits
$58
$00
data byte out
Read Signature Byte
$30
$00
0000 00aa
data byte out
Read Fuse bits
$50
$00
data byte out
Read Fuse High bits
$58
$08
$00
data byte out
Read Extended Fuse Bits
$50
$08
$00
data byte out
Read Calibration Byte
$38
$00
data byte out
Write Program Memory Page
$4C
adr MSB
adr LSB
$00
Write EEPROM Memory
$C0
0000 00aa
aaaa aaaa
data byte in
Write EEPROM Memory Page (page access)
$C2
0000 00aa
aaaa aa00
$00
Write Lock bits
$AC
$E0
$00
data byte in
Write Fuse bits
$AC
$A0
$00
data byte in
Write Fuse High bits
$AC
$A8
$00
data byte in
Write Extended Fuse Bits
$AC
$A4
$00
data byte in