IMU调试方案

简介: 本文是关于IMU(惯性测量单元)QMI8658C型号的调试方案,包括I2C和SPI通信协议的详细介绍、接线方法、工作原理以及优缺点分析,并提供了相关的数据手册和开发资源链接。

1.IMU

型号 QMI8658C
IMU英文数据手册
参照连线与数据手册使用
类似的惯导模块开发https://www.cnblogs.com/rockyching2009/p/15071669.html
微雪 https://www.waveshare.net/wiki/RP2040-LCD-1.28
micro python :https://docs.micropython.org/en/latest/esp32/tutorial/intro.html
https://github.com/scottshambaugh/mpl\_quaternion\_views

1.I2C协议

一般 I²C 芯片常用的传输格式有下列二种:

(启始)-[控制]-[指令]-[资料]-(结束)
(启始)-[控制0]-[指令]-(r启始)-[控制1]-[资料]-(结束)
I²C-Bus
一个由单一主控端(一个微控制器)及三个从属节点(一个模拟数字转换器)、一个数字模拟转换器以及一另一个微控制器)所构成,并使用了上拉电阻Rp。

I²C只使用两条双向漏极开路(Open Drain)线,其中一条线为传输数据的串行资料线(SDA),另一条线是启动或停止传输以及发送时钟序列的串行时脉(SCL)线,这两条线上都有上拉电阻[2]。I²C允许相当大的工作电压范围,但典型的电压准位为+3.3V或+5v。
i2c阻抗50,usb阻抗100在做信号转换时阻抗不匹配会造成信号极差
相关资料:wiki_I2C

I2C协议下IMU接线

使用模式

按照使用模式,若IMU全程仅作为从设备使用,不作为外部磁力计的主设备,外部传感器总线被禁用,此时为Default Mode,即如下模式
Mode 1: Default mode of operation. In this mode, the QMI8658C is a slave device to a host processor that
communicates to it using one of the following interfaces: I2C, I3C, and SPI (3-wire or 4-wire modes). This slave
relationship to the host is the same for all operating modes. In Mode 1, the secondary interface is not enabled

O SDO/SA0 I2C Slave LSB bit of the device Address (SA0) ? 此处可能有200kΩ的内部上拉电阻
IO SDx VDDIO or GND
IO SCx VDDIO or GND
O INT1 Programmable Interrupt 1 for I2C and SPI 可编程中断口1
I VDDIO Power Supply for IO Pins IO引脚供电入口 3.3V
I GND Ground (0 V supply); is internally No Connect.
I GND Ground (0 V supply)
I VDD Power supply 供电入口3.3V
O INT2 Programmable Interrupt 2(INT2)/ Data Enable (DEN) 可编程中断口2 或 数据使能引脚
I CS I2C/ I3C /SPI-UI selection Pin. 片选引脚 chip select
(If 1: I2C-UI Mode: I2 C/I3C communication enabled, SPI idle mode)
(If 0: SPI-UI mode: I 2 C/I3C disabled)
IO SCL SPI-UI Serial Clock (SPC) (2)(3) SPI串行时钟 此处图纸文字有错漏
IO SDA I2C/I3C-UI Data (SDA) I2C数据接口 SPI四线模式的Data In(SDI)SPI三线模式下的Data IO(SDIO)

2.SPI协议

特别注意:In SPI mode (not in I2 C Mode), there is an internal pull down 200 kΩ resistor.
SCl口与SDA口 SPI模式下有内部下拉电阻200kΩ

串行外设接口(Serial Peripheral Interface Bus,SPI)

SPI协议下IMU接线

使用模式

按照使用模式,若IMU全程仅作为从设备使用,不作为外部磁力计的主设备,外部传感器总线被禁用,此时为Default Mode,即如下模式
Mode 1: Default mode of operation. In this mode, the QMI8658C is a slave device to a host processor that
communicates to it using one of the following interfaces: I2C, I3C, and SPI (3-wire or 4-wire modes). This slave
relationship to the host is the same for all operating modes. In Mode 1, the secondary interface is not enabled

O SDO/SA0 SPI-UI Data Out (SDO) in SPI-UI 4-Wire Mode. SPI data out口 ?此处可能有200kΩ的内部上拉电阻
IO SDx VDDIO or GND
IO SCx VDDIO or GND
O INT1 Programmable Interrupt 1 for I2C and SPI 可编程中断口1
I VDDIO Power Supply for IO Pins IO引脚供电入口 3.3V
I GND Ground (0 V supply); is internally No Connect.
I GND Ground (0 V supply)
I VDD Power supply 供电入口3.3V
O INT2 Programmable Interrupt 2(INT2)/ Data Enable (DEN) 可编程中断口2 或 数据使能引脚
I CS I2C/ I3C /SPI-UI selection Pin. 片选引脚 chip select
(If 1: I2C-UI Mode: I2 C/I3C communication enabled, SPI idle mode)
(If 0: SPI-UI mode: I 2 C/I3C disabled)
IO SCL SPI-UI Serial Clock (SPC) (2)(3) SPI串行时钟 SPI模式有内部下拉电阻200kΩ
IO SDA/SDI/SDIO SPI四线模式的Data In(SDI)SPI三线模式下的Data IO(SDIO)SPI模式有内部下拉电阻200kΩ

