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.

[参考译文] HDC1080:湿度数据有时输出为"0xFFF"

Guru**** 2570275 points
Other Parts Discussed in Thread: HDC1080

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/621625/hdc1080-the-humidity-data-is-sometimes-output-as-0xffff

器件型号:HDC1080

您好!

 

关于 HDC1080上的湿度数据、我的客户提出了一些问题。

他们为此器件设计了新电路板。

湿度数据有时输出为"0xFFF"(65535d)。

 


 

 

*他们确认 ACK (I2C)没有问题。

*他们试图将等待(转换)时间更长,但问题没有得到解决。

*同时输出的温度数据是正确的。

 

(问题)

(1)您能告诉我们任何可能的原因、意见和建议吗?

(2)关于湿度数据格式、

根据数据表、2个 LSB D1和 D0始终为0。

是否可能有2个 LSB 对两个“1”都作出规定?

 

此致、

Tao2199

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

    1)请您告诉我们任何可能的原因、意见和建议吗?

    您的客户是否在转换结束时对温度和湿度执行单独的读数?

    在这种情况下、可能的实现顺序如下:
    转换触发器:I2C 写入指针00hex (用于触发温度+湿度转换)
    2.读取温度:I2C 读取(因为指针已经在位置00Hex 中)

    此时、如果执行新的 I2C 写入操作以将指针修改为01Hex、则会触发新的湿度转换、HDC1080不会降低 SDA 线。

    如果我的理解是正确的、我建议不要执行新的 I2C 写入、而是一次性直接读取32位(16个温度和16 hum)

    2)关于湿度数据格式,
    根据数据表、2个 LSB D1和 D0始终为0。
    是否可能有2个 LSB 对两个“1”都作出规定?

    正确的做法是2LSB D1和 D0始终为"0"。 唯一的读取0xFFFF 的可能是与 I2C 通信问题相关的。

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

    Massimo、您好!

     

    感谢你的答复。

     

    您提到过、如果执行新的 I2C 写入操作来将指针修改为01Hex、

    会触发新的湿度转换、HDC1080不会降低 SDA 线。

     

    我对上述问题有疑问。

    (问题)

    根据数据表第12页中的湿度和温度测量读数、

    为了触发测量、设置0x00和0x01的地址指针。

    这意味着执行一个新的 I2C 写入操作来将指针修改为01Hex。

    此时会触发新的湿度转换、不会降低 SDA 线?

    (与上述行为相同?)

     

    此致、

    Tao2199

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

    其他问题。
    如果在数据表第12页中读取湿度和温度测量值、
    它们是否需要为转换触发器设置地址指针(0x00 (temp)和0x01 (hum))?
    我只是问以防万一。

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

    (问题)
    根据数据表第12页中的湿度和温度测量读数、
    为了触发测量、设置0x00和0x01的地址指针。
    (答案)
    要读取 Hum + Tem、顺序为:
    -设置 B[12]=配置寄存器0x02的'1'-->使用图10 (第10页)中描述的序列
    -触发测量->图12 (在指针0x00处写入)
    -等待100ms
    -读取输出-->图14 (读取寄存器0x00和0x01 -->不使用任何额外的写入命令)

    (问题2)
    它们是否需要为转换触发器设置地址指针(0x00 (temp)和0x01 (hum))?
    (答案2)
    不、它们不会。

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

    感谢你的答复。
    他们用100ms 的等待时间进行了检查、这个问题得到了解决。
    (未发生0xFFFF 数据。)
    到目前为止、他们已经为等待时间配置了50ms。
    他们对转换等待时间提出了一些问题。

    (问题)
    (1)它们需要估算的 Temp+Hum 转换的最短时间是多少? (配置位12:MODE = 1)
    (他们认为在100ms 内将包含许多裕度。)
    根据其他线程、Temp+Hum 转换的最短时间为40ms。
    e2e.ti.com/.../1794906 转换时间#1794906

    (2)如果是配置位12:MODE=0 (单独采集)、
    等待时间是否需要与 mode1 (100ms)相同?

    (3)转换时间是否受其应用条件(例如气流、PCB 布局)的影响?

    此致、
    Tao2199e2e.ti.com/.../2292523
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Tao2199

    我很高兴客户问题得到了解决。

    数据表中注明了湿度和转换时间。
    湿度(11位分辨率)= 3.85ms
    温度(11位分辨率)= 3.65ms
    在数据表中所述的条件下(VDD=3V、温度= 30°C 且湿度= 40%RH)

    但在系统级、您必须考虑在微控制器中生成命令并发送 I2C 命令的时间、这与 HDC1080性能无关。

    由于我不知道客户系统、我建议执行一些测试来评估系统中的最短等待时间。

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

    你好,Massimo

     

    感谢你的答复。

    其 I2C 速度为100KHz (0.01ms)。

    因此、触发测量命令总共需要大约0.2ms。(请在下面查看。)


     

    (问题)

    (1)即使考虑在微控制器中生成命令并发送 I2C 命令的时间、

    他们认为等待时间100ms 太长。

    是否有其他可能的原因?

     

    (2)关于您提到的等待时间100ms、

    请告诉我们100ms 的原因是什么?

     

    (3)根据其他线程、Temp+Hum 转换的最短时间为40ms。

    e2e.ti.com/.../1794906 转换时间#1794906

     

    他们是否可以将此值用作最短等待时间?

     

     

    此致、

    Tao2199

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

    我建议"安全"等待时间为100ms、因为我不知道您客户的系统、

    可以将等待时间减少到40ms、但客户必须在他的应用程序中验证此等待时间。

    此致
    Massimo