工具/软件:
在电阻检测功能的长期测试中、我们发现了 2 个问题
对于通过 SPI 配置的寄存器、在重复读取它们时、从寄存器读取的数据可能不一致(一小时内发生大约两到三次)、但再次读取它们将是一致的。
下图显示了通过 SPI 读取寄存器 0x03(在通信期间需要添加 0x20、因此为 0x23)的操作。 预期从该寄存器读取的数据为 0x01、但实际读数为 0x07。

2.对于固定电阻值,连续读取其转换后的 ADC 结果时,读取值可能偶尔会突然下降,但再次读取会恢复该值。
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.
工具/软件:
在电阻检测功能的长期测试中、我们发现了 2 个问题
对于通过 SPI 配置的寄存器、在重复读取它们时、从寄存器读取的数据可能不一致(一小时内发生大约两到三次)、但再次读取它们将是一致的。
下图显示了通过 SPI 读取寄存器 0x03(在通信期间需要添加 0x20、因此为 0x23)的操作。 预期从该寄存器读取的数据为 0x01、但实际读数为 0x07。

2.对于固定电阻值,连续读取其转换后的 ADC 结果时,读取值可能偶尔会突然下降,但再次读取会恢复该值。
尊敬的 Yuchun Guo:
我假设您在读取/写入命令之前发送了 SDATAC 命令、对吗?
是否在发送这些命令之前停止转换?
您的系统中是否存在数字隔离? 您能发送原理图吗?
是否有任何其他器件与 ADS1147 共享 SPI 总线
您能否解释一下“读取值突然下降“的含义? 您能否提供您获得的数据、以便我们查看? 请提供 ADC 寄存器设置以及以十六进制表示的原始 ADC 数据
-布莱恩
您好 Bryan、
我假设您在读取/写入命令之前发送了 SDATAC 命令、对吗?
——在连续读取寄存器的过程中,没有发送 SDATAC。
是否在发送这些命令之前停止转换?
--在连续转换模式下,在连续读取转换结果的过程中,我们不写入寄存器,只读取寄存器。
您的系统中是否存在数字隔离? 您能发送原理图吗?
是的,在 MCU 和 ADS1147 之间有一个数字隔离器。 抱歉、我无法分享 原理图。
是否有任何其他器件与 ADS1147 共享 SPI 总线
“不会的
您能否解释一下“读取值突然下降“的含义?
我提供的固定电阻器的实际值为 3000、但读数为 2950、然后下一个值返回 3000。
您能否提供您获得的数据、以便我们查看? 请提供 ADC 寄存器设置以及以十六进制表示的原始 ADC 数据
以下三个寄存器是固定的,配置如下:
REG_MUX1 = 0x20
REG_IDAC1 = 0x01
REG_GPIOCFG = 0x0C
以下三个寄存器将根据电阻值动态调整:
示例 1:如果电阻在 10000Ω 范围内、则 REG_IDAC0 = 0x02、REG_GPIODAT = 0x08、REG_SYS0 = 0x01
示例 2:如果电阻在 500Ω 范围内、则 REG_IDAC0 = 0x06、REG_GPIODAT = 0x04、REG_SYS0 = 0x11
正常寄存器值 
寄存器值异常

-Karl
非常感谢你回答这个问题、但我也希望收到你对任何其他问题的答复。 谢谢你。
-泽维
李泽伟:
我已经离开办公室了,感谢你的耐心
您能帮助回答一些其他问题吗:
-布莱恩
你好 Bryan Lizon86 ,
感谢您的答复
-泽维
李泽伟:
关于您发送的逻辑分析仪捕获结果:您是否在探测 ADC 引脚以获得这些捕获结果? 还是在控制器 (MCU) 引脚处进行探测? 您至少可以尝试这两种方法以确保它们一致、即数据不会因穿过隔离栅而损坏
我真的不知道该怎么说。 如果您可以随意重现此问题、我们可能会提供额外支持、但此处似乎并非如此。 在一小时内进行一些随机读数可能不会表明 ADC 有问题。 这听起来像是一个通信问题、可能是由于电源毛刺脉冲、接地漂移、 外部干扰(例如 EMI)或相邻信号耦合造成的。 再次,这些只是猜测
您可以尝试进一步调查、看看是否可以确定问题的原因、或者您可以实施通信错误检查。 这基本上就是您现在执行的操作、连续读取相同的数据或寄存器 2-3 次。
-布莱恩