如何设置 LMK5C33216的 I2C 地址? 我看到编程指南提到了在地址12处写入 SRAM -我该如何设置 I2C 地址?
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 地址? 我看到编程指南提到了在地址12处写入 SRAM -我该如何设置 I2C 地址?
尊敬的 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。 我还希望每次读取都与要写入每个寄存器的值相匹配。
是否需要执行其他一组寄存器写入来启用对这些寄存器的写入?
尊敬的 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