Atmel ATmega328P Xplained Mini MEGA328P-XMINI MEGA328P-XMINI Data Sheet

Product codes
MEGA328P-XMINI
Page of 657
258
ATmega48A/PA/88A/PA/168A/PA/328/P [DATASHEET]
Atmel-8271H-AVR- ATmega-Datasheet_08/2014
26.2.2 Reading the Fuse and Lock Bits from Software
It is possible to read both the Fuse and Lock bits from software. To read the Lock bits, load the Z-pointer with 
0x0001 and set the BLBSET and SPMEN bits in SPMCSR. When an LPM instruction is executed within three 
CPU cycles after the BLBSET and SPMEN bits are set in SPMCSR, the value of the Lock bits will be loaded in 
the destination register. The BLBSET and SPMEN bits will auto-clear upon completion of reading the Lock bits 
or if no LPM instruction is executed within three CPU cycles or no SPM instruction is executed within four CPU 
cycles. When BLBSET and SPMEN are cleared, LPM will work as described in the Instruction set Manual.
The algorithm for reading the Fuse Low byte is similar to the one described above for reading the Lock bits. To 
read the Fuse Low byte, load the Z-pointer with 0x0000 and set the BLBSET and SPMEN bits in SPMCSR. 
When an LPM instruction is executed within three cycles after the BLBSET and SPMEN bits are set in the 
SPMCSR, the value of the Fuse Low byte (FLB) will be loaded in the destination register as shown below.See 
 for a detailed description and mapping of the Fuse Low byte.
Similarly, when reading the Fuse High byte (FHB), load 0x0003 in the Z-pointer. When an LPM instruction is 
executed within three cycles after the BLBSET and SPMEN bits are set in the SPMCSR, the value of the Fuse 
High byte will be loaded in the destination register as shown below. See 
 for detailed 
description and mapping of the Extended Fuse byte.
Similarly, when reading the Extended Fuse byte (EFB), load 0x0002 in the Z-pointer. When an LPM instruction 
is executed within three cycles after the BLBSET and SPMEN bits are set in the SPMCSR, the value of the 
Extended Fuse byte will be loaded in the destination register as shown below. See 
detailed description and mapping of the Extended Fuse byte.
Fuse and Lock bits that are programmed, will be read as zero. Fuse and Lock bits that are unprogrammed, will 
be read as one.
Bit
7
6
5
4
3
2
1
0
Rd
LB2
LB1
Bit
7
6
5
4
3
2
1
0
Rd
FLB7
FLB6
FLB5
FLB4
FLB3
FLB2
FLB1
FLB0
Bit
7
6
5
4
3
2
1
0
Rd
FHB7
FHB6
FHB5
FHB4
FHB3
FHB2
FHB1
FHB0
Bit
7
6
5
4
3
2
1
0
Rd
FHB7
FHB6
FHB5
FHB4
FHB3
FHB2
FHB1
FHB0