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
.
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”
. 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.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
D
R
O
W
B
S
M
E
G
A
P
1
INSTRUCTION WORD
PAGE
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
Y
Y
Z-pointer
-