SPI的四种模式以及CPOL与CPHA
什么是CPOL和CPHA?
CPOL:Clock(时钟)+Polarity(极性),Clock取“C”,Polarity取“Pol”,合并之后即为“CPOL”,时钟极性;
CPHA:Clock(时钟)+Phase(相位),Clock取“C”,Phase取“PHA,合并之后即为”CPHA“,时钟相位。
SPI的四种模式由CPOL和CPHA决定
-
CPOL=0:表示空闲状态时,时钟处于低电平状态;
-
CPOL=1:表示空闲状态时,时钟处于高电平状态;
-
CPHA=0:表示数据在时钟由低电平向高电平跳变时有效,即数据在时钟上升沿被采样;
-
CPHA=1:表示数据在时钟由高电平向低电平跳变时有效,即数据在时钟下降沿被采样。
由此,通过CPOL和CPHA的不同值组合,可以实现SPI的四种模式:
模式 | CPOL | CPHA | 时钟极性 | 采样时刻 |
---|---|---|---|---|
Mode 0 | 0 | 0 | 低电平 | 上升沿 |
Mode 1 | 0 | 1 | 低电平 | 下降沿 |
Mode 2 | 1 | 1 | 高电平 | 下降沿 |
Mode 3 | 1 | 0 | 高电平 | 上升沿 |
-
如果一个芯片SPI支持Mode 0和Mode 3模式,说明该芯片的SPI在时钟上升沿采集数据Bit;
-
如果一个芯片SPI支持Mode 1和Mode 2模式,说明该芯片的SPI在时钟下降沿采集数据Bit。
此外,由上述四种模式的时序图可知,当CPOL和CPHA取相同值时,数据在时钟信号的第一个跳变沿被采样;当CPOL和CPHA取不同值时,数据在时钟信号的第二个跳变沿被采样。