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

Guru**** 1734980 points
Other Parts Discussed in Thread: LMK03318, CODELOADER
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/715107/lmk03318-lmk03318-can-t-configure-eeprom-successfully-via-i2c

器件型号:LMK03318
主题中讨论的其他器件: CODELOADER

您好,

   我们在自己的主板上使用 CPU 通过 IIC 控制 LMK03318、

使用 GUI 生成的十六进制配置可以获得所需的时钟、

但不能写入 EEPROM、断电后再上电时没有时钟输出。

     我们遵循    数据表中的'10.5.4 Write SRAM'和'10.5.5 Write EEPROM'。  

但 R136寄存器始终为0x1。  

HW_SW_CTRL 为 H   

GPIO[3:2] 是 HH

调试有什么好主意吗?

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

    首先、设置 HW_SW_CTRL = L、看看这是否可以解决您的问题。

    10.4.4中列出了两个程序。 您是否遵循了第一个步骤?
    如果是、GPIO[3:2]= HH 对应于 EEPROM 第5页。 确保写入 R145[3:0]= 0x5。

    读取寄存器 R137、然后写入 EEPROM。 如果 R137.5 = 1、则表示对 EEPROM 进行编程时出错。 如果是这种情况、则 I2C 数据传输可能会出现问题。

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

    您好!

       感谢您的回复。

    1)。  我设置 HW_SW_CTRL = L、但问题未得到解决。

    2)。 是的,我 按照  第一个步骤操作

    '1. 对器件寄存器进行编程、以匹配所需的设置。
    2.向 R145[3:0]写入一个有效的 SRAM 页(0至5)以提交当前寄存器数据。
    3.向 R137.6写入1。 这可确保器件寄存器被复制到所需的 SRAM 页。
    4.如果需要将另一个器件设置写入不同的 SRAM 页、请重复步骤1-3并选择
    未使用的 SRAM 页。''

    写入 SRAM
    (R145) 0x91写入0x5
    (R137) 0x89 写入0x40

    3).确保 写入 R145[3:0]= 0x5。

    4). EEPROM 写入后读取寄存器 R137、R137=0x11、因此 R137.5=0

    5).使用生成的十六进制文件、通常可以通过 IIC 生成所需的时钟信号。

    因此、I2C 数据传输 应该没有问题。

    您是否有更多解决此问题的建议??

    此致

    川杰

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

    你好,

    此编程过程看起来正常。

    EEPROM 编程后、寄存器回读的 R137.0 = 1、这可能意味着 EEPROM 数据传输在锁定 EEPROM 之前未完成。 将0xEA 写入 R144、然后将0x11写入 R89 (解锁 EEPROM、然后对 EEPROM 进行编程)、在将0x00写入 R144 (锁定 EEPROM)之前、请等待至少230ms 以完成 EEPROM 编程周期。

    随附的是一个电子表格、可用于为 LMK03318生成寄存器编程序列。 请注意、电子表格不使用 REGCOMMIT 方法、而是直接写入 RAMDAT 寄存器(数据表第10.4.4节中的过程#2)。

    此致、
    通道

    e2e.ti.com/.../3857.LMK033x8_5F00_EEPROM_5F00_programming_5F00_v1.xlsx

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

    您好、Lane、

    1、μ s " 将0xEA 写入 R137然后将0x11写入 R89 (解锁 EEPROM 然后对 EEPROM 进行编程)后、至少等待230ms 以完成 EEPROM 编程周期、然后再将0x00写入 R137 (锁定 EEPROM)。" ,在您的 mai 中,内容与数据表不同。 数据表是"将0xEA 写入 R144。 这为 EEPROM 的意外编程提供了基本保护。 (10.5.5)",为什么?

    2、我们 根据   您的建议直接写入 RAMDAT 寄存    器、等待几分钟、但 R137始终为0x11、R137.0 NVMPROG 位不会自动清零。 为什么?

    [0] NVMPROG RWS C 0 N EEPROM 程序启动。 NVMPROG 位用于启动片上 EEPROM 擦除/编程周期。 只有当前面的 I2C 事务是用适当的代码写入 NVMUNLK 寄存器时、擦除/编程周期才会启动。 NVMPROG 位自动清零。 EEPROM 擦除/编程操作大约需要230ms。

     

     

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

    你好,

    这是一个拼写错误、我是说将它写入 R144 (0x90)。 我刚刚编辑了我的最后一个帖子以更正此问题。

    2. R137.0位(NVMPROG)在~230ms 后自动清零。 如果此位从未清除、则可能是问题的原因。 问题可能是部件损坏。 您是否尝试对另一个器件的 EEPROM 进行过编程?
    另一种可能是中断 EEPROM 编程序列:NVM 解锁和 NVM 程序写入命令必须是原子写入。  这两个 NVM 解锁/编程命令之间不能存在任何其他 I2C 命令(读取或写入、即使是对 I2C 总线上的其他器件的读取或写入)。
    按照此顺序操作时、无法在之间插入其他读取/写入命令、或者 EEPROM 可能无法成功编程。 将0xEA 写入 R144后,下一个 I2C 传输必须写入0x11到 R89,下一个 I2C 传输必须写入0x00到 R144。  


    除此之外、编程前和编程后读回 EEPROM 可能会有所帮助、以查看是否有任何更改。

    此致、
    通道

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

    您好、Lane

    我 有两个问题:

    1、 EEPROM 页容量剂量有多少?  
    2、我想使用 STAT0_INT 和 STAT1_INT、 我应该 怎么做?  EEPROM 写时、状态是什么?





    此致、
    川杰

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

    A1。 EEPROM 每页有51个寄存器。 您可以在数据表10.6.100部分查看 EEPROM 映射。

    答2. 您可以使用 CodeLoader 或 TICS Pro GUI 中的状态页面来配置中断。 将中断启用下拉框切换为"启用"。

    此致、
    通道