概述

在 SPI(串行外设接口)通信中,CPOL( 时钟极性)和 CPHA( 时钟相位)是两个关键的寄存器配置位,用于定义时钟信号的行为。虽然“极性”和“相位”听起来非常抽象,但我们可以通过时序图和实际含义来形象理解它们的作用。

SPI 总线的时钟极性(CPOL)

时钟极性决定了 SPI 总线在空闲状态下(即没有数据传输时)时钟线的电平状态
  • CPOL = 0
:空闲时钟为 低电平,也就是说传输数据时从 上升沿开始。
  • CPOL = 1
:空闲时钟为 高电平,意味着传输从 下降沿开始。
如下图:

SPI 总线的时钟相位(CPHA)

时钟相位决定了 数据是在第一个还是第二个跳变沿被采样
  • CPHA = 0
:在第一个跳变沿采样数据。
  • CPHA = 1
:在第二个跳变沿采样数据。
如图:
至于跳变沿究竟是上升沿还是下降沿,这取决于 CPOL。记住, CPHA 只决定是哪个跳变沿采样。

SPI 的四种工作模式

根据 CPOL 和 CPHA 的不同组合,SPI 定义了四种标准工作模式,分别称为 模式 0 ~ 模式 3

模式 0(CPOL=0, CPHA=0)

空闲时:时钟线为 低电平
  • 第一个跳变沿:上升沿
  • 数据采样:第一个上升沿
效果图:数据在第一个上升沿采样,随后在下降沿更新下一位。

模式 1(CPOL=0, CPHA=1)

  • 空闲时:时钟线为低电平
  • 第一个跳变沿:上升沿
  • 数据采样:第二个跳变沿(下降沿)
效果图:第一个跳变沿用于准备数据,第二个跳变沿(下降沿)用于采样。

模式 2(CPOL=1, CPHA=0)

  • 空闲时:时钟线为高电平
  • 第一个跳变沿:下降沿
  • 数据采样:第一个跳变沿(下降沿)
效果图:数据在第一个下降沿采样,在下一个上升沿准备下一位。

模式 3(CPOL=1, CPHA=1)

  • 空闲时:时钟线为高电平
  • 第一个跳变沿:下降沿
  • 数据采样:第二个跳变沿(上升沿)
效果图:第一个跳变沿准备数据,第二个跳变沿(上升沿)采样数据。

参考:SPI总线传输的4种模式 - 广漠飘羽 - 博客园 (cnblogs.com

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