您好:
在尝试写EEPROM的过程中,发现部分寄存器不能生效,掉电配置还会丢失,求解?
以下是具体遇到的问题:
a.在以下操作描述的第5步到第6步之间轮询读取寄存器,发现与原先写入的寄存器值不相匹配,具体如下:R10,R11,R13,R14,R72,R123,R124,R125,R126,R127,R128,R155,R156,R161,R162,R357,R367
b.接着上一个问题,去掉R12和R162两个寄存器其他的回读发现只有R10、R11两个寄存器还是没写对?(目标值:R10=0x80,R11=0x30)
c.掉电后,问题a提到的寄存器配置都没有生效?
操作步骤如下(I2C读写只用了Write Transfer 和Read Transfer两种操作):
1.用code loader生成register值,通过i2c写入register。
– Mask R12 = A7h
– Mask R157 = FFh
– Mask R164 = FFh
Mask部分的位都写入0。
2.R12[7]写1,其他位根据code loader内决定。
3.R12[7]写0,其他位根据code loader内决定。
4.R157写0x40 。
5.等待 R157 self-clearing (几乎不需要等待)。
6.R164写0xEA。
7.R157写0x3。
8.等待300ms。
9.Read or poll R157[2],When this bit cleared, the EEPROM programming is done.
10.R164写0x0。
谢谢!