【STM32】STM32学习笔记-SPI通信协议(36)

发布时间:2024年01月23日

00. 目录

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学习笔记汇总

文章来源:https://blog.csdn.net/u010249597/article/details/135773372
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。