2010 Microchip Technology Inc.
DS70139G-page 57
dsPIC30F2011/2012/3012/3013
6.3
Writing to the Data EEPROM
To write an EEPROM data location, the following
sequence must be followed:
1.
Erase data EEPROM word.
a)
Select word, data EEPROM erase, and set
WREN bit in NVMCON register.
b)
Write address of word to be erased into
NVMADR.
c)
Enable NVM interrupt (optional).
d)
Write 0x55 to NVMKEY.
e)
Write 0xAA to NVMKEY.
f)
Set the WR bit. This begins erase cycle.
g)
Either poll NVMIF bit or wait for NVMIF
interrupt.
h)
The WR bit is cleared when the erase cycle
ends.
2.
Write data word into data EEPROM write
latches.
3.
Program 1 data word into data EEPROM.
a)
Select word, data EEPROM program, and
set WREN bit in NVMCON register.
b)
Enable NVM write done interrupt (optional).
c)
Write 0x55 to NVMKEY.
d)
Write 0xAA to NVMKEY.
e)
Set the WR bit. This begins program cycle.
f)
Either poll NVMIF bit or wait for NVM
interrupt.
g)
The WR bit is cleared when the write cycle
ends.
The write does not initiate if the above sequence is not
exactly followed (write 0x55 to NVMKEY, write 0xAA to
NVMCON, then set WR bit) for each word. It is strongly
recommended that interrupts be disabled during this
code segment.
Additionally, the WREN bit in NVMCON must be set to
enable writes. This mechanism prevents accidental
writes to data EEPROM due to unexpected code
execution. The WREN bit should be kept clear at all
times except when updating the EEPROM. The WREN
bit is not cleared by hardware.
After a write sequence has been initiated, clearing the
WREN bit does not affect the current write cycle. The
WR bit is inhibited from being set unless the WREN bit
is set. The WREN bit must be set on a previous
instruction. Both WR and WREN cannot be set with the
same instruction.
At the completion of the write cycle, the WR bit is
cleared in hardware and the Nonvolatile Memory Write
Complete Interrupt Flag bit (NVMIF) is set. The user
may either enable this interrupt or poll this bit. NVMIF
must be cleared by software.
6.3.1
WRITING A WORD OF DATA
EEPROM
Once the user has erased the word to be programmed,
then a table write instruction is used to write one write
latch, as shown in Example 6-4.
6.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 6-4:
DATA EEPROM WORD WRITE
; Point to data memory
MOV
#LOW_ADDR_WORD,W0
; Init pointer
MOV
#HIGH_ADDR_WORD,W1
MOV
W1,TBLPAG
MOV
#LOW(WORD),W2
; Get data
TBLWTL
W2,[ W0]
; Write data
; The NVMADR captures last table access address
; Select data EEPROM for 1 word op
MOV
#0x4004,W0
MOV
W0,NVMCON
; Operate key to allow write operation
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 program sequence
NOP
; Write cycle will complete in 2mS. CPU is not stalled for the Data Write Cycle
; User can poll WR bit, use NVMIF or Timer IRQ to determine write complete
相关PDF资料
DSPIC30F4011-30I/ML IC DSPIC MCU/DSP 48K 44QFN
DSPIC30F4013-30I/ML IC DSPIC MCU/DSP 48K 44QFN
DSPIC30F5013-30I/PT IC DSPIC MCU/DSP 66K 80TQFP
DSPIC30F5015-30I/PT IC DSPIC MCU/DSP 66K 64TQFP
DSPIC30F6010-20E/PF IC DSPIC MCU/DSP 144K 80TQFP
DSPIC30F6010A-30I/PF IC DSPIC MCU/DSP 144K 80TQFP
DSPIC30F6013A-30I/PF IC DSPIC MCU/DSP 132K 80TQFP
DSPIC30F6014-30I/PF IC DSPIC MCU/DSP 144K 80TQFP
相关代理商/技术参数
dsPIC30F3013-20I/SO 功能描述:数字信号处理器和控制器 - DSP, DSC 28LD 20MIPS 24 KB RoHS:否 制造商:Microchip Technology 核心:dsPIC 数据总线宽度:16 bit 程序存储器大小:16 KB 数据 RAM 大小:2 KB 最大时钟频率:40 MHz 可编程输入/输出端数量:35 定时器数量:3 设备每秒兆指令数:50 MIPs 工作电源电压:3.3 V 最大工作温度:+ 85 C 封装 / 箱体:TQFP-44 安装风格:SMD/SMT
dsPIC30F3013-20I/SP 功能描述:数字信号处理器和控制器 - DSP, DSC 28LD 20MIPS 24 KB RoHS:否 制造商:Microchip Technology 核心:dsPIC 数据总线宽度:16 bit 程序存储器大小:16 KB 数据 RAM 大小:2 KB 最大时钟频率:40 MHz 可编程输入/输出端数量:35 定时器数量:3 设备每秒兆指令数:50 MIPs 工作电源电压:3.3 V 最大工作温度:+ 85 C 封装 / 箱体:TQFP-44 安装风格:SMD/SMT
DSPIC30F3013-30I/ML 功能描述:数字信号处理器和控制器 - DSP, DSC Sensor RoHS:否 制造商:Microchip Technology 核心:dsPIC 数据总线宽度:16 bit 程序存储器大小:16 KB 数据 RAM 大小:2 KB 最大时钟频率:40 MHz 可编程输入/输出端数量:35 定时器数量:3 设备每秒兆指令数:50 MIPs 工作电源电压:3.3 V 最大工作温度:+ 85 C 封装 / 箱体:TQFP-44 安装风格:SMD/SMT
DSPIC30F3013-30I/SO 功能描述:数字信号处理器和控制器 - DSP, DSC Sensor RoHS:否 制造商:Microchip Technology 核心:dsPIC 数据总线宽度:16 bit 程序存储器大小:16 KB 数据 RAM 大小:2 KB 最大时钟频率:40 MHz 可编程输入/输出端数量:35 定时器数量:3 设备每秒兆指令数:50 MIPs 工作电源电压:3.3 V 最大工作温度:+ 85 C 封装 / 箱体:TQFP-44 安装风格:SMD/SMT
DSPIC30F3013-30I/SO 制造商:Microchip Technology Inc 功能描述:IC DSC 16BIT 24KB 40MHZ 5.5V SOIC-28
DSPIC30F3013-30I/SP 功能描述:数字信号处理器和控制器 - DSP, DSC Sensor RoHS:否 制造商:Microchip Technology 核心:dsPIC 数据总线宽度:16 bit 程序存储器大小:16 KB 数据 RAM 大小:2 KB 最大时钟频率:40 MHz 可编程输入/输出端数量:35 定时器数量:3 设备每秒兆指令数:50 MIPs 工作电源电压:3.3 V 最大工作温度:+ 85 C 封装 / 箱体:TQFP-44 安装风格:SMD/SMT
DSPIC30F3013-30I/SP 制造商:Microchip Technology Inc 功能描述:16-Bit Digital Signal Controller
dsPIC30F3013T-20E/ML 功能描述:数字信号处理器和控制器 - DSP, DSC 44LD 20MIPS 24 KB RoHS:否 制造商:Microchip Technology 核心:dsPIC 数据总线宽度:16 bit 程序存储器大小:16 KB 数据 RAM 大小:2 KB 最大时钟频率:40 MHz 可编程输入/输出端数量:35 定时器数量:3 设备每秒兆指令数:50 MIPs 工作电源电压:3.3 V 最大工作温度:+ 85 C 封装 / 箱体:TQFP-44 安装风格:SMD/SMT