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.

[参考译文] LMK04828:寄存器写入后立即读取结果

Guru**** 2595805 points


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

https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/800066/lmk04828-register-read-result-right-after-register-write

器件型号:LMK04828

大家好、

是否存在寄存器回读值不等于之前写入的值的情况?

我的客户说、例如、当他写入 R0x106 ="0xF1"、然后立即读取 R0x106时、返回的值为"0x01"。
等待一段时间后再次读取 R0x106、返回"0xF1"。
是否会发生这种情况? 如果它有、、、、、

 -哪一个寄存器会显示此症状?
 -反映寄存器值需要多长时间?

提前感谢

此致、
Kawai

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

    您好、Kawai、

    通常、如果寄存器本身不是"回读"类型、例如设置 N 分频器值、那么用户应该能够立即读回他们写的内容。 如果它是"回读"类型的寄存器、例如锁定状态指示器、那么回读的内容与写入的内容无关。 因此、一般而言、我们不希望在读取和写入非回读类型寄存器之间出现任何延迟。

    在您提到的示例中、有两个变量、一个是"等待一段时间"、另一个是"再次写入"。 因此、我不确定哪个是主要因素。  您必须读取两次才能获得正确答案、还是在尝试读取之前必须等待一段时间。

    请尝试"读取所有寄存器"和/或在此处键入寄存器字段名称、然后按"读取"、而不是读取单个寄存器。 这可能只是一个 GUI 问题。

    此致、
    Hao

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

    您好、Hao San、

    我尝试了获得的 LMK04826EVM。 但是、我无法重现客户报告的问题。

    写入的值在下一次回读时被读取。 (1秒内读取)

     

    >在您提到的示例中,有两个变量,一个是“等待一段时间”,另一个是“再次写入”。 因此、我不确定哪个是主要因素。  您必须读取两次才能获得正确答案、还是在尝试读取之前必须等待一段时间。

    客户正在使用自己的工具使用自己的电路板进行测试、他们说如果他们"等待一段时间、然后再回读"或"读取两次"、他们可以读取写入的正确值。

    我要求提供更多信息。

    此致、

    Kawai

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

    您好、Kawai、

    IC 内部有一个状态机、用于控制断电和其他设置的逻辑。 虽然有几个异步实现的特性(例如全局 IC 断电/复位)、但是这个状态机中的大多数功能被计时、并且时钟通常取自基准时钟输入。 系统在更新的寄存器中将条件置为有效可能需要几个时钟周期。 在您给出的示例中、R0x106上半字节控制一些 CLKout0断电位。 状态机时钟相对于 SPI 时钟可能足够慢、因此立即回读可以在寄存器值完全更改之前对其进行轮询。

    一般而言、我们不会为这些操作的完成指定写入延迟、因为这些延迟会根据参考时钟速度而变化、并且通常会受到其他寄存器设置的影响(例如、如果某些子块已经断电、断电可能会更快)。 如果特定情况需要精确的延迟信息、则可以使用芯片选择(CS)引脚信号准确测量延迟。 例如、对于断电:

    1. 在相关电源轨上插入感应电阻器(对于 R0x106、Vcc12_CG0)、并探测该电阻器上的实时差分电压
    2. 探测 SPI 总线中的 CS 线路
    3. 探测参考时钟
    4. 检查通信完成与电源电流变化之间的延迟、并以参考时钟周期进行量化
    5. 重复多次测量以确保一致性

    此方法适用于寄存器更新、可在输出频率、功耗等方面产生可测量的变化

    另一方面、如果客户只需要保证写入完成、他们可以继续轮询寄存器、直到读取的值与写入的值相匹配。 这对于任何不是自清零的寄存器(例如软件复位)都是有效的。

    总结一下:

    • 一些寄存器操作与状态机时钟相关联。 如果与通信速度相比状态机时钟速度较慢、则有时可以在更新新值之前读回旧值。
    • 可以使用 CS 引脚信号并查找预期的外部变化(电流消耗、频率调整等)来测量特定场景的精确时序。
    • 对于任何不会自清零的寄存器来说、读回这些值直到它们与写入的值相匹配都是很简单的。 诸如软件复位寄存器的自清零寄存器也许需要诸如上面概述的 CS 引脚信号的其它方法。

    此致、