首页 > 代码库 > spi总结

spi总结

SPI的四种模式

SPI的相位(CPHA)和极性(CPOL)分别可以为0或1,对应的4种组合构成了SPI的4种模式(mode)

 

Mode 0:CPOL = 0,CPHA = 0

Mode 1:CPOL = 0,CPHA = 1

Mode 2:CPOL = 1,CPHA = 0

Mode 3:CPOL = 1,CPHA = 1

 

时钟极性CPOL(设置时钟空闲时的电平):即SPI空闲时,时钟信号SCLK的电平。(0:空闲时低电平,1:空闲时高电平)

时钟相位CPHA(设置读取数据和发送数据的时钟沿):即SPI在SCLK第几个边沿开始采样。(0:第一个边沿开始,1:第二个边沿开始)

 

CPHA = 0,表示第一个边沿:

对于CPOL = 0,空闲时是低电平,第一个边沿就是从低到高,所以是上升沿。

对于CPOL = 1,空闲时是高电平,第一个边沿就是从高到低,所以是下降沿。

CPHA = 1,表示第二个边沿:

对于CPOL = 0,空闲时是高电平,第一个边沿就是从高到低,所以是下降沿。

对于CPOL = 1,空闲时是低电平,第一个边沿就是从低到高,所以是上升沿。

 

四种模式的工作时序如下图所示

技术分享 

SPI接口时钟配置心得:

在主设备这边配置SPI接口时钟时,一定要弄清楚从设备的时钟要求,因为主设备这边的时钟极性和相位是以从设备为基准的。因此,在时钟极性的配置上要搞清楚从设备是在时钟的上升沿还是下降沿接收数据,是在时钟的下降沿还是上升沿输出数据。

spi总结