STM32/STM8技术论坛
直播中

张鹏

8年用户 1243经验值
私信 关注
[问答]

SPI读数异常是什么原因造成的?

最近做陀螺加速度芯片数据采集驱动编写,遇到一个奇怪的问题,请大家帮忙分析一下。
起初用的传感器芯片型号是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在通讯配置上并没有什么明显不同的地方。
      不知道大家有没有遇到过这个问题的,麻烦指导一下这个问题可能是什么原因造成的,感谢!

回帖(7)

刘伟

2018-9-27 09:52:07
是不是速度太快了
举报

陈敏

2018-9-27 09:53:03
发送 写addr和reg 两个byte 之后要等50ms再去发送 读addr 之后的byte
举报

张娟

2018-9-27 09:53:38
速度是多少?看下读写是否繁忙?
举报

杨帆

2018-9-27 09:53:51
阅读下芯片的资料,看看时序或速率是否有问题。
举报

南山南北海北

2018-9-27 11:07:07
很有可能速度快了
举报

人中狼

2018-9-27 13:20:39
看芯片资料吧,用过一个AS5048磁角度传感器,资料里就写明了读取的是前一命令的结果,所以用起来觉得很别扭
举报

jinyi7016

2018-9-28 09:01:28
硬件上的连接是不是正常
程序的读取速度是不是太快
举报

更多回帖

发帖
×
20
完善资料,
赚取积分