SPI总线时钟的极性(CPOL)与相位(CPHA)

article/2025/11/2 17:03:05

文章来源:转来转去的不知道是谁的了。。

SPI由于接口相对简单(只需要4根线),用途算是比较广泛,主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。即一个SPI的Master通过SPI与一个从设备,即上述的那些Flash,ADC等,进行通讯。而主从设备之间通过SPI进行通讯,首先要保证两者之间时钟SCLK要一致,互相要商量好了,要匹配,否则,就没法正常通讯了,即保证时序上的一致才可正常讯。而这里的SPI中的时钟和相位,指的就是SCLk时钟的特性,即保证主从设备两者的时钟的特性一致了,以保证两者可以正常实现SPI通讯。

 

       SPI的极性Polarity和相位Phase,最常见的写法是CPOL和CPHA,不过也有一些其他写法,简单总结如下:
(1) CKPOL (Clock Polarity) = CPOL = POL = Polarity = (时钟)极性
(2) CKPHA (Clock Phase)   = CPHA = PHA = Phase =(时钟)相位
(3) SCK=SCLK=SPI的时钟
(4) Edge=边沿,即时钟电平变化的时刻,即上升沿(rising edge)或者下降沿(falling edge)
对于一个时钟周期内,有两个edge,分别称为:
(1)Leadingedge=前一个边沿=第一个边沿,对于开始电压是1,那么就是1变成0的时候,对于开始电压是0,那么就是0变成1的时候;
(2)Trailingedge=后一个边沿=第二个边沿,对于开始电压是1,那么就是0变成1的时候(即在第一次1变成0之后,才可能有后面的0变成1),对于开始电压是0,那么就是1变成0的时候;
本博文采用如下用法:

  1. 极性=CPOL
  2. 相位=CPHA
  3. SCLK=时钟
  4. 第一个边沿和第二个边沿

CPOL和CPHA,分别都可以是0或时1,对应的四种组合就是:

 

下面详细介绍。

CPOL极性

        先说什么是SCLK时钟的空闲时刻,其就是当SCLK在发送8个bit比特数据之前和之后的状态,于此对应的,SCLK在发送数据的时候,就是正常的工作的时候,有效active的时刻了。其英文精简解释为:ClockPolarity = IDLE state of SCK。
SPI的CPOL,表示当SCLK空闲idle的时候,其电平的值是低电平0还是高电平1:
CPOL=0,时钟空闲idle时候的电平是低电平,所以当SCLK有效的时候,就是高电平,就是所谓的active-high;
CPOL=1,时钟空闲idle时候的电平是高电平,所以当SCLK有效的时候,就是低电平,就是所谓的active-low;

          从上图中可以看出,(CPOL=0)的SCK 波形,它有(传输)8个脉冲,而在脉冲传输前和完成后都保持在【低电平状态】。此时的状态就是时钟的空闲状态或无效状态,因为此时没有脉冲,也就不会有数据传输。同理得出,(CPOL=)1的图,时钟的空闲状态或无效状态时SCK 是保持【高电平的】。

 

CPHA相位

         首先说明一点,capture strobe = latch= read =sample,都是表示数据采样,数据有效的时刻。相位,对应着数据采样是在第几个边沿(edge),是第一个边沿还是第二个边沿,0对应着第一个边沿,1对应着第二个边沿。
对于:
CPHA=0,表示第一个边沿:
对于CPOL=0,idle时候的是低电平,第一个边沿就是从低变到高,所以是上升沿;
对于CPOL=1,idle时候的是高电平,第一个边沿就是从高变到低,所以是下降沿;
CPHA=1,表示第二个边沿:
对于CPOL=0,idle时候的是低电平,第二个边沿就是从高变到低,所以是下降沿;
对于CPOL=1,idle时候的是高电平,第一个边沿就是从低变到高,所以是上升沿;

          我们看上面的图,发现数据 SI 是对应 SCK的第一个时钟沿,再仔细看,数据是在SCK的第一个时钟边沿保持稳定【数据被采样捕获】,在下一个边沿改变【SCK的下降沿数据改变】因此我们得出结论:该系列FLASH 是【数据在第一个时钟沿被采样捕获】或【数据在SPCK 起始边沿捕获,在SPCK下一个边沿改变】

