SPI协议是一个 4 线、全双工的串口协议。根据串口时钟SCLK的相位SCPH和极性SCPOL的不同,有 4 种组合。
     CPOL CPHA
MODE0   0   0
MODE1   0   1  
MODE2   1   0
MODE3   1   1
CPOL: SPI空闲时的时钟信号电平(1:高电平, 0:低电平)
CPHA: SPI在时钟第几个边沿采样(1:第二个边沿开始, 0:第一个边沿开始)
MODE0和MODE3最常用。
1、在主设备处于不使能或者空闲的状态下,主设备输出的从设备选择信号CS保持高电平。
2、时钟极性SCPOL参数决定串口时钟SCLK 在无效的状态下是高电平还是低电平:
      (1)SCPOL=0,串口时钟(sclk)在无效的状态下保持低电平。
      (2)SCPOL=1,串口时钟( sclk)在无效的状态下保持高电平。
3、时钟相位SCPH参数决定在第几个时钟变化边沿开始采样数据:
     (1) SCPH=0时在第一个时钟变化沿开始发送数据。
     (2) SCPH=1时在第二个时钟变化沿采样输入数据。
4、SPI 协议时序图
图中 CS、 SCLK 对于主设备 SPI 为输出; spi_tx 为输出, spi_rx 为输入。
图 1 是 SCPOL=0,SCPH=0 的 SPI 协议时序图。
 
图 2 是 SCPOL=0,SCPH=1  的 SPI 协议时序图。

图 3 是 SCPOL=1,SCPH=0  的 SPI 协议时序图。

 
图 4 是 SCPOL=1,SCPH=1  的 SPI 协议时序图。

 文章转载自:https://blog.csdn.net/qwaszx523/article/details/70224879

(转)SPI时钟极性、时钟相位的更多相关文章

  1. 嵌入式开发之davinci--- spi 中的时钟极性CPOL和相位CPHA

    PI的极性Polarity和相位Phase,最常见的写法是CPOL和CPHA,不过也有一些其他写法,简单总结如下:(1) CKPOL (Clock Polarity) = CPOL = POL = P ...

  2. ntp/系统时钟/硬件时钟/双系统下计算机时间读取的问题

    http://blog.chinaunix.net/uid-182041-id-3464524.html       //linux系统时间和硬件时钟问题(date和hwclock) http://j ...

  3. 网页计算器 && 简易网页时钟 && 倒计时时钟

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. 创意时钟 人形时钟 可惜不是 https

    ; (function () { $('#header').css({ 'position':'relative' }).prepend('<div id="clockWrap&quo ...

  5. SPI相位跟极性介绍

    [详解]SPI中的极性CPOL和相位CPHA是什么以及如何设置   2012-03-0214:34:10|  分类:单片机 |  标签: |字号大中小 订阅 版本:2011-08-15 作者:crif ...

  6. [转]什么是SPI通信

    SPI:高速同步串行口.3-4线接口,收发独立.可同步进行. SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口.是Motorola首先在其MC6 ...

  7. [SPI]SPI协议详解

    转自:https://my.oschina.net/freeblues/blog/67400 1.SPI协议简介 1.1.SPI协议概括 SPI,是英语Serial Peripheral interf ...

  8. Blackfin DSP(五):BF533的SPI接口

    533SPI的特性 最高速度可达SCLK/4: 支持主模式和从模式: 可使用8个GPIO口作为从选择线: 1 slave select input pins 7 slave select output ...

  9. SPI总线通信电路设计

    数据带宽=(总线频率×数据位宽)÷8 B表示带宽,F表示存储器时钟频率,D表示存储器数据总线位数,则带宽为: B(峰值带宽)=F(时钟频率MHz)×D(总线位数bit)/8 例如,PC-100的SDR ...

随机推荐

  1. The Usage of Lambda and Heap in the C++ STL

    The Usage of Lambda and Heap in the C++ STL Heap In c++ STL, the heap had been implemented as the pr ...

  2. 13:python-ldap

    1.1 python-ldap 基本使用 11111111111111111111

  3. OSI7层模型(TCP4层)

    OSI7层模型(TCP4层) 第一层:物理层 在局部局域网络上传送帧,它负责管理电脑通信设备和网络媒体之间的互通.包括了针脚.电压.线缆规范.集线器.中继器.网卡.主机适配器等. 第二层:数据链路层 ...

  4. python之路-day1-while循环

    while Thue: (条件为真无限循环)  break(跳出循环) 猜年龄: #Author:zwwage_of_jay = 40count = 0while count < 3: gues ...

  5. PO VO BO DTO POJO DAO之间的关系

    J2EE开发中大量的专业缩略语很是让人迷惑,尤其是跟一些高手讨论问题的时候,三分钟就被人家满口的专业术语喷晕了,PO VO BO DTO POJO DAO,一大堆的就来了. PO:persistant ...

  6. Bugku-CTF之flag.php(点了login咋没反应)

      Day2   flag.php(点了login咋没反应)   地址:http://123.206.87.240:8002/flagphp/      

  7. JavaScript中this的用法 及 如何改变this的指向

    要懂得JavaScript中this的用法,首先需要知道,JavaScript中的作用域相关知识. var fun = function(){ var flag = 1; console.log(fl ...

  8. https://blog.csdn.net/dayancn/article/details/54692111

    Ubuntu恢复被删除的文件 昨天一不小心,执行了rm xx  -rf,把一个项目删除了.然后就是各种悔恨,各种自责,这个项目可是一周的工作量啊.最后肯定得解决,于是google搜索发现了恢复神器ex ...

  9. Python3基础 list append 向尾部添加一个元素

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  10. android 6 中init.rc的生成过程【转】

    本文转载自:https://blog.csdn.net/quhj/article/details/51819638 android 系统开机是会有一个初始化过程 init ,整个初始化过程是根据配置脚 ...