早上好、
我们有一个采用 TMP103A 的设计、在某些情况下、传感器以值0x00进行响应。 我们每150ms 在上请求一次温度、I2C 总线以100kHz 的频率运行。
下图显示了返回的有效温度值、150ms 后的下一次读取显示的温度值为0x00。 您能否提供此传感器将以0x00的温度值进行响应的所有条件、以便我们可以尝试找出此问题的原因。
SDA 线路上也有一些噪声、但是这个噪声对于其它正常运行的组装体是常见的。
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.
早上好、
我们有一个采用 TMP103A 的设计、在某些情况下、传感器以值0x00进行响应。 我们每150ms 在上请求一次温度、I2C 总线以100kHz 的频率运行。
下图显示了返回的有效温度值、150ms 后的下一次读取显示的温度值为0x00。 您能否提供此传感器将以0x00的温度值进行响应的所有条件、以便我们可以尝试找出此问题的原因。
SDA 线路上也有一些噪声、但是这个噪声对于其它正常运行的组装体是常见的。
尊敬的 Edmund -
欢迎来到 E2E 论坛、感谢您发帖!
您发布的图片未通过-是否可以使用"插入/编辑媒体"按钮再次尝试插入?
您是每150ms 执行一次转换、还是已将器件设置为8Hz 并每150ms 读取一次值?
如果是后者、则每125mSec 就可以进行一次测量、这样您就不会在断电时读取器件数据。 TMP103数据表的第12页上有一个表格-如果您可以确认您使用的是哪种设置、那将很有帮助-或者如果您是在一次性模式下读取、请确认。
Josh、您好!
第一个帧是地址1110000、读取位设置为高电平、从而产生11100001。 最后一个时钟周期是针对 TMP103A 到 ACK、它就是这样做的。 第二个帧是00111011、十进制为59、对应于正确的温度。
这与温度传感器以0x00的温度响应但实际温度为59度的图类似。 传感器发送的最后一个字节仅为0xFF、无论温度如何、始终为0xFF。
该 I2C 总线上只有 MCU 和 TMP103A、因此其他器件无法进行 ACK。
我通过将机箱与 GND 隔离来大大减少了问题、因此可能会有一些外部噪声耦合到传感器、但我们无法测量。 这让我回到最初的问题、即如果我们只从传感器读取值而不首先写入指针寄存器、那么在什么情况下它将以0x00进行响应? 它可能表示上一次转换中出现错误或值不合理?