您好,
1. 初始化配置没什么问题,建议写0x0B到寄存器DATA_FORMAT,因为在full resolution模式下,器件的灵敏度是固定的512 l***/g,这个灵敏度不随量程而改变,而是相当于ADC位数会随着量程变化,这是ADXL350比较特殊的地方。当然,你原来的配置也不会引起你看到的问题。
2. 产生这一现象很有可能是电源出现不稳定跳动造成的,还有一个很大可能是你注意一下读数的方式,ADXL350的3轴输出,或者说6个byte的输出要连读,也就是手册里写的multiply bytes, burst read。不要一个字节一个字节的读,否则有可能造成你高字节读的一组数据,低字节是下次转化的数据了,把两者拼接到一起就可能出错了。
3. SPI速度不会有影响,但要确认你的MCU在你配置的速度下是能稳定工作的。这可以通过连续读器件的DEVICE ID来确认。因为ID是写好不会变的。一般来说3MHz左右的速度不会有什么问题的。
4. 还要注意数据是否是在传到上位机的过程中出错,这可以在MCU里加一个判断,看是否从ADXL350输出的原始数据有那么大跳动。
您好,
1. 初始化配置没什么问题,建议写0x0B到寄存器DATA_FORMAT,因为在full resolution模式下,器件的灵敏度是固定的512 l***/g,这个灵敏度不随量程而改变,而是相当于ADC位数会随着量程变化,这是ADXL350比较特殊的地方。当然,你原来的配置也不会引起你看到的问题。
2. 产生这一现象很有可能是电源出现不稳定跳动造成的,还有一个很大可能是你注意一下读数的方式,ADXL350的3轴输出,或者说6个byte的输出要连读,也就是手册里写的multiply bytes, burst read。不要一个字节一个字节的读,否则有可能造成你高字节读的一组数据,低字节是下次转化的数据了,把两者拼接到一起就可能出错了。
3. SPI速度不会有影响,但要确认你的MCU在你配置的速度下是能稳定工作的。这可以通过连续读器件的DEVICE ID来确认。因为ID是写好不会变的。一般来说3MHz左右的速度不会有什么问题的。
4. 还要注意数据是否是在传到上位机的过程中出错,这可以在MCU里加一个判断,看是否从ADXL350输出的原始数据有那么大跳动。
举报