Reading the flash, Reading the eeprom, Programming the fuse bits – Rainbow Electronics ATmega161L User Manual
Page 123: Programming the lock bits, Atmega161(l)

123
ATmega161(L)
1228C–AVR–08/02
Reading the Flash
The algorithm for reading the Flash memory is as follows (refer to “Programming the
Flash” on page 120 for details on command and address loading):
1.
A: Load Command “0000 0010”.
2.
H: Load Address High Byte ($00 - $1F)
3.
B: Load Address Low Byte ($00 - $FF)
4.
Set OE to “0”, and BS1 to “0”. The Flash word Low byte can now be read at
DATA.
5.
Set BS to “1”. The Flash word High byte can now be read at DATA.
6.
Set OE to “1”.
Reading the EEPROM
The algorithm for reading the EEPROM memory is as follows (refer to “Programming the
Flash” on page 120 for details on command and address loading):
1.
A: Load Command “0000 0011”.
2.
H: Load Address High Byte ($00 - $01)
3.
B: Load Address ($00 - $FF)
4.
Set OE to “0”, and BS1 to “0”. The EEPROM Data byte can now be read at
DATA.
5.
Set OE to “1”.
Programming the Fuse Bits
The algorithm for programming the Fuse bits is as follows (refer to “Programming the
Flash” on page 120 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 6 = BOOTRST Fuse bit
Bit 5 = SPIEN Fuse bit
Bit 4 = SUT Fuse bit
Bit 3 = “1”. This bit is reserved and must be left unprogrammed (“1”).
Bits 2 - 0 = CKSEL2..0 Fuse bits
Bit 7 = “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 Lock Bits
The algorithm for programming the Lock bits is as follows (refer to “Programming the
Flash” on page 120 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
Bits 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.