九轴IMU自制记录

在这里插入图片描述

一、目前问题:

1、42652IMU读取ID值不正确

目前ID读出:0 正确ID:0X6F

2、磁力计读取ID值不正确

目前ID读出:0 正确ID:0X10

二、原因推测:

1、焊接不良(硬件问题)

2、驱动时序未编写对(软件问题)

三、目前在做的事情:

思路:

先排除软件问题再考虑硬件问题,抓取I2C和SPI通讯的时序,判断是否确实将时序发送了出去,如果时序是正确的,并且我只做读取器件ID的操作,器件只要正常上电,并且我确实向其发送的读取ID时序,不用考虑器件的初始化,我都应该能读到器件的ID,如果仍未读到ID,说明极大可能是硬件问题(焊接问题)

验证:

IIM42652(黄色时钟线,蓝色MOSI数据线):根据配置为SPI模式三,所以时钟空闲为高电平,第二个跳变沿采样,所以由主机发送的寻址信号为01110101,十六进制是0X75,根据官方手册,ID寄存器地址确实是0X75

结论:IIM42652的SPI的发送时序没问题
在这里插入图片描述

IST8308(黄色SCL,蓝色SDA): 时钟高电平时进行取样,故寻址信号为000110001,前七位为地址,第八位为读写位0为写1为读,第九位为应答位,故为寻址地址为0001100即0X0C,第八位为0写信号,第九位为1无应答

结论:跟IST8308的I2C通信时序也没问题,从最后一位应答位为1看得出,器件没有应答,故极大可能是焊接问题。
在这里插入图片描述

四、需要确定的事

IIM42652:

1、根据IIM42652官方手册,四线SPI的通讯模式是模式三,即CPOL = 1, CPHA = 1 ,时钟空闲时是高电平,第二个跳变沿进行采样已经确定配置正确

在这里插入图片描述

2、根据官方时序图,通信采用的是高位在前模式,即RT_SPI_MSB已经确定配置正确

3、根据官方手册,SPI的通讯频率最大24M,我通过示波器实际抓取,我的通讯频率是2.61M确定了在要求范围内

在这里插入图片描述

IST8308:

1、根据官方手册:I2C最大通信频率为400KHZ,实际通信频率通过示波器抓取为53.2KHZ,在条件范围内

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

先睡个好觉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值