“LSB / Unit”和“Unit / LSB”的含义

时间:2013-10-03 14:28:25

标签: math physics sensor electronics

目前我正在玩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?那是我测量的重力加速度。

5 个答案:

答案 0 :(得分:11)

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

对于LSB /单位:

x lsb表示 - 1个单位

1 lsb表示 - 1 / x单位

值lsb(寄存器中的值)=(1 / x)*(寄存器中的值) - 在此处应用unitary方法。

同样对于Unit / LSB,你必须乘以灵敏度。

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

RGDS, RP

答案 1 :(得分:8)

现在我得到了诀窍。您必须知道这个MEMS上有几件事情,但数据表中没有提到:

  1. 加速度计的输出寄存器只有12位而不是16位,因此您需要将值右移4并将其乘以0,001 G.此外,它还是小端。
  2. 磁力计的输出寄存器是16位,但是大端。此外,矢量顺序是(X | Z | Y)而不是(X | Y | Z)。要计算正确的值,你需要将X和Y分别为980高斯 - 1,而对于Z来说,它是1100高斯 - 。
  3. 温度传感器工作,但没有校准。所以你可以用它来测量温度变化,但没有绝对温度。它也只是12位,但是big-endian你必须将输出分配8 C -1。
  4. 使用该信息可以使用LSM303DLHC。但到底是谁发明了这个? “让我们在一个封装中构建一个新的加速度计,磁力计和温度计,并通过混合字长和字节顺序来提升用户,而不在数据表中提及它。”

答案 2 :(得分:2)

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

但是对于温度和加速度,如果只考虑12个最重要的位。最后两位仍然总是为零,因此有效分辨率为10位,令人困惑。

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

我希望其他人可以证实他们得到的结果相同。

答案 3 :(得分:1)

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

答案 4 :(得分:0)

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

结果被掩埋在数据表中提供的另一个参数中:灵敏度。 例如FXAS21002C对于2000 dps的灵敏度为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