如何判断CPOL和CPHA

         如果起始的SCLK的电平是0,那么CPOL=0,如果是1,那么CPOL=1,然后看数据采样时刻,即时序图数据线上的数据那个矩形区域的中间所对应的位置,对应到上面SCLK时钟的位置,对应着是第一个边沿或是第二个边沿,即CPHA是0或1。(对应的是上升沿还是还是下降沿,要根据对应的CPOL的值,才能确定)。

(1)如何判断CPOL:SCLK的空闲时候的电压,是0还是1,决定了CPOL是0还是1;
(2)如何判断CPHA:而数据采样时刻对应着的SCLK的电平,是第一个边沿还是第二个边沿,对应着CPHA为0还是1。

 

SCLK的极性,相位,边沿之间的内在逻辑

 

最后来看一下S3C2440的SPI的CPOL和CPHA,结合前面讲的理论知识,下面的图就很好理解啦!

分享:


http://chatgpt.dhexx.cn/article/UbOHEup7.shtml

相关文章

CPT

Cisco Packet Tracer 实验 目录 一、直接连接两台 PC 构建 LAN二、用交换机构建 LAN三、交换机接口地址列表四、生成树协议五、路由器配置初步六、静态路由七、动态路由RIP八、动态路由OSPF九、基于端口的网络地址翻译 PAT十、虚拟局域网 VLAN十一、虚拟局域网管理 VTP十二、VL…

【process.popen】

原文链接:https://blog.csdn.net/liuyingying0418/article/details/100939697 subprocess.Popen()用法 subprocess.Popen()主要是用来在python中实现多进程程序。例如,在python脚本中,我们需要执行另一个python脚本,或者执行shel…

一文读懂 ChIPseq

文章目录 一、介绍二、测序原理三、检测蛋白质与DNA序列的结合峰1、测序片段匹配到参考基因组2、检测峰3、提高峰质量 四、影响ChIPseq测序结果的因素1、免疫共沉淀的影响2、测序的影响测序深度的对组蛋白修饰检测的影响3、重复样和重现性 一、介绍 ChIP-seq,测序方…

怎样理解SPI总线时钟的极性(CPOL)与相位(CPHA)?

转自 https://zhuanlan.zhihu.com/p/32803973 在单片机与外围设备的通信中,SPI总线是一种常用的通信方式。SPI是英文"Serial Periphral Interface"的缩写,中文翻译为"串行外围设备接口"。今天这篇文章,我们就来谈谈SPI通…

Python 之 cPickle用法

