有可能在传感器内部更新寄存器时,外部 SPI 同时读取同一个寄存器,导致数据冲突和出错。为了避免这种情况,你可以尝试在读取数据时添加适当的延迟。
下载贤集网APP入驻自媒体
各位老师,请问ADXL350_SPI读数偶尔跳变的原因?怎么解决?我使用ADXL350遇到了读数问题。控制器使用定时器在1秒内定时读取1024数据,但是把数据发送到上位机显示,发现数据有跳变错误。如下图所示:黄色:Z轴,紫色:Y轴,蓝色:X轴。下图一为传感器静止放置时,1秒内每个轴读取的1024个点数据连续波形。FIFO旁路模式FIFO_CTL=0x00。尝试过降低SPI速度,同样现象。还尝试过使用1600HZ采样,这种错误现象更加剧烈。尝试过FIFO流水线模式,同样有此数据错误现象。但是只要将传感器换一个方向,让X轴Y轴都在重力方向有分量,Z轴与水平面平行,数据出错的概率就有明显改善。如下图二所示: 问题1:我的配置是否有错误? 问题2:这种现象是怎样产生的,怎样解决? 问题3:这个会不会和传感器内部更新寄存器时,外部SPI同时又在读取同一个寄存器,导致冲突,致使数据出错? 问题4:由于需要在1秒内读取1024个数据然后做FFT,有没有更好的方式来读取1024个点数据