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