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.

[参考译文] LMK5C33216:设置 I2C 地址

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

https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/1297438/lmk5c33216-set-i2c-address

器件型号:LMK5C33216

如何设置 LMK5C33216的 I2C 地址? 我看到编程指南提到了在地址12处写入 SRAM -我该如何设置 I2C 地址?

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

    为了了解更多背景信息、我已尝试将0x00写入地址0x12处的 LMK5C33216、并回读地址0x12处的值。 但是、写入命令之后地址0x12处的值为0x19。

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

    尊敬的 Chase:

    您必须使用 SRAM 直接写入方法,请参阅此 PDF 以获得进一步的指导。 这有什么用吗?

    e2e.ti.com/.../Programming-LMK5Cxxxxx_2C00_-LMK5Bxxxxx_5F00_Nov32023.pdf

    此致、

    珍妮弗

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

    Jennifer、

    SRAM 直接写入方法似乎正是我要找的!

    不过、当我尝试写入 SRAM 直接写入方法中描述的寄存器时(在更新 EEREV 的示例下)、寄存器没有按我预期的方式更新。 下面是我写入的寄存器列表、以及在写入后对每个寄存器的读取(注意、 某些 读取与写入不匹配)。

    写入(0x14)= 0x80
    读取 (0x14)= 0x80


    写入(0xAB)= 0x40
    读取(0xAB)= 0x00


    写入(0xAD)= 0x00
    读取 (0xAD)= 0x00


    写入(0xAE)= 0x0D
    读取(0xAE)= 0x00


    写入(0xB0)= 0x02
    读取(0xB0)= 0x02


    写入(0xB4)= 0xEA
    *不读取,以 消除写入0xB4和0xAB 之间的寄存器事务  


    写入(0xAB)= 0x03
    读取(0xAB)= 0x07

    *等待500ms


    写入(0xB4)= 0x00
    读取(0xB4)= 0x00


    读取(0x13)= 0x00 (预期为0x02)

    我本来希望最后一次读取0x13以返回0x02、但它返回0x00。 我还希望每次读取都与要写入每个寄存器的值相匹配。

    是否需要执行其他一组寄存器写入来启用对这些寄存器的写入?

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

    我在 LMK5c33216编程指南中看到一条注释:  在更改 PD 配置文件以确保默认条件之前切换 NVM#。 是否可以通过寄存器写入来切换 PD #?

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

    尊敬的 Chase:

    如果您使用的是 PD 或 TICS Pro 软件、则可以通过物理引脚切换 EVM#:

    我将深入了解节目、下周再与您联系。

    -Riley

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

    Riley、您好!

    感谢关于切换 PD #和研究编程的建议。 我正在使用 PCB 中内置的 LMK5c33216芯片、因此我将无法使用 TICS Pro 软件。  

    我将依靠读取/写入寄存器来对这个芯片进行编程、因此弄清如何设置 i2c 地址寄存器写入就像一种方法。  

    谢谢。

    蔡斯

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

    更新:为了进行调试、我现在将 TICS Pro 软件与 LMK5C33216EVM 配合使用(这是我第一次使用 TICS Pro)。 我曾尝试在评估板上对 i2c 地址进行编程、但 也看到 R18卡在值0x19。

    如何 在 TICS Pro 上使用 SRAM 直接写入方法?

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

    尊敬的 Chase:

    通过 SRAM Direct 方法写入寄存器需要经过下电上电才能生效、并反映在寄存器读回时。 一些寄存器是自清零的、返回的值与被写入的值不同。

    I2C 地址必须使用 SRAM 方法进行更新、您可以通过 TICS Pro 上的原始寄存器页面更新指南行中所示的每个寄存器

    确保关闭自动更新、以便不会在每次更新0/1时写入寄存器位。

    在写入寄存器并对器件进行下电上电后、您还可以读取所有寄存器并从 EEPROM 页面检查 NVM 计数+1和 I2C MSB 是否更改。 我已经通过写入 EEREV (R19)的测试、发现它更新为写入值。

    请告诉我这是否对您有用。

    -Riley

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

    我尝试更改 EEREV (R19)值但没有成功。

    以下是我使用的步骤:

    1) 1)通过检查 EEPROM 状态和0x13原始寄存器来验证 EEREV 是否为0

    2) 2) 写入(0x14)= 0x80


    3) 3)写入(0xAB)= 0x40 (注意红色文本-我想知道该值是否成功写入)


    4) 4)写入(0xAD)= 0x00


    5) 5)写入(0xAE)= 0x0D


    6) 6)写入(0xB0)= 0x02 (注意红色文本-我想知道该值是否成功写入)


    7) 7)写入(0xB4)= 0xEA


    8) 8)写入(0xAB)= 0x03


    9) 9)写入(0xB4)= 0x00


    10) 10)下电上电

    11) 11)在 x001300上运行上的读取寄存器

    12) 12)运行"读取 EEPROM/NVM 状态"

    13) 13)检查  寄存器映射(0x0013)和 EEPROM 状态部分中的 EEREV 编号

    我的预期值0x0013应该是0x02、EEREV 应该是2。 我是否在 SRAM 直接方法步骤中遗漏了某些内容?

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

    尊敬的 Chase:

    很抱歉、我应该更清楚这些步骤。 当前 GUI 写入在地址屏蔽方面存在错误、因此通过该框写入数据不会更新寄存器(可能会显示红色或黑色)。 您还可以查看是否通过 GUI 左下角的日志框更新了写入。

    请 以这种方式写入寄存器:

    -关闭"自动更新"

    -按照 SRAM 写入的指导原则更新每个步骤的寄存器 直接将0/1写入寄存器位0-7

    -按"写寄存器"(在数据框下方)更新写当前寄存器

    -选中日志框以查看寄存器的值更新

    在写入寄存器之前、一个良好的做法是先对所有寄存器进行下电上电、然后读回所有寄存器、以便在 GUI 上更新所有寄存器。

    -Riley

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

    作者:Riley、

    我能够使用您推荐的方法更新 I2C 地址寄存器(地址0x0012处的 R18)!

    对于将来有机会看到它的人来说、在按照所述的 Riley 方法 并下电上电后、我必须在读取寄存器0x0012之前运行"扫描 I2C 总线"、以便0x0012中的新值显示出来。

    可以通过任何方法在不下电上电(而不 中断时钟)的情况下写入0x0012 (和所有其他 EEPROM 寄存器)?

    我想按照此处所述对 LMK5c33216进行清除处理: e2e.ti.com/.../lmk5c33216-eeprom-live-programming

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

    尊敬的 Chase:

    "读取所有寄存器"或"读取 EEPROM/NVM 状态" 将更新 NVM/EEPROM 的状态

    使用 SRAM 方法、您可以写入所有需要的寄存器、而不会中断运行的时钟。 写入所有寄存器后将 转换 到 EEPROM、此操作在下一次下电上电后生效。 这意味着您将所有寄存器一次写入 SRAM、并执行1个下电上电以使所有寄存器更新。

    -Riley