基本概念:

CPOL

CPOL:Clock Polarity,时钟的极性。
时钟的极性是什么概念呢?

通信的整个过程分为空闲时刻和通信时刻;
如果SCLK在数据发送之前和之后的空闲状态是高电平,那么就是CPOL=1;
如果空闲状态SCLK是低电平,那么就是 CPOL=0。

CPHA

CPHA:Clock Phase,时钟的相位。

CPHA=1,表示一个时钟周期的第一个沿上是输出。
CPHA=0,表示一个时钟周期的第一个沿上是采样。那输出就是第二个沿。
至于这个沿是上升还是下降要视CPOL的值而定,CPOL=1 那就是下降沿,反之就是上升沿。

至于第一个bit是如何传输上来的,有两种情况:一是 SSEL 使能的边沿,二是上一帧数据的最后一个时钟沿,有时两种情况还会同时生效。具体看下面就懂了。

四种工作模式

SPI3

以CPOL=1,CPHA=1为例,把时序图画出来给大家看一下,如图1所示。
SPI时序简单理解(SPI0、SPI1、SPI2、SPI3)

图1 SPI3通信时序图

解释:
可以看出,当数据未发送时以及发送完毕后,SCK都是高电平,因此CPOL=1。
可以看出,在SCK第一个沿(下降沿)的时候,MOSI和MISO会发生变化。同时SCK第二个沿(上升沿)的时候,数据是稳定的,此刻采样数据是合适的,也就是上升沿即一个时钟周期的后沿锁存读取数据,即CPHA=1。

SPI0

当CPHA=0、CPOL=0时SPI总线工作在方式0,如下图2。简化起见把MOSI和MISO合在一起了。
SPI时序简单理解(SPI0、SPI1、SPI2、SPI3)

图2 SPI0通信时序图

SPI1和SPI2

当CPHA=0、CPOL=1时SPI总线工作在SPI1
当CPHA=1、CPOL=0时SPI总线工作在SPI2。
具体看图3。
SPI时序简单理解(SPI0、SPI1、SPI2、SPI3)

图3 SPI1和SPI2通信时序图

分类:

技术点:

相关文章: