Programming the fuse low bits, Programming the fuse high bits, Programming the lock bits – Rainbow Electronics ATmega163L User Manual
Page 130: Reading the fuse and lock bits, Atmega163(l)

ATmega163(L)
130
Programming the Fuse Low Bits
The algorithm for programming the Fuse Low bits is as follows (refer to “Programming the Flash” on page 126 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.
Bit 7 = BODLEVEL Fuse bit
Bit 6 = BODEN Fuse bit
Bit 5 = SPIEN Fuse bit
Bit 3..0 = CKSEL3..0 Fuse bits
Bit 4 = ‘1’. This bit is reserved and should be left unprogrammed (‘1’).
3.
Give WR a negative pulse and wait for RDY/BSY to go high.
Programming the Fuse High Bits
The algorithm for programming the Fuse high bits is as follows (refer to “Programming the Flash” on page 126 for details on
Command and Data loading):
1.
A: Load Command ‘0100 0000’.
2.
C: Load Data High Byte. Bit n = ‘0’ programs and bit n = ‘1’ erases the Fuse bit.
Bit 2..1 = BOOTSZ1..0 Fuse bits
Bit 0 = BOOTRST Fuse bit
Bit 7..3 = ‘1’. These bits are reserved and should be left unprogrammed (‘1’).
3.
Set BS1 to ‘1’. 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.
Programming the Lock Bits
The algorithm for programming the Lock bits is as follows (refer to “Programming the Flash” on page 126 for details on
Command and Data loading):
1.
A: Load Command ‘0010 0000’.
2.
D: Load Data Low Byte. Bit n = ‘0’ programs the Lock bit.
Bit 5 = Boot Lock Bit12
Bit 4 = Boot Lock Bit11
Bit 3 = Boot Lock Bit02
Bit 2 = Boot Lock Bit01
Bit 1 = Lock Bit2
Bit 0 = Lock Bit1
Bit 7..6 = ‘1’. These bits are reserved and should be left unprogrammed (‘1’).
3.
L: Write Data Low Byte.
The Lock bits can only be cleared by executing Chip Erase.
Reading the Fuse and Lock Bits
The algorithm for reading the Fuse and Lock bits is as follows (refer to “Programming the Flash” on page 126 for details on
Command loading):
1.
A: Load Command ‘0000 0100’.
2.
Set OE to ‘0’, BS2 to ‘0’ and BS1 to ‘0’. The status of the Fuse Low bits can now be read at DATA (‘0’ means pro-
grammed).
Bit 7 = BODLEVEL Fuse bit
Bit 6 = BODEN Fuse bit
Bit 5 = SPIEN Fuse bit
Bit 3..0 = CKSEL3..0 Fuse bits