欢迎大家扫码关注我的微信公众号: Python 之 cPickle 用法 - 目录 一、概述二、序列化与反序列化的几个常用方法2.1 dump() 与 load()2.2 dumps() 与 loads()2.3 带 s 与不带 s 的区别 三、cPickle 类的孪生—— pickle 一、概述 序列化 (Serializatio…

HDU 2509 Nim博弈变形

1、HDU 2509   2、题意:n堆苹果,两个人轮流,每次从一堆中取连续的多个,至少取一个,最后取光者败。 3、总结:Nim博弈的变形,还是不知道怎么分析,…

LibreOJ #2509.「HNOI2018」排列 贪心+堆

题意 n<500000 分析 不难分析到其实就是有一棵树&#xff0c;然后每次要选一个节点。在选某个节点时必须先选其父节点&#xff0c;第i个选的节点的系数为i&#xff0c;问最大的权值和。 先这么想&#xff0c;对于一个最权值小的节点&#xff0c;当我们选了其父亲后&#…

hdu2509 Be the Winner (反尼姆博弈 )

hdu2509 Be the Winner Problem Description Let’s consider m apples divided into n groups. Each group contains no more than 100 apples, arranged in a line. You can take any number of consecutive apples at one time. For example “” can be turned into “” …

本地win10安装的MySQL8.0.12用navicat12报错 2509 -Authentication plugin ' caching_sha2_password' cannot be :

本地安装了MySQL8.0.12用navicatl 12报错了&#xff0c;报错请款如下: 网上很多的方法都是说在my.ini 文件中添加 default_authentication_pluginmysql_native_password&#xff1b; 我知道有的人的是可以的&#xff0c;但是我的报错 然后有需要修改my.ini文件 最后一行加上…

学习MySQL的第二天,安装MySQL的远程连接工具与解决2509的报错

1&#xff0c;下载并安装MySQL的远程连接工具 安装MySQL远程连接工具结果都一样哈&#xff0c;都是为了方便快捷&#xff0c;点击下方连接从“sqlyogcommunity官网”来下载安装。 https://github.com/webyog/sqlyog-community/wiki/Downloads 下载完后就可以来安装了&#xff…

nivicat破解包安装以及问题解决。MySQL安装版本Navicat连接报错2509解决方案

nivicat安装步骤 https://blog.csdn.net/yhflyl/article/details/95779920。 安装之后出现两个问题&#xff1a; 如图所示&#xff1a;网上查询过后&#xff0c;发现这个错误出现的原因是在mysql8之前的版本中加密规则为mysql_native_password&#xff0c;而在mysql8以后的加…

MySQL安装版本Navicat连接报错2509解决方案

MySQL安装版本Navicat连接报错2509解决方案 【问题产生】 新安装后打开数据库连接报错 【产生原因】 由于新版本的MySQL新特性导致的。 mysql> select Host,User,plugin from mysql.user; ------------------------------------------------- | Host | User | plugin | --…

Windows无法连接到Group Policy Client服务

Citrix XenApp服务器通过PVS启动后&#xff0c;用户访问出现如下的报错&#xff1a; 此报错是由于该Windows服务器的 Group Policy服务没有启动导致的&#xff0c;可以直接登录到该服务器开启Group Policy的服务即可。 但是如果你有好多好多的服务器&#xff0c;你也不知道哪个…

Circumventing Group Policy Settings

Group policy settings are an integral part of any Windows-based IT environment. If you’re a network administrator you use them to enforce corporate security and desktop management policy, and if you’re a user you’ve almost certainly been frustrated by t…

GPP(Group Policy Preferences)策略组首选项漏洞

概念 组策略是配配置计算机中某一些用户组策略的程序 SYSVOL是AD(活动目录)里面一个存储域公共文件服务器副本的共享文件夹&#xff0c;所有域内主机都能访问&#xff0c;里面保存组策略相关数据&#xff0c;包含登录脚本配置文件等 dir /s /a \\域控IP\SYSVOL\*.xml GPO是组策…

Group Policy Client解决方法

最近我同学的电脑遇到了这样的一个问题&#xff1a; 在开机登录界面时无法进入&#xff0c;提示Group Policy Client服务未能登录 其实在开始我也没遇到这样的问题&#xff0c;上网查了很久的资料&#xff0c;最后终于让我给解决了&#xff0c;呵呵…… 现在我就把我的解决方…

windows无法连接到group policy client服务.此问题阻止标准用户登陆系统.

问题描述如图&#xff1a; 解决&#xff1a; 1.winR 输入 regedit,打开注册表编辑器 2.对上图区域右键->权限 3.选定你的用户&#xff0c;点添加->高级->立即查找 4.找到SYSTEM&#xff0c;点击确定 5.然后注册框中出现&#xff0c;点确定&#xff0c;然后重启&#…

Powershell如何修改组策略(group policy)

上一篇&#xff0c;田总手把手给指导了如何实现多跳&#xff0c;手动实现的&#xff0c;没有问题。但是机器众多&#xff0c;这一篇我们用命令来实现组策略的修改。 首先&#xff0c;Powershell不是万能的&#xff0c;Powershell是可以获取到域的组策略(GPO)&#xff0c;并且权…

计算机 服务未能登陆,w7电脑开机提示Group Policy Client服务未能登陆的修复方法...

‍ ‍ w7系统是目前比较多用户自己使用的系统&#xff0c;比较普遍&#xff0c;但是出现的故障也比较多&#xff0c;一般都是大家能自己动手解决的。那么w7电脑开机提示Group Policy Client服务未能登陆怎么回事&#xff1f;要怎么处理这个问题&#xff1f;下面小编就以w732位旗…

win7服务器未能登录怎么解决,win7开机提示group policy client服务未能登录拒绝访问怎么办...

‍‍ 有些win7专业版用户在电脑开机的时候提示group policy client服务未能登录拒绝访问&#xff0c;导致无法进入系统开不了机&#xff0c;遇到这种情况该怎么办呢&#xff1f;group policy client服务用于应用由这台计算机的管理员或者其他用户通过组策略组件配置的设置&…