SPI中断方式读取MPU6500数据

您所在的位置:网站首页 mpu6000和mpu6500的区别 SPI中断方式读取MPU6500数据

SPI中断方式读取MPU6500数据

2023-09-20 11:41| 来源: 网络整理| 查看: 265

学习背景

MPU6500是MPU6050的升级版同时支持IIC和SPI通讯协议;IIC协议相对于SPI协议读取速率更低,并且在STM32的平台下硬件IIC存在更多地不确定性。因此选择采用SPI的方式读取MPU6500数据,效率更过并且可靠。本文章是作者在学习STM32407单片机和SPI协议中的记录。

SPI协议

spi总线协议是由摩托罗拉公司发起的四线单主机、同步、串行、全双工、较高传输速率的传输协议。

硬件连接:SPI主要存使用MOSI(主机发送,从机接收)、MISO(主机接收,从机发送)、NSS(片选)、SCK(时钟)。

引脚说明: MISO:主入/从出数据口。此脚可以被用来在从模式中发送数据,在主模式中接收数据。

MOSI:主出/从入数据口。此脚可以用来在主模式时发送数据,在从模式时接收数据。

SCK:SPI 主设备输出串行时钟,SPI 从设备输入串行时钟。

NSS:从选择。这是一个用来选择主/从模式的可选引脚。SPI 主设备和从设备分别通信时,该引脚起到依次片选各个从设备的作用,以避免发生数据线冲突。从设备的 NSS 输入可以由主设备上的标准 I/O 端口驱动。 SPI 工作在主设备配置时,如果 SSOE 位使能,则 NSS 引脚用作输出,并输出低电平;此时,所有 NSS 引脚连到该设备 NSS 引脚的其他设备都将收到低电平,当这些设备配置为 NSS 硬件模式时,就被自动地配置成了从设备。(手册上这段话不是很懂)

SPI数据采集和发送方式是由CPOL (时钟极性)和 CPHA (时钟相位),组合成四种可能的时序关系,主从相同才能进行通讯。 CPOL位控制在没有数据传输时时钟的空闲状态电平,此位对主模式和从模式下的设备都有效。 如果 CPOL 被复位,SCK 引脚在空闲状态保持低电平; 如果 CPOL 被置位,SCK 引脚在空闲状态保持高电平; 如果 CPHA位被置位,SCK 时钟的第二个边沿(CPOL 位为 0 时就是下降沿,CPOL 位为 1 时就是上升沿)进行数据位的采样。数据在第一个时钟边沿被锁存; 如果 CPHA 位被复位,SCK 时钟的第一边沿(CPOL 位为 0 时就是下降沿,CPOL 位为 1 时就是上升沿)进行数据位采样。数据在第二个时钟边沿被锁存。 如下图所示: 摘自STM32参考手册 常见的模式描述方式 Mode0:CPOL=0,CPHA=0 Mode1:CPOL=0,CPHA=1 Mode2:CPOL=1,CPHA=0 Mode3:CPOL=1,CPHA=1

发送和接收数据可以选择MSB( 最高有效位"the Most Significant Bit,msb")和LSB(最低有效位 “the least significant bit,lsb”)

除了全双工的工作模式,SPI可配置为半双工,只读模式,接收模式

主从设备交互比较特殊的读流程,从机不提供时钟信号,想要读取从机数据时要先向从机发一个读命令(因设备而异),然后继续发送数据,主机提供时钟信号,从机根据主机提供的时钟信号将数据发送到主机。

虽然通过使能GPIO的方式(软方式)实现NSS实现的功能,但是STM32参考手册中关于NSS引脚的描写不是很理解。 文档中的描述如下:

NSS 脚可以用做输入(硬件模式)和输出。SS 的输出可由 SPI_CR2 寄存器中的SSOE 位使能或禁止。多主配置只有在 SS 输出被禁止时才有可能。当 NSS 脚被用作输出(SSOE 位)并且 SPI 是主模式配置时,NSS 脚被拉为低。因此当其他SPI 设备被配置成 NSS 模式时,这些设备的所有 NSS 引脚与之相连,就都变成从设备了。 利用NSS脚来控制从设备选择信号(NSS脚)的另一个办法是:由软件来管理从选择信号,通过配置SPI_CR1 寄存器的SSM位实现(见 图 163)。在软件管理中,外部NSS脚可由应用程序作其他使用,内部NSS信号电平通过SPI_CR1 寄存器的 SSI位来驱动。

MPU6500

电源管理1、信号路径、电源管理2、用户控制、MPU配置、加速度计配置、陀螺仪配置、初始化中断、中断使能、采样频率设置



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3