Datasheet
dsPIC30F2011/2012/3012/3013
DS70139G-page 56 © 2010 Microchip Technology Inc.
6.2 Erasing Data EEPROM
6.2.1 ERASING A BLOCK OF DATA
EEPROM
In order to erase a block of data EEPROM, the
NVMADRU and NVMADR registers must initially point
to the block of memory to be erased. Configure
NVMCON for erasing a block of data EEPROM and
set the WR and WREN bits in the NVMCON register.
Setting the WR bit initiates the erase, as shown in
Example 6-2.
EXAMPLE 6-2: DATA EEPROM BLOCK ERASE
6.2.2 ERASING A WORD OF DATA
EEPROM
The NVMADRU and NVMADR registers must point to
the block. Select WR a block of data Flash and set the
WR and WREN bits in the NVMCON register. Setting the
WR bit initiates the erase, as shown in Example 6-3.
EXAMPLE 6-3: DATA EEPROM WORD ERASE
; Select data EEPROM block, WR, WREN bits
MOV #0x4045,W0
MOV W0
,
NVMCON ; Initialize NVMCON SFR
; Start erase cycle by setting WR after writing key sequence
DISI #5 ; Block all interrupts with priority <7 for
; next 5 instructions
MOV #0x55,W0 ;
MOV W0
,
NVMKEY ; Write the 0x55 key
MOV #0xAA,W1 ;
MOV W1
,
NVMKEY ; Write the 0xAA key
BSET NVMCON,#WR ; Initiate erase sequence
NOP
NOP
; Erase cycle will complete in 2mS. CPU is not stalled for the Data Erase Cycle
; User can poll WR bit, use NVMIF or Timer IRQ to determine erasure complete
; Select data EEPROM word, WR, WREN bits
MOV #0x4044,W0
MOV W0
,
NVMCON
; Start erase cycle by setting WR after writing key sequence
DISI #5 ; Block all interrupts with priority <7 for
; next 5 instructions
MOV #0x55,W0 ;
MOV W0
,
NVMKEY ; Write the 0x55 key
MOV #0xAA,W1 ;
MOV W1
,
NVMKEY ; Write the 0xAA key
BSET NVMCON,#WR ; Initiate erase sequence
NOP
NOP
; Erase cycle will complete in 2mS. CPU is not stalled for the Data Erase Cycle
; User can poll WR bit, use NVMIF or Timer IRQ to determine erasure complete