ST意法半导体
直播中

fejlkel

8年用户 1034经验值
擅长:制造/封装
私信 关注
[问答]

HTS221数据一直停留在未就绪状态怎么解决?

我公司一年多以来一直在使用 HTS221 组件,数以千计。
在极少数部分,我们观察到 HTS221 传感器处于未就绪状态:我们在读取其输出数据寄存器之前请求其状态,以确保传感器有新的测量值要发送。我们尚未确定会产生此类错误的任何特定环境模式。
这是配置:
  • CTRL_REG1: BDU =1 和 ODR1,ODR2 = 11 (12.5Hz)
  • 所有其他配置寄存器都处于默认配置状态(我们不配置它们,只初始化 CTRL_REG1)。
由于中断,我们每秒测量一次输出寄存器(是的,为什么输出数据速率为 12.5Hz?我会将其更改为 1Hz,但这不​​应该是卡住问题的原因,不是吗?)
如果传感器没有任何数据准备好(状态寄存器 H_DA 和 T_DAT 等于 0),我们每毫秒向其状态寄存器发送一个新的读取命令。在 800 次迭代(大约 800 毫秒)之后,我们引发了一个错误。
这个状态读取状态的频率是不是太高了,让他没有时间进行新的测量?
老实说,我不负责固件开发,我会做不同的事情,但仍然不应该有任何错误,所以我试图找出原因。
任何的想法 ?
额外问题:
  • 如果在 BDU = 1 模式下,我们不读取 MSB 和 LSB 会怎样?传感器没有发起新的采集,然后不再更新输出数据寄存器?
  • 如果输出数据速率为 12.5Hz 并且对 2 个样本 (AV_CONF) 进行平均,这意味着每 12.5Hz,传感器将启动 2 次采集,这将被平均?这两次收购之间的时间间隔是多少?






回帖(1)

施敏

2023-1-11 11:50:11
>> 如果我与传感器通信(在 I2C 中),传感器是否需要时间,这会延迟其测量)和/或输出寄存器的 ODR 更新?
例如:我已经连续发送请求,它会响应并并行进行测量+输出寄存器更新吗?
由于 I2C 速度通常远高于 ODR 数据速率,因此 I2C 通信时间相对于有效样本和下一个有效样本之间的差异(时间间隔为 1/ODR)可以忽略不计。所有内部操作都在 1/ODR 时间范围内进行。
>> 是的,但是传感器是否进行了采集,只是不更新输出寄存器直到我读取 LSB 和 MSB 输出数据?
如果设置了 BDU,则数据输出只有在未被读取时才会更新。如果在数据可用后很长时间才读取数据,则传感器在内部继续捕获数据,因此将在下一个数据中提供实时物理值。
>> 是的,这意味着传感器进行更多采集以计算更多样本的平均值,对吗?那么仅仅出于好奇,采集频率是多少?
正确的。内部主时钟频率应该在1MHz左右,但是被内部时钟树划分大大降低了,所以在12.5Hz时最大平均值是512,也就是6.4kHz左右
举报

更多回帖

发帖
×
20
完善资料,
赚取积分