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

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)

•同步,全双工

•支持总线挂载多设备(一主多从)

【STM32】STM32学习笔记-SPI通信协议(36)_第1张图片

04. 硬件电路

• 所有SPI设备的SCK、MOSI、MISO分别连在一起

• 主机另外引出多条SS控制线,分别接到各从机的SS引脚

• 输出引脚配置为推挽输出,输入引脚配置为浮空或上拉输入

【STM32】STM32学习笔记-SPI通信协议(36)_第2张图片

05. 移位示意图

【STM32】STM32学习笔记-SPI通信协议(36)_第3张图片

06. SPI时序基本单元

• 起始条件:SS从高电平切换到低电平

• 终止条件:SS从低电平切换到高电平

【STM32】STM32学习笔记-SPI通信协议(36)_第4张图片

•交换一个字节(模式0)

•CPOL=0:空闲状态时,SCK为低电平

•CPHA=0:SCK第一个边沿移入数据,第二个边沿移出数据
【STM32】STM32学习笔记-SPI通信协议(36)_第5张图片

•交换一个字节(模式1)

•CPOL=0:空闲状态时,SCK为低电平

•CPHA=1:SCK第一个边沿移出数据,第二个边沿移入数据
【STM32】STM32学习笔记-SPI通信协议(36)_第6张图片

•交换一个字节(模式2)

•CPOL=1:空闲状态时,SCK为高电平

•CPHA=0:SCK第一个边沿移入数据,第二个边沿移出数据

【STM32】STM32学习笔记-SPI通信协议(36)_第7张图片

•交换一个字节(模式3)

•CPOL=1:空闲状态时,SCK为高电平

•CPHA=1:SCK第一个边沿移出数据,第二个边沿移入数据

【STM32】STM32学习笔记-SPI通信协议(36)_第8张图片

07. SPI时序

•发送指令

•向SS指定的设备,发送指令(0x06)

【STM32】STM32学习笔记-SPI通信协议(36)_第9张图片

•指定地址写

•向SS指定的设备,发送写指令(0x02),

随后在指定地址(Address[23:0])下,写入指定数据(Data)

【STM32】STM32学习笔记-SPI通信协议(36)_第10张图片

•指定地址读

•向SS指定的设备,发送读指令(0x03),

随后在指定地址(Address[23:0])下,读取从机数据(Data)

【STM32】STM32学习笔记-SPI通信协议(36)_第11张图片

08. 附录

参考: 【STM32】江科大STM32学习笔记汇总

你可能感兴趣的:(STM32F103,stm32,学习,笔记,江科大,江科大SPI,spi)