21

目前我正在使用 LSM303DLHC 加速度计/磁力计/温度计。

这是它的数据表: http: //www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00027543.pdf

一切都运行良好,但我不知道如何解释输出值。数据表(第 9 页)对我的配置中的线性加速度灵敏度说类似“1 mg/LSB”(不,不是毫克:D)。这到底是什么意思?与温度传感器输出变化 (8 LSB/°C) 和磁增益设置 (1100 LSB/高斯) 相同,只是相反。

例如,如何处理这个加速度计输出:16384?那是我测得的重力加速度。

4

5 回答 5

16

现在我明白了。您必须了解有关此 MEMS 的几件事,但数据表中未提及:

  1. 加速度计的输出寄存器只有 12 位而不是 16 位,因此您需要将该值右移 4 并乘以 0,001 G。此外,它是小端序。
  2. 磁力计的输出寄存器为 16 位,但大端。此外,向量顺序是 (X|Z|Y) 而不是 (X|Y|Z)。要计算正确的值,您需要将 X 和 Y 除以 980 高斯⁻¹,而 Z 是 1100 高斯⁻¹。
  3. 温度传感器工作,但未校准。所以你可以用它来测量温度变化,但不能测量绝对温度。它也只有 12 位,但是大端,你必须将输出除以 8 C⁻¹。

有了这些信息,就可以使用 LSM303DLHC。但到底是谁发明了这个?“让我们在一个封装中构建一个新的加速度计、磁力计和温度计,并通过混合字长和字节序来搞砸用户,而在数据表中没有提及它。”

于 2013-10-03T16:12:47.443 回答
13

LSB/单位或单位/LSB 是您必须乘以原始传感器数据的因子(称为灵敏度)。假设传感器 A 具有 X、Y 和 Z 寄存器,每个寄存器中的值需要除/乘以 LSB/单位或单位/LSB 因子。这是因为数据表说@特定的满量程你将有这么多的灵敏度(LSB/单位或单位/LSB)

对于 LSB/单位:

x lsb 表示 - 1 个单位

1 lsb 表示 - 1/x 单位

value lsb(寄存器中的值) = (1/x)*(寄存器中的值) - 在这里应用法。

类似地,对于 Unit/LSB,您必须乘以灵敏度。

您可以在一个模块中构建加速度计、磁力计或温度传感器,也可以是陀螺仪,但如果客户/用户只想要一个传感器怎么办?

Rgds, Rp

于 2013-10-04T03:44:01.453 回答
2

数据表中关于加速寄存器的解释明确不清楚。Genesis Rock 解决方案假设它是 12 位的,这是可行的。(另一种解决方案是假设增益为 16 mg/LSB 而不是 1 mg/LSB,但由于加速度的最后 4 位似乎总是为零,前一个解决方案更有意义)。

但是对于温度和加速度,如果您只考虑 12 个最高有效位。最后两位也始终为零,因此有效分辨率将是 10 位,这令人困惑。

除非数据表中未指定未知偏移量,否则我也无法理解温度读数。

我希望其他人可以确认他们得到了相同的结果。

于 2015-06-08T13:01:10.057 回答
1

关于加速度计的 12 位输出:控制寄存器 4 上有一个高分辨率标志。默认情况下它是关闭的,并且没有关于高分辨率意味着什么的信息。我猜它可能会启用 16 位输出。控制寄存器 4 上还有一个标志,用于设置加速度计输出的字节顺序。默认情况下它是小端。总体而言,数据表相当薄弱。

于 2016-01-23T06:59:27.877 回答
1

一个简单而尴尬的事实是,没有一个回答达到了问题的目标。

结果隐藏在数据表中提供的另一个参数中:灵敏度。例如 2000 dps 灵敏度的 FXAS21002C 为 62.5 mdps/LSB (=0.0626 dps/LSB)。零偏移为 25 LSB,因此以 dps 为单位的值为 0.0625 * 25 = 1.5625 dps

相同的 IMU 对 250 dps 有另一个灵敏度,即 7.825 mdps/LSB (=0.007825 dps/LSB),由于偏移量也是 25 LSB,因此计算将显示实际值 0.0078125 * 25 = 0.1953 dps

该示例可以在这里找到:https ://learn.adafruit.com/comparing-gyroscope-datasheets/overview

于 2019-01-11T16:40:30.700 回答