标准SPI协议应用笔记:四种模式区分(CPOL/CPHA)

前言

标准的四线SPI包括CS、MISO、MOSI、CLK四根线,同时根据时钟线的相位和极性可以分为四种模式

CPOL

代表时钟的极性Polarity,即时钟线有效时(active)和无效时(inacitve)的电平。一般规定:
CPOL=0时,为初始电平(无效电平)为低电平,有效电平为高电平;
CPOL=1时,为初始电平(无效电平)为高电平,有效电平为低电平。

CPHA

代表时钟的相位Phase,即时钟线采样时是上升沿(Leading Edge)还是下降沿(Trailing Edge)。一般规定:
CPHA=0时,数据位被采样(sampled)时的边沿为第一个边沿,被改变(launched)时为第二个边沿。
CPHA=1时,数据位被采样(sampled)时的边沿为第二个边沿,被改变(launched)时为第一个边沿。
关于相关被采样和被改变时的边沿信号到底时上升沿还是下降沿,要结合CPOL来一起看

模式区别

下面以两张时序图为例,假设数据以MSB方式传输,每次传输8bit。下图中红色竖线代表数据被采样(sampled)时的位置,蓝色表示被改变(launched)时的位置。

上图为当以CPHA=0时,即以第一个跳变沿为采样点时,不同CPOL的区别。
可以看到当CPOL为0时:CLK初始电平为低电平,当出现第一个跳变沿时,数据线的信号被采样,该跳变沿为上升沿;采样结束后,CLK线开始出现第二个跳变沿,这时候数据线的信号允许被改变,该跳变沿为下降沿。
同理可看到CPOL为1时:CLK初始电平为高电平,当出现第一个跳变沿时,数据线的信号被采样,该跳变沿为下降沿;采样结束后,CLK线开始出现第二个跳变沿,这时候数据线的信号允许被改变,该跳变沿为上升沿。

上图为当以CPHA=1时,即以第二个跳变沿为采样点时,不同CPOL的区别。
可以看到当CPOL为0时:CLK初始电平为低电平,当出现第一个跳变沿时,这时候数据线的信号允许被改变,该跳变沿为上升沿;采样结束后,CLK线开始出现第二个跳变沿,数据线的信号被采样,该跳变沿为下降沿。
同理可看到CPOL为1时:CLK初始电平为高电平,当出现第一个跳变沿时,这时候数据线的信号允许被改变,该跳变沿为下降沿;采样结束后,CLK线开始出现第二个跳变沿,数据线的信号被采样,该跳变沿为上升沿。

总结

可以看到,所谓不同模式的区别只是被采样的时机和CLK初始电平的不同而已,不同芯片的模式顺序可能略有不同,但本质都一致的,用户在进行通信接口对接是要确认后SPI的模式匹配。

posted on 2022-10-24 13:47  不回本不改名  阅读(1750)  评论(0编辑  收藏  举报

导航