STM32
登录
直播中
陈键
7年用户
998经验值
擅长:可编程逻辑 电源/新能源
私信
关注
[问答]
使用STM32F4 HAL库的SPI读取MPU6500出现异常的原因?如何解决?
开启该帖子的消息推送
STM32
HAL
使用
STM32
F4 HAL库的SPI读取MPU6500出现异常的原因?如何解决?
回帖
(1)
申志敏
2021-12-17 14:31:18
1、问题背景
近前,使用STM32F4 HAL库的SPI读取MPU6500出现异常。
现象:读取ID失败,返回0,以为硬件焊接问题,各种排查,最后为了示波器测试方便,把读取ID的函数放到While(1)里,反复的读然后抓波形,奇迹出现了,第一次读取出现错误,后面的都返回了正常的ID号。既然问题已经清楚,能够反复重现,那么排查起来也就容易多了,为了找到这个问题,花费了1天的时间,搞得都毛了,真是服了自己,之前想过反复读抓波形,但是不想改代码,每次都点击复位然后再抓波形,竟然完美的错过了后面的正常数据。
硬件连接如下:
/**SPI1 GPIO Configuration PA15 ------> SPI1_NSS PB3 ------> SPI1_SCK PB4 ------> SPI1_MISO PB5 ------> SPI1_MOSI */
2、解决之路
根据手册MPU6500设备ID寄存器WHO AM I, 地址0x75,默认值0x70。 第1次读取的波形。MOSI输入地址:0x75正确,但是MISO设备没有返回数据。
第2次读取的波形。MOSI输入地址:0x75正确,MISO设备返回数据0x70,一切正常。
对比2个图,发现第一次读取CLK为低,并不是高电平,明显不符合datasheet的时序图规定。
查看初始化,发现所有IO都是NOPULL模式,改为GPIO_PULLUP模式后所有读取都正常。
但是出现新的问题,MOSI平时都是低电平,一旦强行拉高,每次发送地址时候就会出现一个边低的脉冲,然后再次拉高。所以改为只把SCK设置为GPIO_PULLUP模式,其他的不变,波形正常。 至此,MPU6500通过SPI访问正常。
1、问题背景
近前,使用STM32F4 HAL库的SPI读取MPU6500出现异常。
现象:读取ID失败,返回0,以为硬件焊接问题,各种排查,最后为了示波器测试方便,把读取ID的函数放到While(1)里,反复的读然后抓波形,奇迹出现了,第一次读取出现错误,后面的都返回了正常的ID号。既然问题已经清楚,能够反复重现,那么排查起来也就容易多了,为了找到这个问题,花费了1天的时间,搞得都毛了,真是服了自己,之前想过反复读抓波形,但是不想改代码,每次都点击复位然后再抓波形,竟然完美的错过了后面的正常数据。
硬件连接如下:
/**SPI1 GPIO Configuration PA15 ------> SPI1_NSS PB3 ------> SPI1_SCK PB4 ------> SPI1_MISO PB5 ------> SPI1_MOSI */
2、解决之路
根据手册MPU6500设备ID寄存器WHO AM I, 地址0x75,默认值0x70。 第1次读取的波形。MOSI输入地址:0x75正确,但是MISO设备没有返回数据。
第2次读取的波形。MOSI输入地址:0x75正确,MISO设备返回数据0x70,一切正常。
对比2个图,发现第一次读取CLK为低,并不是高电平,明显不符合datasheet的时序图规定。
查看初始化,发现所有IO都是NOPULL模式,改为GPIO_PULLUP模式后所有读取都正常。
但是出现新的问题,MOSI平时都是低电平,一旦强行拉高,每次发送地址时候就会出现一个边低的脉冲,然后再次拉高。所以改为只把SCK设置为GPIO_PULLUP模式,其他的不变,波形正常。 至此,MPU6500通过SPI访问正常。
举报
更多回帖
rotate(-90deg);
回复
相关问答
STM32
HAL
得不到
MPU6500
的数据
2019-07-04
2684
MPU
6000
MPU
6050
MPU6500
这三个芯片有什么区别?
2015-10-19
57241
MPU6500
使用DMP
读取
6轴数据,FIFO更新率基本是在30ms变化一次,为什么?
2021-12-27
6223
求大佬分享移植好的鸿蒙下驱动
MPU6500
或
MPU
9250的例程
2021-12-29
914
如
何解
决
STM32F4
HAL
库
串口同时收发代码卡死问题?
2021-11-25
1090
使用
stm32f4
hal
库
读取
AD7689的数据,静止数据看着被截断了的
原因
?
2023-12-05
185
LPWizard10.5
出现
这个是什么
原因
?如
何解
决?
2014-04-26
4922
请问
STM32F4
的
HAL
库
是做什么用的?
2018-10-26
4386
怎样去解决
Stm32
出现
main.c is undefined
异常
的问题呢
2021-11-26
1203
STM32
出现
HardFault_Handler如
何解
决?
2018-10-18
7470
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分