陀螺加速度芯片数据采集驱动SPI读数异常 求指教

2019-03-23 15:16发布

<i class="pstatus"> 本帖最后由 wjroy11 于 2018-9-26 10:29 编辑 </i><br /> <br /> 最近做陀螺加速度芯片数据采集驱动编写,遇到一个奇怪的问题,请大家帮忙分析一下。<br /> 起初用的传感器芯片型号是BMI055,单片机STM32F405,使用硬件spi,读写数据均正常。<br /> 后将传感器芯片型号换成BMI088,单片机和SPI驱动包括引脚等都不变,仍是硬件spi,发现每次读传感器的寄存器要读两次<font color="#000"><font face="""><font style="font-size:14px">才能读出来正确的值。</font></font></font><br /> <font color="#000"><font face="""><font style="font-size:14px"><br /> </font></font></font><br /> <font color="#000"><font face="""><font style="font-size:14px">以读取ACC相关寄存器为例,以下为读取寄存器时序:</font></font></font><br /> <br /> <font color="#000"><font face="""><font style="font-size:14px">      读寄存器              应读出结果         实际结果</font></font></font><br /> <font color="#000"><font face="""><font style="font-size:14px">      0x00                   0x1E                0x00</font></font></font><br /> <font color="#000"><font face="""><font style="font-size:14px">      0x00                   0x1E                0x1E</font></font></font><br /> <font color="#000"><font face="""><font style="font-size:14px">      0x41                   0x00                0x1E</font></font></font><br /> <font color="#000"><font face="""><font style="font-size:14px">      0x41                   0x00                0x00</font></font></font><br /> <font color="#000"><font face="""><font style="font-size:14px">      0x58                   0x04                0x00</font></font></font><br /> <font color="#000"><font face="""><font style="font-size:14px">      0x41                   0x00                0x04</font></font></font><br /> <font color="#000"><font face="""><font style="font-size:14px">      0x41                   0x00                0x00</font></font></font><br /> <br /> <font color="#000"><font face="""><font style="font-size:14px">      根据上表,基本上就是每次读的实际结果都是上一次应该读出的结果,也就是滞后一个读取周期。看传感器手册,055和088在通讯配置上并没有什么明显不同的地方。</font></font></font><br /> <font color="#000"><font face="""><font style="font-size:14px">      不知道大家有没有遇到过这个问题的,麻烦指导一下这个问题可能是什么原因造成的,感谢!</font></font></font><font color="#000000"><font style="font-size:14px"><br /> </font></font><br /> <font color="#000000"><font style="font-size:14px"><br /> </font></font><br /> <font color="#ff0000"><font style="font-size:14px">已经找到问题了,</font><font style="font-size:14px">这个传感器芯片比较特殊,spi读取的时候会先发送一个无效字节出来,接着才是有效数据。正在修改代码,感谢各位的指导!</font></font><br /> <br /> <br /> 此帖出自<a href="http://www.xiaopingtou.net/" style="color:#CDCDCD;">小平头技术问答</a>
8条回答
wjroy11
1楼 · 2019-03-24 13:12.采纳回答
supermiao123 发表于 2018-9-25 17:55
最直观的方法就是示波器触发着看,软件单步调试,看问题在哪,根据调试结果来调整你的程序,不然你也不知道 ...

嗯,有道理。我找到问题了,确实是这个传感器芯片比较特殊,spi读取的时候会先发送一个无效字节出来,接着才是有效数据。正在修改代码,感谢指导!
wjroy11
2楼-- · 2019-03-24 19:07
 精彩回答 2  元偷偷看……

一周热门 更多>