我已经在有关L3G4200D陀螺仪的问题上搜索了一下这个论坛,但没有看到提到的问题,但是我在其他论坛上看到了其他人在谈论它。当陀螺仪静止时,我在输出中看到一个奇怪的大值。不幸的是,似乎没有人能够回答为什么会这样,所以我想问一下
因此,我正在使用i2c以400kHz(快速模式)从陀螺仪收集数据,并使用多字节读取(一次六个字节)收集陀螺仪数据。以100Hz采样(也尝试了最高800Hz),还尝试了在不同值处打开和关闭滤波。我没有使用中断引脚,而是在GYRCTRLREG4中使用了“块数据更新”属性,以便在读取LSB和MSB之前都不会输出数据。满2000dps,对FIFO没做任何事情。如果有帮助,我可以发布确切的寄存器值,但是图大多数人都没有数据手册。
下图显示了我的问题。输出的数据良好,据我所知正确计算,并且一般噪声是可以接受的。但是后来我注意到,当设备静止时,这些烦人的“斑点”会随机出现。如果我将其静置几秒钟,我将获得其中一个峰值,始终等于250-255(转换后约为18,使用'(输出* 70)/ 1000')。正如我所说,这些峰值是随机的,可以出现在任何平面中(在下图中,您可以看到X平面中的第一个峰值,Y方向中的第二个峰值),始终在相同的值附近,以及一个,两个或全部三个可以同时发生。大值仅用于单个样本,然后恢复正常。
如前所述,我在另一个线程中看到应该在GYRCTRLREG4中使用块数据等待功能,但没有任何变化。我将问题缩小到MSB为零或更高(即正数)时,然后将MSB和LSB合并时,我得到了这些大数。例如,我抓取X平面所需的两个字节,在LSB中得到-6,在MSB中得到0,将它们组合起来得到250,然后转换为(250 * 70)/ 1000 = 17.5 dps(即对于固定/错误而言太大)。在同一样本中,Y平面的两个字节是-3 LSB和-1 MSN,将它们组合在一起得到-3,而转换得到-0.21(即,期望/正确)。
几天来一直在解决这个问题,我的磁力计也看到了一些随机峰值,所以我想这是我通过i2c读取设备错误吗?
任何建议或尝试的事情都非常欢迎!