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

目录
相关文章
|
NoSQL 数据安全/隐私保护 Android开发
Jlink使用技巧之读取STM32内部的程序
Jlink使用技巧之读取STM32内部的程序
3414 1
Jlink使用技巧之读取STM32内部的程序
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
14281 38
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
12月前
|
机器学习/深度学习 人工智能 算法
ToddlerBot:告别百万经费!6000刀就能造人形机器人,斯坦福开源全套方案普及机器人研究
ToddlerBot 是斯坦福大学推出的低成本开源人形机器人平台,支持强化学习、模仿学习和零样本模拟到现实转移,适用于运动操作研究和多场景应用。
1203 3
ToddlerBot:告别百万经费!6000刀就能造人形机器人,斯坦福开源全套方案普及机器人研究
|
算法 物联网 5G
UWB定位的7种算法
UWB定位系统基于超宽带技术,通过纳秒级脉冲实现高精度厘米级甚至毫米级定位。其7种主要算法包括:1) TOA(到达时间),利用信号传播时间计算距离;2) TDOA(到达时间差),通过多个基站的时间差确定位置;3) RSSI(接收信号强度),估算距离但精度较低;4) AOA(角度到达),测量信号入射角度;5) 混合算法,结合多种算法提高精度;6) 最小二乘法,处理多基站数据减少误差;7) 卡尔曼滤波,动态跟踪目标位置;8) 粒子滤波,适应复杂非线性环境。这些算法各具特点,适用于不同场景,如工业制造、智能仓储和室内定位等。
1151 11
|
监控 网络协议 网络性能优化
不再困惑!一文搞懂TCP与UDP的所有区别
本文介绍网络基础中TCP与UDP的区别及其应用场景。TCP是面向连接、可靠传输的协议,适用于HTTP、FTP等需要保证数据完整性的场景;UDP是无连接、不可靠但速度快的协议,适合DNS、RIP等对实时性要求高的应用。文章通过对比两者在连接方式、可靠性、速度、流量控制和数据包大小等方面的差异,帮助读者理解其各自特点与适用场景。
|
SQL 数据库
gbase 8a 数据库 SQL优化案例-关联顺序优化
gbase 8a 数据库 SQL优化案例-关联顺序优化
|
Ubuntu Linux Shell
C++ 之 perf+火焰图分析与调试
【11月更文挑战第6天】在遇到一些内存异常的时候,经常这部分的代码是很难去进行分析的,最近了解到Perf这个神器,这里也展开介绍一下如何使用Perf以及如何去画火焰图。
555 5
|
网络协议 网络虚拟化
接收网络包的过程——从硬件网卡解析到IP
【9月更文挑战第18天】这段内容详细描述了网络包接收过程中机制。当网络包触发中断后,内核处理完这批网络包,会进入主动轮询模式,持续处理后续到来的包,直至处理间隙返回其他任务,从而减少中断次数,提高处理效率。此机制涉及网卡驱动初始化时注册轮询函数,通过软中断触发后续处理,并逐步深入内核网络协议栈,最终到达TCP层。整个接收流程分为多个层次,包括DMA技术存入Ring Buffer、中断通知CPU、软中断处理、以及进入内核网络协议栈等多个步骤。
|
SQL 安全 前端开发
文件上传漏洞(二)中国菜刀
文件上传漏洞(二)中国菜刀
|
机器人 Linux 数据安全/隐私保护
一键部署 botpress windows和linux 傻瓜式安装智能对话机器人 chatbot
一键部署 botpress windows和linux 傻瓜式安装智能对话机器人 chatbot
618 0
一键部署 botpress windows和linux 傻瓜式安装智能对话机器人 chatbot

热门文章

最新文章