11.1.2 SPI通信协议
SPI通信协议有4种不同的模式,通信双方必须工作在同一模式下,因此必须对主设备的SPI模式进行配置。通过时钟极性(Clock Polarity,CPOL)和时钟相位(Clock Phase,CPHA)来控制主设备的通信模式,CPOL用来配置SCK在空闲状态下的逻辑电平,CPHA用来配置数据在第几个边沿采样。SPI通信协议时序如图11.2所示。

图11.2 SPI通信协议时序
SPI的4种模式分别为模式0、模式1、模式2、模式3,具体如下。(https://www.daowen.com)
(1)模式0(CPOL=0,CPHA=0)。在模式0下,SCK处于低电平,数据采样是在第1个边沿,也就是SCK由低电平到高电平的跳变,所以数据采样是在上升沿,数据发送是在下降沿。
(2)模式1(CPOL=0,CPHA=1)。在模式1下,SCK处于低电平,数据发送是在第1个边沿,也就是SCK由低电平到高电平的跳变,所以数据采样是在下降沿,数据发送是在上升沿。
(3)模式2(CPOL=1,CPHA=0)。在模式2下,SCK处于高电平,数据采样是在第1个边沿,也就是SCK由高电平到低电平的跳变,所以数据采样是在下降沿,数据发送是在上升沿。
(4)模式3(CPOL=1,CPHA=1)。在模式3下,SCK处于高电平,数据发送是在第1个边沿,也就是SCK由高电平到低电平的跳变,所以数据采样是在上升沿,数据发送是在下降沿。