291
8025I–AVR–02/09
ATmega48P/88P/168P/328P
24.8.16 ATmega328P Boot Loader Parameters
In Table 24-13 through Table 24-15, the parameters used in the description of the self programming are given.
Note: The different BOOTSZ Fuse configurations are shown in Figure 24-2 on page 280.
For details about these two section, see ”NRWW – No Read-While-Write Section” on page 278 and ”RWW – Read-While-
Write Section” on page 278
Note: 1. Z15: always ignored
Z0: should be zero for all SPM commands, byte select for the LPM instruction.
See ”Addressing the Flash During Self-Programming” on page 282 for details about the use of Z-pointer during Self-
Programming.
Table 24-13. Boot Size Configuration, ATmega328P
BOOTSZ1 BOOTSZ0
Boot
Size Pages
Application
Flash
Section
Boot
Loader
Flash
Section
End
Application
Section
Boot Reset Address (Start Boot
Loader Section)
1 1 256 words 4 0x0000 - 0x3EFF 0x3F00 - 0x3FFF 0x3EFF 0x3F00
1 0 512 words 8 0x0000 - 0x3DFF 0x3E00 - 0x3FFF 0x3DFF 0x3E00
0 1 1024 words 16 0x0000 - 0x3BFF 0x3C00 - 0x3FFF 0x3BFF 0x3C00
0 0 2048 words 32 0x0000 - 0x37FF 0x3800 - 0x3FFF 0x37FF 0x3800
Table 24-14. Read-While-Write Limit, ATmega328P
Section Pages Address
Read-While-Write section (RWW) 224 0x0000 - 0x37FF
No Read-While-Write section (NRWW) 32 0x3800 - 0x3FFF
Table 24-15. Explanation of Different Variables used in Figure 24-3 and the Mapping to the Z-pointer, ATmega328P
Variable
Corresponding
Z-value
(1)
Description
PCMSB 13
Most significant bit in the Program Counter. (The Program Counter
is 14 bits PC[13:0])
PAG EM SB 5
Most significant bit which is used to address the words within
one page (64 words in a page requires 6 bits PC [5:0])
ZPCMSB Z14
Bit in Z-register that is mapped to PCMSB. Because Z0 is not used,
the ZPCMSB equals PCMSB + 1.
ZPAGEMSB Z6
Bit in Z-register that is mapped to PAGEMSB. Because Z0 is not
used, the ZPAGEMSB equals PAGEMSB + 1.
PCPAGE PC[13:6] Z14:Z7
Program counter page address: Page select, for page erase and
page write
PCWORD PC[5:0] Z6:Z1
Program counter word address: Word select, for filling temporary
buffer (must be zero during page write operation)