我有兴趣同时使用两个 LIS2DS12 传感器测量加速度。因此,我开始测量(几乎同时),采样频率为 800Hz,持续 10 秒,两个传感器的满量程范围为 +-2g。测试用例如下。两个传感器都放在桌子上,我在桌子上施加轻微的震动。
我的预期结果是在两个传感器上同时看到传感器数据的振动。由于同时启动时不准确,两个传感器之间可能存在偏移。但是这个偏移量应该在 10 秒的测量时间内保持不变。
正如您在附图 (measurement.png) 中看到的那样,我成功地测量了两个传感器的振动。由于同时启动两个传感器的不准确性,也存在偏移。但如果我们仔细观察,偏移量将不会保持不变。它改变了。图片first_shock.png 顾名思义,显示了测量的第一次冲击。第一个传感器在震动发生前的最后一个测量点大约为 74 毫秒,第二个传感器的最后一个测量点大约为 393 毫秒。因此,第一次冲击的两个传感器之间的偏移量为 319 毫秒。如果我们看一下 last_shock.png,我们会看到传感器之间有 233 毫秒的偏移。
因此,我的问题是这怎么可能?我仅有的两个想法是我丢失了样本,但我现在不知道为什么会发生这种情况。LIS2DS12 的时钟控制可能不准确,因此采样频率会随时间变化,因此会发生偏移时间的偏移。
更多的信息:
两个传感器具有相同的配置(800Hz、10s、+-2g)并且处于连续模式。如果 fifo 中有超过 2 个样本,我会读取数据,因此读取请求的时间 (~970µs) 小于 1/ODR(800Hz 时为 1.25ms)。我还在每次读取请求时检查寄存器 0x2F 是否有 fifo 溢出或 fifo 已满,因此没有数据丢失。