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.

[参考译文] HDC2021:HDC2021未返回温度的 MSB

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1080924/hdc2021-hdc2021-not-returning-msb-of-temperature

部件号:HDC2021

我可以从 HDC2021中正确读取设备 ID,MSB 返回为0x07,LSB 返回为0x0D, 制造商 ID 为0x5449

但温度的 MSB (地址0x01返回一个变化的常数。  LSB 读取返回的数据超出了预期的移动和滚动温度。

读取温度返回数据= 0x80 =>数据之前读取寄存器 x04已就绪。

我向设备发送了一个软重置(addr 0x0E = 80),结果也是一样的。

时间最小值超出数据表中的两倍。  时钟速度为189Khz。

湿度传感器正在返回合理的数据,这些数据随温度变化而变化,这些变化可能会改变湿度,因此我怀疑传感器正在工作。

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

    您好,

    您能否共享代码以从设备读取温度和湿度? 您是否还可以阅读寄存器0x0F 并检查温度和湿度测量是否已启用?

    此致,
    帕瓦尼·特内蒂

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

    寄存器0x0F 获得数据= 0x01,该值应启动温度和湿度的转换。位1和位2中的零同时启用温度传感器和湿度。  你可以在我发给你的波形表中看到这些位。

    以下是发送的与我发送给您的波形表单匹配的字节。

    Constant HDC_Byte_1 :STD_LOGIC_Vector (7下行至0):= X80”;- HDC2021设备地址写入
    Constant HDC_Byte_2 :STD_LOGIC_Vector (7下行至0):= X-0F";-- HDC2021启动转换命令地址
    Constant HDC_Byte_3 :STD_LOGIC_Vector (7下行至0):= X"01";-- HDC2021启动转换命令(9位并启动)

    Constant HDC_Byte_4 :STD_LOGIC_Vector (7下行至0):= X80”;- HDC2021设备地址写入
    恒定 HDC_Byte_5 :STD_LOGIC_Vector (7下行至0):= X"01";- HDC2021温度地址
    Constant HDC_Byte_6 :STD_LOGIC_Vector (7下行至0):= X"81";-读取 HDC2021设备地址
    恒定 HDC_Byte_7 :STD_LOGIC_Vector (7下至0):=“FF”;- HDC2021读取温度数据。 向上拉以使设备可以驱动零

    恒定 HDC_Byte_8 :STD_LOGIC_Vector (7下行至0):= X80英寸;- HDC2021设备地址写入
    Constant HDC_Byte_9 :STD_LOGIC_Vector (7下行至0):=“03”;- HDC2021 HMIDITY 地址
    恒定 HDC_Byte_10:STD_LOGIC_Vector (7下行至0):= X"81";-读取 HDC2021设备地址
    Constant HDC_Byte_11:STD_LOGIC_Vector (7下至0):=“FF”;- HDC2021读取 HMIDITY 数据。 向上拉以使设备可以驱动零

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

    迈克-  

    在这里,在开始转换后等待~1.3毫秒,然后读取0x04 for 0x80后,您可以将指针设置为0x00,同时读取临时和%RH 的所有四个字节-请参阅我们关于此主题的常见问题解答,并告诉我们它是否对您有帮助。  

    https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/878721/faq-hdc2080-hdc2010---i-am-getting-incorrect-values-for-example--40c-or-0-rh-or-both-from-hdc-device-for-my-first-read-or-for-any-read-how-to-troubleshoot-the-problem?tisearch=e2e-sitesearch&keymatch=HDC2080#

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

    乔什,

    我正在等待1毫秒,而典型的是640个。 我会增加这个数字,但对这个问题表示怀疑。  我只是在寻找 MSB ,地址0x0F = 0xa1。 将其更改为0x01,只是为了提高对正在发生的事情的可见性。  是的,我只能连续读取所有四个字节,并抛出两个 LSB。。。。不管用哪种方法,都是一样的,对吗?  我将尝试自动增量。   

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

    Mike -在这种情况下,如果您同时读取 temp 和%RH,则必须添加转换时间,对于14位结果(默认值),转换时间大约为1.3毫秒。  你不应该放弃任何东西。 如果不使用零件的 DRDY / INT 行来触发寄存器0x04的读取,我将等待大约1.5毫秒,以覆盖温度过高操作。  

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

    我将等待时间增加到了2毫秒。 仍然没有 MSB 临时数据。  我的当前读取形式适用于您的设备 ID 和配置 ID。  为什么它不能用于临时功能?

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

    迈克-  

    此处-您需要将指针设置为0x00并写入,然后开始超频...

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

    如上所示是不同的设备,对吗?  hdc2021的设备地址为0x80,而不是0x82。  ,请确认。

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

    点燃以上内容。。您只 需选择绑定高的地址

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

    在单字节读取温度 MSB 失败的情况下,以突发方式读取所有四个字节正在工作。  我会继续。 感谢你们的帮助。

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

    迈克-  

    了解-我终于能够重新连接我的逻辑分析器,为您提供如何对单字节进行时钟处理的示例。  

    具体而言,您需要注册0x00内容。 希望这能帮助您澄清这一点。  

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

    HCC2021上的此案例可以关闭

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

    迈克-

    谢谢!