最近做陀螺加速度芯片数据采集驱动编写,遇到一个奇怪的问题,请大家帮忙分析一下。
起初用的传感器芯片型号是BMI055,单片机STM32F405,使用硬件spi,读写数据均正常。
后将传感器芯片型号换成BMI088,单片机和SPI驱动包括引脚等都不变,仍是硬件spi,发现每次读传感器的寄存器要读两次才能读出来正确的值。
以读取ACC相关寄存器为例,以下为读取寄存器时序:
读寄存器 应读出结果 实际结果
0x00 0x1E 0x00
0x00 0x1E 0x1E
0x41 0x00 0x1E
0x41 0x00 0x00
0x58 0x04 0x00
0x41 0x00 0x04
0x41 0x00 0x00
根据上表,基本上就是每次读的实际结果都是上一次应该读出的结果,也就是滞后一个读取周期。看传感器手册,055和088在通讯配置上并没有什么明显不同的地方。
不知道大家有没有遇到过这个问题的,麻烦指导一下这个问题可能是什么原因造成的,感谢!
|