当前位置:   article > 正文

STM32CubeIDE HAL库DMA方式驱动MPU925X(1)

STM32CubeIDE HAL库DMA方式驱动MPU925X(1)

一、准备工作

1. 所需硬件

MPU925X模块,stm32f103C8T6最小系统板,jlink烧录器,串口调试工具。
MPU925X代表MPU9250(设备ID是0x71),MPU9255(设备ID是0x73),两者除了设备ID不一样,其它都一样。
MPU925X包含了6轴MPU6515和3轴磁力计AK8963。

2. 软件

STM32CubeIDE

3. 连线

使用标准的SPI协议,需要四根线(除了VCC和GND):
CS(片选)
SCLK(时钟)
MOSI(主输出从输入)
MISO(主出入从输出)
在这里,“主”是最小系统板,“从”是MPU925X。
在这里插入图片描述
上图示MPU9250模块,下图是该模块的原理图
在这里插入图片描述
下图是MPU9250引脚的定义
在这里插入图片描述

引脚对应关系入下表
在这里插入图片描述

4. SPI的配置

参考MPU9250产品手册
在这里插入图片描述

4.1 SPI数据传输时最前面的位

1. Data is delivered MSB first and LSB last
  • 1

数据传输的时候最高位在前,即 MSB First

4.2 SPI模式的选择

2. Data is latched on the rising edge of SCLK: 数据在SCLK的上升沿被采样
3. Data should be transitioned on the falling edge of SCLK:数据在SCLK的下降沿传输
  • 1
  • 2
4.2.1 SPI模式的基础知识

SPI有四种模式:模式0,模式1,模式2,模式3(NSS为片选引脚)
在这里插入图片描述

CPOL(时钟极性)决定SCK在空闲状态(NCS为高)时的电平。
	CPOL = 0,SCLK在空闲状态(NCS为高)时的电平为低电平
	CPOL = 1,SCLK在空闲状态(NCS为高)时的电平为高电平
CPHA(时钟相位)是指数据的采样的时刻。
	CPHA = 0时,MOSI或MISO数据线上的信号将会在SCK时钟线的“奇数边沿(即1 edge)”被采样。
	CPHA =1时,MOSI或MISO数据线上的信号将会在SCK时钟线的“偶数边沿(即2 edge)”被采样。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

从上面可以知道,CPHA是决定数据传输的。CPOL可以取0或者1。
当CPOL = 0时,如果要满足上升沿采样,那么CPHA = 0,即模式0.
当CPOL = 1时,如果要满足上升沿采样,那么CPHA = 1,即模式3.
因此对于MPU925X的SPI通讯,选择模式0和模式3都可以。
在这里插入图片描述
到目前为止,我们就可在STM32CubeIDE配置SPI了。
如上图所示,CPOL=0(对应配置的Low),CPHA应该等于0,对应配置里面的第一个边沿(1 Edge),这是SPI模式0。
CPOL=1(对应配置的High),CPHA应该等于1,对应配置里面的第二个边沿(2 Edge),这是SPI模式3。
在这里插入图片描述

4.3 SPI的读写时序

关键的地方时是读写位。发送地址的时候,MSB位是表示读写位的,读(1),写(0)。
在这里插入图片描述
总结就是: 发送(R/W + 7位寄存器地址) ,然后马上发送(或读取) 8位数据位。

最后

下一篇再讲讲陀螺仪,加速度计,磁罗盘的一些知识。
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/433233
推荐阅读
相关标签
  

闽ICP备14008679号