




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
详解 详解 SPI 中的中的极性极性 CPOL 和相位和相位 CPHA 是什么是什么以以及如何设置及如何设置 版本 2011 08 15 作者 crifan 联系方式 green waste at 背景 背景 最近在看关于 Silicon Labs 的 C8051F347 的某个驱动中 关于 SPI 部分初始化的代码 看到 其对于 SPI 的设置为 CPOL 1 CPHA 0 对于 CPOL 及 CPHA 的含义不了解 想要搞懂 这 两个参数到底是什么意思 以及为何要这么设置 所以才去找了 SPI 的极性和相位的相关 资料 整理如下 SPI 基础知识简介 基础知识简介 设备与设备之间通过某种硬件接口通讯 目前存在很多种接口 SPI 接口是其中的一种 SPI 中分 Master 主设备和 Slave 从设备 数据发送都是由 Master 控制 一个 master 可以接一个或多个 slave 常见用法是一个 Master 接一个 slave 只需要 4 根线 SCLK Serial Clock 串行 时钟 MISO Master In Slave Out 主设备输入 从设备输出 MOSI Master Out Slave In 主设备输出 从设备输入 SS Slave Select 选中从设备 片选 SPI 由于接口相对简单 只需要 4 根线 用途算是比较广泛 主要应用在 EEPROM FLASH 实时时钟 AD 转换器 还有数字信号处理器和数字信号解码器之间 即一个 SPI 的 Master 通过 SPI 与一个从设备 即上述的那些 Flash ADC 等 进行通讯 而主从设备之间通过 SPI 进行通讯 首先要保证两者之间时钟 SCLK 要一致 互相要商量好 了 要匹配 否则 就没法正常通讯了 即保证时序上的一致才可正常讯 而这里的 SPI 中的时钟和相位 指的就是 SCLk 时钟的特性 即保证主从设备两者的时钟的 特性一致了 以保证两者可以正常实现 SPI 通讯 SPI 相关的相关的缩写缩写或说法或说法 先简单说一下 关于 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 分别称为 Leading edge 前一个边沿 第一个边沿 对于开始电压是 1 那么就是 1 变成 0 的时候 对 于开始电压是 0 那么就是 0 变成 1 的时候 Trailing edge 后一个边沿 第二个边沿 对于开始电压是 1 那么就是 0 变成 1 的时候 即 在第一次 1 变成 0 之后 才可能有后面的 0 变成 1 对于开始电压是 0 那么就是 1 变 成 0 的时候 本文采用如下用法 极性 CPOL 相位 CPHA SCLK 时钟 第一个边沿和第二个边沿 SPI 的的相位和相位和极性极性 CPOL 和 CPHA 分别都可以是 0 或时 1 对应的四种组合就是 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 极性极性 先说什么是 SCLK 时钟的空闲时刻 其就是当 SCLK 在数发送 8 个 bit 比特数据之前和之后 的状态 于此对应的 SCLK 在发送数据的时候 就是正常的工作的时候 有效 active 的时 刻了 先说英文 其精简解释为 Clock Polarity IDLE state of SCK 再用中文详解 SPI 的 CPOL 表示当 SCLK 空闲 idle 的时候 其电平的值是低电平 0 还是高电平 1 CPOL 0 时钟空闲 idle 时候的电平是低电平 所以当 SCLK 有效的时候 就是高电平 就 是所谓的 active high CPOL 1 时钟空闲 idle 时候的电平是高电平 所以当 SCLK 有效的时候 就是低电平 就 是所谓的 active low 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 时候的是高电平 第一个边沿就是从低变到高 所以是上升沿 用图文形式表示 更加容易看懂 此处 再多解释一下可能会遇到的 CKP 和 CKE 其是 Microchip 的 PIC 系列芯片中的说法 1 CKP 是 Clock Polarity Select 就是极性 CPOL CKP 虽然名字和 CPOL 不一样 但是都是指时钟相位的选择 定义也一样 CKP Clock Polarity Select bit 1 Idle state for clock CK is a high level 0 Idle state for clock CK is a low level 所以不多解释 2 CKE 是 Clock Edge Select 就是相位 CPHA CKE SPI Clock Edge Select bit 1 Transmit occurs on transition from active to Idle clock state 0 Transmit occurs on transition from Idle to active clock state 意思是 1 数据 传输发生在时钟从有效状态转到空闲状态的那一时刻 0 数据 传输发生在时钟从空闲状态转到有效状态的那一时刻 其中 数据传输的时刻 即图中标出的 数据 transmit 传输的时刻 很明显 该时刻是 一个时钟和下一个时钟之间交界的地方 对应的不论是上升沿还是下降沿 都与我们前面 提到的 CPHA 数据采样的时刻 的边沿方向所相反 所以 此处的 CKE 正好与 CPHA 相反 所以 CKP 和 CKE 所对应的取值的含义为 When CKP 0 CKE 1 Data transmitted on rising edge of SCK CKE 0 Data transmitted on falling edge of SCK When CKP 1 CKE 1 Data transmitted on falling edge of SCK CKE 0 Data transmitted on rising edge of SCK 下面再列出其他一些地方找到的 常见的 SPI 的四种模式的时序图 供参考 如何看懂和 如何看懂和记忆记忆 CPOL 和和 CPHA 所以 关于在其他地方介绍的 看似多么复杂难懂难记忆的 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 的极性 相位 边沿之间的内在逻辑关系的极性 相位 边沿之间的内在逻辑关系 SCLK 空闲时空闲时 刻电压刻电压 低电平 CPOL 0 高电平 CPOL 1 数据采样时数据采样时 刻 刻 SCLK 的的 edge 是第一是第一 个还是第二个个还是第二个 第一个边沿 CPHA 0 上升沿 开始的电平 开始的电平 是低电压是低电压 0 而第一 而第一 个边沿 只能是从个边沿 只能是从 0 变到变到 1 即上升沿 即上升沿 下降沿 第二个边沿 CPHA 1 下降沿 上升沿 开始电平是高 开始电平是高 电平电平 1 第二个边沿 第二个边沿 肯定是从肯定是从低电平低电平 0 变到变到 高电平高电平 1 因为第一个 因为第一个 边沿肯定是从高电平边沿肯定是从高电平 1 变到低电平 变到低电平 0 软件 软件中中如何设置如何设置 SPI 的的极性极性和相位 和相位 SPI 分主设备和从设备 两者通过 SPI 协议通讯 而设置 SPI 的模式 是从设备的模式 决定了主设备的模式 所以要先去搞懂从设备的 SPI 是何种模式 然后再将主设备的 SPI 的模式 设置和从设备 相同的模式 即可正常通讯 对于从设备的 SPI 是什么模式 有两种 1 固定的固定的 有 有 SPI 从设备硬件决定的从设备硬件决定的 SPI 从设备 具体是什么模式 相关的 datasheet 中会有描述 需要自己去 datasheet 中找 到相关的描述 即 关于 SPI 从设备 在空闲的时候 是高电平还是低电平 即决定了 CPOL 是 0 还是 1 然后再找到关于设备是在上升沿还是下降沿去采样数据 这样就是 在定了 CPOL 的值的 前提下 对应着可以推算出 CPHA 是 0 还是 1 了 举例 1 CC2500 Low Cost Low Power 2 4 GHz RF Transceiver 的 datasheet 中 SPI 的时序图是 从图中可以看到 最开始的 SCLK 和结束时候的 SCLK 即空闲时刻的 SCLK 是低电平 推 导出 CPOL 0 然后可以看到数据采样的时候 即数据最中间的那一点 对应的是 SCLK 的 第一个边沿 所以 CPHA 0 此时对应的是上升沿 举例 2 SSD1289 240 RGB x 320 TFT LCD Controller Driver 的 datasheet 中提到 SDI is shifted into 8 bit shift register on every rising edge of SCK in the order of data bit 7 data bit 6 data bit 0 意思是 数据是在上升沿采样 所以可以断定是 CPOL 0 CPHA 0 或者 CPOL 1 CPHA 1 的模式 但是至于是哪种模式 按理来说 接下来应该再去确定 SCLK 空闲时候是高电平还是低电平 用以确定 CPOL 是 0 还是 1 但是 datasheet 中没有提到这点 所以 此处 目前不太确定 是两种模式都支持 还是需要额外找证据却确定 CPOL 是 0 还是 1 2 可配置的 可配置的 由软件自己设定 由软件自己设定 从设备也是一个 SPI 控制器 4 种模式都支持 此时只要自己设置为某种模式即可 然后知道了从设备的模式后 再去将 SPI 主设备的模式 设置为和从设备模式一样 即可 对于如何配置 SPI 的 CPOL 和 CPHA 的话 不多细说 多数都是直接去写对应的 SPI 控制器 中对应寄存器中的 CPOL 和 CPHA 那两位 写 0 或写 1 即可 举例 此处遇到的 C8051F347 中的 SPI 就是一个 SPI 的 controller 控制器 即支持软件配置 CPOL 和 CPHA 的值 四种模式都支持 此处 C8051F347 作为 SPI 从设备 设置了 CPOL 1 CPHA 0 的模式 因此 此处对应主芯片 Blackfin F537 中的 SPI 控制器 作为 Master 主设 备 其 SPI 的模式也要设置为 CPOL 1 CPHA 0 待解决问题 待解决问题 对于软件去如何设置主设备 和 从设备 的 CPOL 和 CPHA 的值 是搞懂了 知道两者要 匹配才可以正常通讯 但是对于 CPOL 和 CPHA 这四种模式 不同的模式之间 相对来说 有何优缺点 比如是否哪种模式更稳定 数据更不容易出错等等 还是不清楚 如果有懂 行的 还请告知 green waste at 总结 总结 1 IT 方面的资料 国内的 还是把问题讲明白的太少 想搞懂问题 还是得去找英文的 2 有问题 指望别人 还是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农村 换届发言稿
- 时间的脚印的课件
- 少儿美术文具课件
- 烧结车间煤气培训
- 厨房消防安全培训
- 车间降本增效培训
- 2025版管件回收利用合同范本
- 2025版叉车车辆租赁合同-智能仓储物流配送解决方案
- 二零二五年度人工智能机器人研发与应用合同
- 2025版合作办学项目学生权益保护合同范本
- 2024年河北石家庄市体育局选聘事业单位体育专业人才11人历年高频考题难、易错点模拟试题(共500题)附带答案详解
- 进出口企业进出口业务内部审计制度(AEO认证文件)
- 玉溪实验中学初一招生考试数学试卷答案
- 先学后教当堂训练课堂教学模式培训
- 设备技改方案范文
- 2024年石油石化技能考试-甲醇装置操作工笔试历年真题荟萃含答案
- 消防培训行业现状分析报告
- 肋间神经病的护理查房
- 中国移动室分问题排查优化指导手册
- 配电柜吊装方案
- 顺丰同城管理制度
评论
0/150
提交评论