English
Language : 

SAM7X256_14 Datasheet, PDF (104/662 Pages) ATMEL Corporation – ARM-based Flash MCU
The Flash technology requires that an erase must be done before programming. The entire memory plane can be erased
at the same time, or a page can be automatically erased by clearing the NEBP bit in the MC_FMR register before writing
the command in the MC_FCR register.
By setting the NEBP bit in the MC_FMR register, a page can be programmed in several steps if it has been erased
before (see Figure 19-6).
Figure 19-6. Example of Partial Page Programming
32 bits wide
32 bits wide
32 bits wide
16 words
16 words
16 words
16 words
FF FF FF FF
...
FF FF FF FF
FF FF FF FF
FF FF FF FF
...
FF FF FF FF
FF FF FF FF
FF FF FF FF
...
FF FF FF FF
FF FF FF FF
FF FF FF FF
...
FF FF FF FF
FF FF FF FF
FF FF FF FF
...
FF FF FF FF
FF FF FF FF
CA FE CA FE
...
CA FE CA FE
CA FE CA FE
FF FF FF FF
...
FF FF FF FF
FF FF FF FF
FF FF FF FF
...
FF FF FF FF
FF FF FF FF
FF FF FF FF
...
FF FF FF FF
FF FF FF FF
CA FE CA FE
...
CA FE CA FE
CA FE CA FE
DE CA DE CA
...
DE CA DE CA
DE CA DE CA
FF FF FF FF
...
FF FF FF FF
FF FF FF FF
Step 1.
Erase All Flash
Page 7 erased
Step 2.
Programming of the second part of Page 7
(NEBP = 1)
Step 3.
Programming of the third part of Page 7
(NEBP = 1)
The Partial Programming mode works only with 32-bit (or higher) boundaries. It cannot be used with boundaries lower
than 32 bits (8 or 16-bit for example).
After programming, the page (the whole lock region) can be locked to prevent miscellaneous write or erase sequences.
The lock bit can be automatically set after page programming using WPL.
Data to be written are stored in an internal latch buffer. The size of the latch buffer corresponds to the page size. The
latch buffer wraps around within the internal memory area address space and appears to be repeated by the number of
pages in it.
Note: Writing of 8-bit and 16-bit data is not allowed and may lead to unpredictable data corruption.
Data are written to the latch buffer before the programming command is written to the Flash Command Register
MC_FCR. The sequence is as follows:
 Write the full page, at any page address, within the internal memory area address space using only 32-bit access.
 Programming starts as soon as the page number and the programming command are written to the Flash
Command Register. The FRDY bit in the Flash Programming Status Register (MC_FSR) is automatically cleared.
 When programming is completed, the bit FRDY in the Flash Programming Status Register (MC_FSR) rises. If an
interrupt was enabled by setting the bit FRDY in MC_FMR, the interrupt line of the Memory Controller is activated.
Two errors can be detected in the MC_FSR register after a programming sequence:
 Programming Error: A bad keyword and/or an invalid command have been written in the MC_FCR register.
 Lock Error: The page to be programmed belongs to a locked region. A command must be previously run to unlock
the corresponding region.
19.2.4.2 Erase All Command
The entire memory can be erased if the Erase All Command (EA) in the Flash Command Register MC_FCR is written.
Erase All operation is allowed only if there are no lock bits set. Thus, if at least one lock region is locked, the bit LOCKE
in MC_FSR rises and the command is cancelled. If the bit LOCKE has been written at 1 in MC_FMR, the interrupt line
rises.
SAM7X Series [DATASHEET]
6120K–ATARM–11-Feb-14
104