SPI总线规定了4个保留逻辑信号接口:

SCLK(Serial Clock):串列时脉,由主机发出
MOSI(Master Output, Slave Input):主机输出从机输入信号(数据由主机发出)
MISO(Master Input, Slave Output):主机输入从机输出信号(数据由从机发出)
SS(Slave Select):片选信号,由主机发出,一般是低电位有效

SPI设备之间使用全双工模式通信,是一个主机和一个或多个从机的主从模式。主机负责初始化帧,这个数据传输帧可以用于读与写两种操作,片选线路可以从多个从机选择一个来响应主机的请求。
SPI是一种事实标准,也就是说这种规范没有对应的技术标准。因此各个厂家生产的SPI器件配置不一样,不一定有互操作性。
SPI总线的通信操作可以在单个主设备与一或多个从机之间进行。

在只有单一从机的情况下,如果从机允许,SS线可以固定为逻辑低电平。然而有一些从机需要片选讯号的下降沿来触发动作,例如Maxim MAX1242 ADC在高→低转换时才会开始进行模数转换。对于多个从机,每个从机都需要一个独立的SS讯号。

大多数从属设备具有三态逻辑的特性,所以当器件未被选中时,它们的MISO讯号变为高阻抗(逻辑断开)。没有三态输出的器件不能与其他器件共享SPI总线段,但是可以使用外接的三态逻辑缓存来解决这个问题。
在这里插入图片描述

如图1所示,如果一个从芯片或从设备(slave)的SS管脚处于非激活状态(通常是低电平),那么这个从芯片或从设备就相当于一个聋子,不会对任何外来的输入信号做出反应。而如果其中某一从芯片的SS管脚处于激活状态的话,那它就能听到外来的输入信号,就能做出接收或回应。图1中,MISO是从芯片向主芯片传输数据的信道,MOSI是主芯片向从芯片传输数据的信道,SCLK是时钟信道(主芯片->从芯片)。

优点

SPI协议默认是全双工通信。
与漏极开路输出相反,SPI的推挽输出可提供良好的信号完整性和高速度
比I²C或SMBus更高的传输带宽 。 不限于任何最大时钟频率,可实现高速运行

缺点

也需要比I²C更多的IC线路
不支持动态添加节点(热插拔)。

没有从机检测机制,主机无法检测是否与从机断开。
没有错误检测机制,不像I²C在每个字节后有回复信号
没有规定中断,必须通过带外信号来实现中断,或者通过使用类似于USB 1.1和2.0的定期轮询来模拟中断

相关资料:wiki_SPI

微雪IMU设计:相关链接
https://www.waveshare.net/w/upload/6/60/RP2040-LCD-1.28-sch.pdf

目录
相关文章
|
6月前
|
Linux
USRP N320更改主时钟频率及测试
USRP N320更改主时钟频率及测试
87 0
|
4月前
|
人工智能 API
KV cache复用与投机采样问题之优化投机采样中的采样流程如何解决
KV cache复用与投机采样问题之优化投机采样中的采样流程如何解决
67 0
2023年电赛---运动目标控制与自动追踪系统(E题)OpenART mini的代码移植到OpenMV
2023年电赛---运动目标控制与自动追踪系统(E题)OpenART mini的代码移植到OpenMV
215 0
|
传感器 算法 数据可视化
IMU模块中的一些基本概念和常见问题
IMU模块中的一些基本概念和常见问题
IMU模块中的一些基本概念和常见问题
|
Ubuntu 机器人 C++
【7. ROS 中的 IMU 惯性测量单元消息包】
【7. ROS 中的 IMU 惯性测量单元消息包】
625 0
|
监控 数据可视化 安全
Baumer工业相机堡盟相机如何使用Trace功能(相机日志追踪的使用和优点以及行业应用)(C++)
Baumer工业相机堡盟相机如何使用Trace功能(相机日志追踪的使用和优点以及行业应用)(C++)
108 0
|
传感器
振弦采集模块配置工具VMTool 扩展功能指令生成器与实时曲线
指令生成器可根据需要生成符合 MODBUS 和 AABB 通讯协议的读取和控制指令。 通过点击串口调试工具内的【 指令生成器】 按钮,可打开指令生成器窗口,如下图示。 在指令生成器窗口中, 输入需要修改或读取的寄存器地址、寄存器值,点击【 生成指令】 按钮,即可在界面底部的文本框生成 16 进制指令, 点击【 复制到剪切板】 按钮可将当前显示的指令内容复制到剪切板。
振弦采集模块配置工具VMTool 扩展功能指令生成器与实时曲线
|
消息中间件 Arthas 运维
日志瘦身骚操作:从 5G 优化到 1G,牛逼!!
日志瘦身骚操作:从 5G 优化到 1G,牛逼!!
|
Linux vr&ar Windows
实战篇|浅析MPS对PCIe系统稳定性的影响
MPS影响系统性能,还有一个更加重要的事情,MPS对PCIe系统稳定性也起着决定性的作用。
一个解决视频切换花屏的方案
指挥传递RTP的是RTCP,那么RTCP中有没有介绍传递I帧的命令呢?我抱着这样的疑问进行了下搜索,解决方法RFC已经帮我们定义好了。
一个解决视频切换花屏的方案