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.

[参考译文] TMP103:随机温度值0x00

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/965834/tmp103-random-temperature-value-of-0x00

器件型号:TMP103

早上好、

我们有一个采用 TMP103A 的设计、在某些情况下、传感器以值0x00进行响应。 我们每150ms 在上请求一次温度、I2C 总线以100kHz 的频率运行。

下图显示了返回的有效温度值、150ms 后的下一次读取显示的温度值为0x00。 您能否提供此传感器将以0x00的温度值进行响应的所有条件、以便我们可以尝试找出此问题的原因。

SDA 线路上也有一些噪声、但是这个噪声对于其它正常运行的组装体是常见的。

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

    尊敬的 Edmund -  

    欢迎来到 E2E 论坛、感谢您发帖!
    您发布的图片未通过-是否可以使用"插入/编辑媒体"按钮再次尝试插入?  

    您是每150ms 执行一次转换、还是已将器件设置为8Hz 并每150ms 读取一次值?  

    如果是后者、则每125mSec 就可以进行一次测量、这样您就不会在断电时读取器件数据。 TMP103数据表的第12页上有一个表格-如果您可以确认您使用的是哪种设置、那将很有帮助-或者如果您是在一次性模式下读取、请确认。  

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

    Josh、您好!

    请参阅随附的图片。

    使用 TMP103时、我们不对其进行任何配置更改。 因此、它应处于连续模式。

    读取通过传输传感器地址来完成、读取位设置为高电平、如上图所示。

    默认刷新率仍应为0.25Hz。

    我注意到、触摸接地引脚并移动电缆确实会使问题变得越来越严重、但就示波器上的信号而言、我看不到有什么不同。 我们的一些器件在数周内都能正常运行、而其他器件则是非常常见且明显的问题。

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

    埃德蒙德-  

    谢谢! 我在第一次捕获中看到的是 I2C 地址0xE1的寻址读取、后跟0x00、0xFF。 我在第一个字节上看不到 ACK、第二个字节没有意义、可能是因为您并不是真正与器件通信。 您的所有-A 器件是否100%为正?  

    您是否会尝试向器件发送0xE0并查看其是否为 ACK?

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

    Josh、您好!

    第一个帧是地址1110000、读取位设置为高电平、从而产生11100001。 最后一个时钟周期是针对 TMP103A 到 ACK、它就是这样做的。 第二个帧是00111011、十进制为59、对应于正确的温度。

    这与温度传感器以0x00的温度响应但实际温度为59度的图类似。 传感器发送的最后一个字节仅为0xFF、无论温度如何、始终为0xFF。

    该 I2C 总线上只有 MCU 和 TMP103A、因此其他器件无法进行 ACK。

    我通过将机箱与 GND 隔离来大大减少了问题、因此可能会有一些外部噪声耦合到传感器、但我们无法测量。 这让我回到最初的问题、即如果我们只从传感器读取值而不首先写入指针寄存器、那么在什么情况下它将以0x00进行响应? 它可能表示上一次转换中出现错误或值不合理?

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

    埃德蒙德-  

    我理解寻址... 0xE1是地址0xE0 (即全字节写入地址)上读操作的全字节表示。

    两个屏幕截图都未显示地址的 ACK、这是器件在第9个时钟附近发出的脉冲。  

    我再次建议发送器件 A 0xE0、看看它是否会 ACK。