当前位置: 首页 > news >正文

深入理解 SPI 通信中的时钟极性与相位(CPOL 与 CPHA)

概述

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

SPI 总线的时钟极性(CPOL)

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

SPI 总线的时钟相位(CPHA)

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

SPI 的四种工作模式

根据 CPOL 和 CPHA 的不同组合,SPI 定义了四种标准工作模式,分别称为 模式 0 ~ 模式 3
模式
CPOL
CPHA
描述说明
模式 0
0
0
空闲时为低电平,
第一个上升沿
采样数据
模式 1
0
1
空闲时为低电平,
第二个下降沿
采样数据
模式 2
1
0
空闲时为高电平,
第一个下降沿
采样数据
模式 3
1
1
空闲时为高电平,
第二个上升沿
采样数据

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

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

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

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

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

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

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

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

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

相关文章:

  • ARP 原理总结
  • 全新的开源监控工具CheckCle
  • C++学习:六个月从基础到就业——C++20:范围(Ranges)进阶
  • Supermemory:让大模型拥有“长效记忆“
  • 开源AI大模型等“神秘组合”,如何颠覆零售业数字化转型?
  • 统计客户端使用情况,使用es存储数据,实现去重以及计数
  • java中的Servlet4.x详解
  • GitHub排名第一的开源ERP项目:Odoo生产计划与执行的功能概述
  • Git初始化本地已有项目,并推送到远端Git仓库完整操作指南
  • Linux《自主Shell命令行解释器》
  • 昆仑通态MCGSpro,自定义配方功能
  • 用 CodeBuddy 搭建「MiniGoal 小目标打卡器」:一次流畅的 UniApp 开发体验
  • Grafana当前状态:SingleStat面板
  • Windows系统编译Qt使用的kafka(librdkafka)
  • 精益数据分析(68/126):数据透视表实战与解决方案验证——从问卷分析到产品落地的关键跨越
  • python学习day1
  • MTK zephyr平台:系统休眠流程
  • Golang的网络安全策略实践
  • 数据库连接池技术与 Druid 连接工具类实现
  • Golang中的runtime.LockOSThread 和 runtime.UnlockOSThread
  • 仿门户网站多功能js相册画廊源码/正规淘宝代运营去哪里找
  • 宝安高端网站建设/seo站长工具 论坛
  • 临淄区住房和城乡建设局网站/友链交易交易平台
  • 企业qq免费版/seo网站优化师
  • 网站建设合同 简单/seo工具在线访问
  • wordpress 首页分栏/信息流优化师简历怎么写