25.8.9 Programming the Fuse High Bits
The algorithm for programming the fuse high bits is as follows (refer to Section 25.8.4 “Programming the Flash” on page 262
for details on command and data loading):
1. A: Load command “0100 0000”.
2. C: Load data low byte. Bit n = “0” programs and bit n = “1” erases the fuse bit.
3. Set BS1 to “1” and BS2 to “0”. This selects high data byte.
4. Give WR a negative pulse and wait for RDY/BSY to go high.
5. Set BS1 to “0”. This selects low data byte.
25.8.10 Programming the Extended Fuse Bits
The algorithm for programming the extended fuse bits is as follows (refer to Section 25.8.4 “Programming the Flash” on page
262 for details on command and data loading):
1. A: Load command “0100 0000”.
2. C: Load data low byte. Bit n = “0” programs and bit n = “1” erases the fuse bit.
3. Set BS1 to “0” and BS2 to “1”. This selects extended data byte.
4. Give WR a negative pulse and wait for RDY/BSY to go high.
5. Set BS2 to “0”. This selects low data byte.
Figure 25-5. Programming the FUSES Waveforms
Write Fuse Low byte
Write Fuse High byte
XX
Write Extended Fuse byte
XX
A
C
A
C
A
C
DATA
XA1
XA0
BS1
0x40
DATA
XX
0x40
DATA
0x40
DATA
BS2
XTAL1
WR
RDY/BSY
RESET +12V
OE
PAGEL
25.8.11 Programming the Lock Bits
The algorithm for programming the lock bits is as follows (refer to Section 25.8.4 “Programming the Flash” on page 262 for
details on command and data loading):
1. A: Load command “0010 0000”.
2. C: Load data low byte. Bit n = “0” programs the Lock bit. If LB mode 3 is programmed (LB1 and LB2 is pro-
grammed), it is not possible to program the boot lock bits by any external programming mode.
3. Give WR a negative pulse and wait for RDY/BSY to go high.
The lock bits can only be cleared by executing chip erase.
266
ATmega16/32/64/M1/C1 [DATASHEET]
7647O–AVR–01/15