This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

LMK05318配置写入EEPROM问题

您好:

在尝试写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。

谢谢!

  • 第五步等待 R157 self-clearing , 当R157[2] (NVMBUSY bit)清零之后,说明EEPROM 配置完成,然后将R164写0X0,说明EEPROM 已经lock。 此时再读寄存器的值呢? lock之后再掉电重启值应该就不会改变了。
  • Hi Kailyn Chen:

    1.此时再读寄存器的值发现与写入的不一样,具体情况如下图:

    寄存器地址(x16)  写入的值(x16)  读出的值(x16)

    0xa                  0x80                   0x8

    0xb                  0x30                   0xb

    0xd                  0x00                   0x1d

    0xe                  0x00                   0xd0

    0x48                0x3e                   0x1

    0x7b                0x6a                   0x0

    0x7c                0xaa                   0x0

    0x7d                0xa9                   0x0

    0x7e                0x97                   0x0

    0x7f                 0x36                   0x0

    0x80                0x00                   0x1

    0x9b                0xd1                   0x8d

    0x9c                0x08                   0x56

    0xa1                0x16                   0x8d

    0xa2                0x4f                   0x28

    0x165              0x28                   0x20

    0x16f               0x28                   0x0

    2.我们具体的硬件配置如

    QFN48(7x7):  
    pin name pin num 备注
    VDD_IN pin5 通过0.1uf电容接地,输入3.3V
    VDD_XO pin33
    VDD_PLL1 pin27
    VDD_PLL2 pin36
    VDD_DIG pin4
    LF1 pin29   通过0.47uf电容接地
    LF2 pin34   通过0.1uf电容接地
    CAP_PLL1 pin28   通过10uf电容接地
    CAP_PLL2 pin35   通过10uf电容接地
    CAP_DIG pin3   通过10uf电容接地
    SCS pin24   接地
    SYNCN pin12 通过0.1uf电容接地,输入3.3V
    HW_SW_CTRL pin9   接地
    PDN pin13   IO输入
    SDA pin25 IO输入,上拉4.7k到VDD_IN
    SCL pin26 IO输入,上拉4.7k到VDD_IN
    GND pin49(底部中间) 接地