你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32 SPI相关总结

[复制链接]
STMCU小助手 发布时间:2022-5-8 18:00
前言
SPI 是Serial Peripheral interface 的缩写,顾名思义就是串行外围设备接口。是 Motorola
首先在其 MC68HCXX 系列处理器上定义的。SPI 接口主要应用在 EEPROM,FLASH,实时时
钟,AD 转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,
同步的通信总线。
本文参考正点原子SPI实验,使用STM32自带SPI来实现对外部FLASH(W25Q64)的读写。

SPI 接口一般使用 4 条线通信:
MISO 主设备数据输入,从设备数据输出。
MOSI 主设备数据输出,从设备数据输入。
SCLK 时钟信号,由主设备产生。
CS 从设备片选信号,由主设备控制。

DTK3I5@5.M9ELDEAW~WFA.png
]2B$~LHRVY8WU{~_OZ)9EXR.png

SPI 时钟最多可以到 18Mhz,支持 DMA,可以配置为 SPI 协议或者 I2S 协议(仅大容量型号支持)。

特点
可以同时发出和接收串行数据;可以当作主机或从机工作;提供频率可编程时钟;发送结束中断标志;写冲突保护;总线竞争保护等。

配置步骤

SPI 相关的库函数和定义分布在文件 stm32f10x_spi.c 以及头文件 stm32f10x_spi.h 中

1)配置相关引脚的复用功能,使能 SPI1 时钟

第一步使能SPI1时钟,SPI1 的时钟通过 APB2ENR 的第 12 位来设置。设置 SPI1 的相关引脚为复用输出,这样才会连接到 SPI1 上否则这些 IO 口还是默认的状态,也就是标准输入输出口。

2)初始化 SPI1,设置 SPI1 工作模式

设置 SPI1 为主机模式,设置数据格式为 8 位,然设置 SCK 时钟极性及采样方式。并设置 SPI1 的时钟频率(最大 18Mhz),以及数据的格式(MSB 在前还是LSB 在前)。

void SPI_Init(SPI_TypeDef* SPIx, SPI_InitTypeDef* SPI_InitStruct);

3)使能 SPI1

SPI_Cmd(SPI1, ENABLE); //使能 SPI 外设

4)SPI 传输数据

void SPI_I2S_SendData(SPI_TypeDef* SPIx, uint16_t Data);

5)查看 SPI 传输状态

SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE);

SPI特征
● 3线全双工同步传输
● 带或不带第三根双向数据线的双线单工同步传输
● 8或16位传输帧格式选择
● 主或从操作
● 支持多主模式
● 8个主模式波特率预分频系数(最大为fPCLK/2)
● 从模式频率 (最大为fPCLK/2)
● 主模式和从模式的快速通信
● 主模式和从模式下均可以由软件或硬件进行NSS管理:主/从操作模式的动态改变
● 可编程的时钟极性和相位
● 可编程的数据顺序,MSB在前或LSB在前
● 可触发中断的专用发送和接收标志
● SPI总线忙状态标志
● 支持可靠通信的硬件CRC
─ 在发送模式下,CRC值可以被作为最后一个字节发送SPI接口
─ 在全双工模式中对接收到的最后一个字节自动进行CRC校验
● 可触发中断的主模式故障、过载以及CRC错误标志
● 支持DMA功能的1字节发送和接收缓冲器:产生发送和接受请求

I2S功能

● 单工通信(仅发送或接收)
● 主或者从操作
● 8位线性可编程预分频器,获得精确的音频采样频率(8KHz到96kHz)
● 数据格式可以是16位,24位或者32位
● 音频信道固定数据包帧为16位(16位数据帧)或32位(16、24或32位数据帧)
● 可编程的时钟极性(稳定态)
● 从发送模式下的下溢标志位和主/从接收模式下的溢出标志位
● 16位数据寄存器用来发送和接收,在通道两端各有一个寄存器
● 支持的I2S协议:
─ I2S飞利浦标准
─ MSB对齐标准(左对齐)
─ LSB对齐标准(右对齐)
─ PCM标准(16位通道帧上带长或短帧同步或者16位数据帧扩展为32位通道帧)
● 数据方向总是MSB在先
● 发送和接收都具有DMA能力
● 主时钟可以输出到外部音频设备,比率固定为256xFs(Fs为音频采样频率)
● 在互联型产品中,两个I2S模块(I2S2和I2S3)有一个专用的PLL(PLL3),产生更加精准得时钟

Q@XE)S(UW(6Z}3T(}Y([OGP.png


收藏 评论0 发布时间:2022-5-8 18:00

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版