[通用 MCU] SPI接口简单应用配置

[复制链接]
 楼主| mikewalpole 发表于 2025-7-28 15:14 | 显示全部楼层 |阅读模式
SPI接口的全称是Serial Peripheral Interface,意为串行外围接口,是Motorola首先在其MC68HXX系列处理器上定义的。SPI接口主要应用在传感器,EEPROM,FLASH,实时时钟,AD转换器,还广泛应用于数字信号处理器和数字信号解码器之间。
1、SPI硬件接口
SPI接口是在CPU与外围低速器件之间进行同步串行数据传输,在主机的移位脉冲下,数据按位传输,为全双工通道,其传输速度总体而言比IIC要快。SPI通信是以主从方式工作的,这种模式通常有一个器件和一个或多个从器件,其接口包括以下四种信号:(以英飞凌Aurix系列MCU TC387和ST 三轴加速度传感器 IIS3DWB一个汽车底盘域应用为例说明)
(1)    CS---片选信号,由主机TC387的P20.8引脚提供
(2)    SCL---时钟信号,由主机TC387的P20.10产生
(3)     MISO---主机TC387的P15.1引脚数据输入,从机SDO数据输出
(4)    MOSI---主机TC387的P15.0数据输出,从机SDI设备数据输入

另外TC387 P10.7和P10.8作为外部中断输入口来响应传感器IIS3DWB IN0,IN1产生的两个可设定中断事件电平信号。如传感器数据准备完毕,睡眠/唤醒,溢出等异常事件的处理。MCU ERU引脚资源有限,所以需要根据实际情况按需选用。                           
2、SPI读写时序控制
SPI底层驱动的基本功能就是实现读寄存器和写寄存器的操作。之后才能根据芯片的功能设计,配置芯片正常工作。而读写操作可以直接查看芯片手册中介绍SPI收发时序的章节,下图为ST三轴加速度传感器IIS3DWB的SPI控制时序:

以IIS3DWB为例,介绍时序图中的关键参数:
I  波特率设置:不同芯片所能提供的最大波特率不同,需要参照芯片数据手册。


上表是IIS3DWB的数据手册,其能支持的最小始终频率为100ns,对应的波特率为10MHz。(Aurix TC387 ASCLIN_SPI 最大为50MHz)
II  每帧的数据个数:不同的芯片每一帧组织的数据位数不同,IIS3DWB为16位数据传输
III 片选信号的高/低位有效性:不同芯片的片选信号有效性可能不一样。有些芯片在片选信号为低的时候才能传输数据,有些则为高的时候传输数据。IIS3DWB是低电平有效。在不进行数据传输的时候(IDLE状态)应该为高电平
IV 数据的捕获和数据传输对应的SPC/SCLK的高/低电平:上图,可以看到对应于时钟信号的下降沿,而数据转换的时候对应于数据的下降沿/上升沿。(这在上面的时序图中也有阐述,但是有些规格数据手册写的比较简单,但我们依然需要学会看时序图并与示波器或逻辑分析仪的波形数据对比来验证设备通信硬件连接是否正常可靠)

szt1993 发表于 2025-7-30 13:10 | 显示全部楼层
SPI接口简单应用配置
LOVEEVER 发表于 2025-7-31 09:49 | 显示全部楼层
其实程序配置还是非常关键的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

50

主题

1720

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

50

主题

1720

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部