dsPIC30F6011/6012/6013/6014
7.3.2
WRITING A BLOCK OF DATA
EEPROM
To write a block of data EEPROM, write to all sixteen
latches first, then set the NVMCON register and
program the block.
EXAMPLE 7-5:
MOV
MOV
MOV
MOV
TBLWTL
MOV
TBLWTL
MOV
TBLWTL
MOV
TBLWTL
MOV
TBLWTL
MOV
TBLWTL
MOV
TBLWTL
MOV
TBLWTL
MOV
TBLWTL
MOV
TBLWTL
MOV
TBLWTL
MOV
TBLWTL
MOV
TBLWTL
MOV
TBLWTL
MOV
TBLWTL
MOV
TBLWTL
MOV
MOV
DISI
#5
MOV
MOV
MOV
MOV
BSET
NOP
NOP
DATA EEPROM BLOCK WRITE
#LOW_ADDR_WORD,W0
#HIGH_ADDR_WORD,W1
W1
,
TBLPAG
#data1,W2
W2
,
[ W0]++
#data2,W2
W2
,
[ W0]++
#data3,W2
W2
,
[ W0]++
#data4,W2
W2
,
[ W0]++
#data5,W2
W2
,
[ W0]++
#data6,W2
W2
,
[ W0]++
#data7,W2
W2
,
[ W0]++
#data8,W2
W2
,
[ W0]++
#data9,W2
W2
,
[ W0]++
#data10,W2
W2
,
[ W0]++
#data11,W2
W2
,
[ W0]++
#data12,W2
W2
,
[ W0]++
#data13,W2
W2
,
[ W0]++
#data14,W2
W2
,
[ W0]++
#data15,W2
W2
,
[ W0]++
#data16,W2
W2
,
[ W0]++
#0x400A,W0
W0
,
NVMCON
; Init pointer
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
Get 1st data
write data
Get 2nd data
write data
Get 3rd data
write data
Get 4th data
write data
Get 5th data
write data
Get 6th data
write data
Get 7th data
write data
Get 8th data
write data
Get 9th data
write data
Get 10th data
write data
Get 11th data
write data
Get 12th data
write data
Get 13th data
write data
Get 14th data
write data
Get 15th data
write data
Get 16th data
write data. The NVMADR captures last table access address.
Select data EEPROM for multi word op
Operate Key to allow program operation
Block all interrupts with priority <7 for
next 5 instructions
#0x55,W0
W0
,
NVMKEY
#0xAA,W1
W1
,
NVMKEY
NVMCON,#WR
; Write the 0x55 key
; Write the 0xAA key
; Start write cycle
DS70117C-page 58
Preliminary
铮?/div>
2004 Microchip Technology Inc.
prev
next