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.

[参考译文] LMK03318:LMK03318 I2C 功能 EEPROM 写入失败和 PLL 未锁定

Guru**** 2898850 points

Other Parts Discussed in Thread: LMK03318, LMK05318B

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/1626621/lmk03318-lmk03318-i2c-function-eeprom-write-fail-and-pll-not-lock

器件型号: LMK03318
Thread 中讨论的其他器件: LMK05318B

使用 Lmk03318 I2C 通信写入块寄存器数据、但每次都需要在上电时编程、 尝试写入 EEPROM 写入函数但未发生写入、PLL 也不会锁定、PLL 也需要锁定、但所需的寄存器我正在设置、请告诉我问题的任何示例或可能的解决方案

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Swathi:

    您能与我分享 hex.txt 或.tcs 文件吗? 我想查看您的配置、了解 PLL 锁定问题   

    要 根据数据表第 10.5.5 节写入 EEPROM、您首先需要确保写入 SRAM 过程已完成、以便将寄存器 设置提交到 SRAM。 接下来、您将向 R144 写入 0xEA、向 R137 位 0 写入 1。 完成这些步骤后、R136 将递增 1、 其中包含已成功完成的 EEPROM 编程周期总数。 然后将 R144 写入 0。  

    如果 R137 位 5 回读为 1、则意味着 EEPROM 写入未成功、器件将被锁定并无法正常运行、您必须执行 另一个 EEPROM 写入序列  、应 启动 并成功完成才能解锁 器件。

     

    此致、

    Sandra  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

      writeReg (145、0x00);

     //步骤 3:提交寄存器→SRAM
     writeReg (137、0x40);
     延迟 (10)

     //步骤 4:解锁 EEPROM
     writeReg (144、0xEA);

     //步骤 5:对 EEPROM 进行编程
     writeReg (137、0x01);

     延迟 (500)

     //步骤 6:锁定 EEPROM
     writeReg (144、0x00);

     延迟 (100);

     uint8_t 状态;

    应该做
     状态= readReg (137);
     延迟 (20);

    } while (STATUS & 0x01);  外部我的 I2C 代码写入寄存器
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    Im 正在调查此问题。 我下周回来。

    此致、

    Sandra   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Swathi 和 Sandra:

    总体而言、EEPROM 写入例程看起来不错。
    但“在 EEPROM 写入期间、R137.2 为 1 “意味着如果您读取 R137、位 2 的值将为 1。
    因此、如果未设置其他位、读取 R137 将导致 00000100b = 0x04。

    应该做

    状态= readReg (137);
    延迟 (20);

    } while(状态& 0x04 );



    另外、请注意不会覆盖 R137 中 NVMAUTOCRC 位的默认值。
    否则必须手动计算 CRC。
    如果存储的 CRC (R135 NVMSCRC) 等于计算出的实时 CRC (R138 NVMLCRC)、则 EEPROM 页面有效
    加载页面后可以读取 NVMCRCERR 位、以验证加载是否正确。


    此致、
    Octo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    BTW: 寄存器映射概述中提到了 NVMSCRC、但没有关于 R135 的更多详细信息
    数据表 LMK03318:SNAS669E–2015 年 9 月–2018 年 4 月修订


    我已经为 NVMSCRC 寄存器添加了一个 LMK05318B 代码片段。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    我正在读取 R137=0x20、 存在 NVMCRCERR、如何求解?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [quote userid=“689959" url="“ url="~“~/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/1626621/lmk03318-lmk03318-i2c-function-eeprom-write-fail-and-pll-not-lock/6274302
    //步骤 5:对 EEPROM 进行编程
     writeReg (137、0x01);
    [/报价]

    如果您将此步骤更改为“writeReg (137、0x10 + 0x01);“、则同时  设置 NVMAUTOCRC 和 NVMPROG。

    这将在 EEPROM 编程时自动计算 CRC。