a) 在NVMCON 寄存器中,选择字擦除数据EEPROM,并置1 WREN 位。
b) 把要擦除的字的地址写入NVMADR。
c) 允许NVM 中断(可选)。
d) 把“55”写入NVMKEY。
e) 把“AA”写入NVMKEY。
f) 置1 WR 位。这将开始擦除周期。
g) 查询NVMIF 位或等待NVMIF 中断。
h) 当擦除周期结束时WR 位会被清零。
2. 把数据字写入数据EEPROM 的写锁存器中。
3. 把1 个数据字编程到数据EEPROM 中。
a) 在NVMCON 寄存器中,选择字编程数据EEPROM,并置1 WREN 位。
b) 允许NVM 写完成中断(可选)。
c) 把“55”写入NVMKEY。
d) 把“AA”写入NVMKEY。
e) 置1 WR 位。这将开始编程周期。
f) 查询NVMIF 位,或者等待NVM 中断。
g) 当写周期结束时WR 位会被清零。
对于每个字,如果上述序列(把0x55 写入NVMKEY,把0xAA 写入NVMCON,然后置1 WR 位)没有严格遵守的话,写操作不会启动。 强烈建议在这段代码执行期间,禁止中断。
此外,必须置1 NVMCON 中的WREN 位来使能写操作。这样的机制,防止由于不可预料的代码执行而意外地写数据EEPROM。除非在更新EEPROM 时,否则WREN位应该始终保持清零。硬件不能清零WREN位。在写过程启动之后,清零WREN 位将不会影响当前的写周期。禁止把WR 位置1,除非WREN 位已置1。必须在前一条指令中置1 WREN 位。不能在同一条指令中置1 WR 和WREN 位。
写周期结束时,硬件清零WR 位,非易失性存储器写完成中断标志位(NVMIF)置1。用户可以允许这个中断,或者查询这个标志位。NVMIF 必须由软件清零。
上一篇:DSPIC30F系列芯片内部指令停止技术
下一篇:芯片制造工艺流程大分解