6. SPI
6.1 基本概念
全称Serial Peripheral Interface,是一种全双工,同步通信
6.1.1 物理层
共四条线:MOSI、MISO、SCK、NSS
信号线 | 作用 |
---|---|
MOSI | 主机输出,从机输入 |
MISO | 主机输入,从机输出 |
SCK | 时钟信号,由主机产生,用于通讯同步 |
NSS | 从机使能信号,由主机控制(片选线) |
6.1.2 协议层
通讯的起始和停止
通讯起始:NSS线信号由高变低,对应的从机被选中,开始通讯
通讯结束:NSS线信号由低变高,对应的从机取消选中状态
SPI的四种模式
四种模式的区别:总线空闲时sck的时钟状态(CPOL)及数据采样时刻(CPHA)。
CPOL:SPI通讯设备处于空闲时(NSS为高电平时)SCK的状态。CPOL=0,则SCK线在空闲时为低电平;CPOL=1,则SCK线在空闲时为高电平
CPHA:数据采样的时刻。CPHA=0,MOSI或MISO线上的信号将在SCK线的奇数个跳变沿被采样;CPHA=1,MOSI或MISO线上的信号在SCK线的偶数个个跳变沿被采样。
注:四种模式都可以使用,但是主从设备必须采用同一种模式。
6.2 STM32的SPI
STM32中SPI个数从3到6个不等,支持Motorola和TI协议。STM32还支持I2S功能。
6.3 CubeMX配置
- 左侧目录>Connectivity>点SPI1/SPI2……~> 勾选模式