437
8331B–AVR–03/12
Atmel AVR XMEGA AU
Figure 33-1. Flash addressing for self-programming.
33.11.2 NVM Flash Commands
The NVM commands that can be used for accessing the flash program memory, signature row
and calibration row are listed in Table 33-2.
For self-programming of the flash, the trigger for action-triggered commands is to set the
CMDEX bit in the NVM CTRLA register (CMDEX). The read-triggered commands are triggered
by executing the (E)LPM instruction (LPM). The write-triggered commands are triggered by exe-
cuting the SPM instruction (SPM).
The Change Protected column indicates whether the trigger is protected by the configuration
change protection (CCP) or not. This is a special sequence to write/execute the trigger during
self-programming. For more details, refer to ”CCP – Configuration Change Protection register”
on page 15. CCP is not required for external programming. The two last columns show the
address pointer used for addressing and the source/destination data register.
Section 33.11.1.1 on page 436 through Section 33.11.2.14 on page 441 explain in detail the
algorithm for each NVM operation.
FPAGE FWORD 0/1
BIT
Z-Pointer
0
B
S
M
DR
O
W
B
S
M
E
G
AP1
INSTRUCTION WORDPAGE
PAGE
PROGRAM MEMORY
WORD ADDRESS
WITHIN A PAGE
PAGE ADDRESS
WITHIN THE FLASH
FWORD
00
01
02
PAGEEND
00
01
02
FLASHEND
FPAGE
Low/High Byte select for (E)LPM
Table 33-2. Flash self-programming commands .
CMD[6:0] Group Configuration Description Trigger
CPU
Halted
NVM
Busy
Change
Protected
Address
Pointer
Data
Registe
r
0x00 NO_OPERATION No operation / read flash -/(E)LPM -/N N -/N -/ Z-pointer -/Rd
Flash Page Buffer
0x23 LOAD_FLASH_BUFFER Load flash page buffer SPM N N N Z-pointer R1:R0
0x26 ERASE_FLASH_BUFFER Erase flash page buffer CMDEX N Y Y Z-pointer -
Flash
0x2B ERASE_FLASH_PAGE Erase flash page SPM N/Y
(2)
YYZ-pointer -