00. 目录
文章目录
- 00. 目录
- 01. SPI简介
- 02. SPI特征
- 03. SPI通信
- 04. 硬件电路
- 05. 移位示意图
- 06. SPI时序基本单元
- 07. SPI时序
- 08. 附录
01. SPI简介
在大容量产品和互联型产品上,SPI接口可以配置为支持SPI协议或者支持I 2 S音频协议。SPI接口默认工作在SPI方式,可以通过软件把功能从SPI模式切换到I2S模式。
在小容量和中容量产品上,不支持I 2 S音频协议。
串行外设接口(SPI)允许芯片与外部设备以半/全双工、同步、串行方式通信。此接口可以被配置成主模式,并为外部从设备提供通信时钟(SCK)。接口还能以多主配置方式工作。
它可用于多种用途,包括使用一条双向数据线的双线单工同步传输,还可使用CRC校验的可靠通信。
I2S也是一种3引脚的同步串行接口通讯协议。它支持四种音频标准,包括飞利浦I 2 S标准,MSB和LSB对齐标准,以及PCM标准。它在半双工通讯中,可以工作在主和从2种模式下。当它作为主设备时,通过接口向外部的从设备提供时钟信号。
02. SPI特征
● 3线全双工同步传输
● 带或不带第三根双向数据线的双线单工同步传输
● 8或16位传输帧格式选择
● 主或从操作
● 支持多主模式
● 8个主模式波特率预分频系数(最大为f PCLK /2)
● 从模式频率 (最大为f PCLK /2)
● 主模式和从模式的快速通信
● 主模式和从模式下均可以由软件或硬件进行NSS管理:主/从操作模式的动态改变
● 可编程的时钟极性和相位
● 可编程的数据顺序,MSB在前或LSB在前
● 可触发中断的专用发送和接收标志
● SPI总线忙状态标志
● 支持可靠通信的硬件CRC
─ 在发送模式下,CRC值可以被作为最后一个字节发送
─ 在全双工模式中对接收到的最后一个字节自动进行CRC校验
● 可触发中断的主模式故障、过载以及CRC错误标志
● 支持DMA功能的1字节发送和接收缓冲器:产生发送和接受请求
03. SPI通信
•SPI(Serial Peripheral Interface)是由Motorola公司开发的一种通用数据总线
•四根通信线:SCK(Serial Clock)、MOSI(Master Output Slave Input)、MISO(Master Input Slave Output)、SS(Slave Select)
•同步,全双工
•支持总线挂载多设备(一主多从)
04. 硬件电路
• 所有SPI设备的SCK、MOSI、MISO分别连在一起
• 主机另外引出多条SS控制线,分别接到各从机的SS引脚
• 输出引脚配置为推挽输出,输入引脚配置为浮空或上拉输入
05. 移位示意图
06. SPI时序基本单元
• 起始条件:SS从高电平切换到低电平
• 终止条件:SS从低电平切换到高电平
•交换一个字节(模式0)
•CPOL=0:空闲状态时,SCK为低电平
•CPHA=0:SCK第一个边沿移入数据,第二个边沿移出数据
•交换一个字节(模式1)
•CPOL=0:空闲状态时,SCK为低电平
•CPHA=1:SCK第一个边沿移出数据,第二个边沿移入数据
•交换一个字节(模式2)
•CPOL=1:空闲状态时,SCK为高电平
•CPHA=0:SCK第一个边沿移入数据,第二个边沿移出数据
•交换一个字节(模式3)
•CPOL=1:空闲状态时,SCK为高电平
•CPHA=1:SCK第一个边沿移出数据,第二个边沿移入数据
07. SPI时序
•发送指令
•向SS指定的设备,发送指令(0x06)
•指定地址写
•向SS指定的设备,发送写指令(0x02),
随后在指定地址(Address[23:0])下,写入指定数据(Data)
•指定地址读
•向SS指定的设备,发送读指令(0x03),
随后在指定地址(Address[23:0])下,读取从机数据(Data)
08. 附录
参考: 【STM32】江科大STM32学习笔记汇总