大家好、
是否存在寄存器回读值不等于之前写入的值的情况?
我的客户说、例如、当他写入 R0x106 ="0xF1"、然后立即读取 R0x106时、返回的值为"0x01"。
等待一段时间后再次读取 R0x106、返回"0xF1"。
是否会发生这种情况? 如果它有、、、、、
-哪一个寄存器会显示此症状?
-反映寄存器值需要多长时间?
提前感谢
此致、
Kawai
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.
大家好、
是否存在寄存器回读值不等于之前写入的值的情况?
我的客户说、例如、当他写入 R0x106 ="0xF1"、然后立即读取 R0x106时、返回的值为"0x01"。
等待一段时间后再次读取 R0x106、返回"0xF1"。
是否会发生这种情况? 如果它有、、、、、
-哪一个寄存器会显示此症状?
-反映寄存器值需要多长时间?
提前感谢
此致、
Kawai
您好、Kawai、
通常、如果寄存器本身不是"回读"类型、例如设置 N 分频器值、那么用户应该能够立即读回他们写的内容。 如果它是"回读"类型的寄存器、例如锁定状态指示器、那么回读的内容与写入的内容无关。 因此、一般而言、我们不希望在读取和写入非回读类型寄存器之间出现任何延迟。
在您提到的示例中、有两个变量、一个是"等待一段时间"、另一个是"再次写入"。 因此、我不确定哪个是主要因素。 您必须读取两次才能获得正确答案、还是在尝试读取之前必须等待一段时间。
请尝试"读取所有寄存器"和/或在此处键入寄存器字段名称、然后按"读取"、而不是读取单个寄存器。 这可能只是一个 GUI 问题。
此致、
Hao
您好、Hao San、
我尝试了获得的 LMK04826EVM。 但是、我无法重现客户报告的问题。
写入的值在下一次回读时被读取。 (1秒内读取)
>在您提到的示例中,有两个变量,一个是“等待一段时间”,另一个是“再次写入”。 因此、我不确定哪个是主要因素。 您必须读取两次才能获得正确答案、还是在尝试读取之前必须等待一段时间。
客户正在使用自己的工具使用自己的电路板进行测试、他们说如果他们"等待一段时间、然后再回读"或"读取两次"、他们可以读取写入的正确值。
我要求提供更多信息。
此致、
Kawai
您好、Kawai、
IC 内部有一个状态机、用于控制断电和其他设置的逻辑。 虽然有几个异步实现的特性(例如全局 IC 断电/复位)、但是这个状态机中的大多数功能被计时、并且时钟通常取自基准时钟输入。 系统在更新的寄存器中将条件置为有效可能需要几个时钟周期。 在您给出的示例中、R0x106上半字节控制一些 CLKout0断电位。 状态机时钟相对于 SPI 时钟可能足够慢、因此立即回读可以在寄存器值完全更改之前对其进行轮询。
一般而言、我们不会为这些操作的完成指定写入延迟、因为这些延迟会根据参考时钟速度而变化、并且通常会受到其他寄存器设置的影响(例如、如果某些子块已经断电、断电可能会更快)。 如果特定情况需要精确的延迟信息、则可以使用芯片选择(CS)引脚信号准确测量延迟。 例如、对于断电:
此方法适用于寄存器更新、可在输出频率、功耗等方面产生可测量的变化
另一方面、如果客户只需要保证写入完成、他们可以继续轮询寄存器、直到读取的值与写入的值相匹配。 这对于任何不是自清零的寄存器(例如软件复位)都是有效的。
总结一下:
此致、