zoukankan      html  css  js  c++  java
  • 协议——SPI

      SPI(Serial Peripheral interface)是由摩托罗拉公司定义的一种串行外围设备接口,是一种高速、全双工、同步的通信总线,只需要四根信号线即可,节约引脚,同时有利于PCB的布局。正是出于这种简单易用的特性,现在越来越多的芯片集成了SPI通信协议,如FLASH、SD卡,AD转换器等。SPI的通信原理比较简单,它以主从方式工作,通常有一个主设备和一个或多个从设备。一般其有 4 根线,片选线(CS)、同步时钟线(SCLK)、输入数据线(MOSI)和输出数据线(MISO)。

    一、通信模式
      一般而言,SPI通信有4种不同的模式,不同的从设备在出厂时被厂家配置为其中一种模式,模式是不允许用户修改的。主设备和从设备必须在同一模式下进行通信,否则数据会接收错误。SPI的通信模式是由CPOL(时钟极性)和CPHA(时钟相位)来决定的,四种通信模式如下:
    模式0:CPOL = 0, CPHA = 0;
    模式1:CPOL = 0, CPHA = 1;
    模式2:CPOL = 1, CPHA = 0;
    模式3:CPOL = 1, CPHA = 1;

    1.CPOL时钟极性

      CPOL信号控制着SPI_CLK的时钟极性,时钟极性变化规律如下:

    CPOL = 1:SPI_CLK空闲时为高,第1个时钟沿为下降沿
    CPOL = 0:SPI_CLK空闲时为低,第1个时钟沿为上升沿

    2.CPHA时钟相位

      CPHA信号控制数据与时钟的对齐模式,其不同模式下的时序图如下所示:

      由上图可知,当CPHA = 1时,时钟的第一个变化沿(上升沿或者下降沿)数据开始改变,那么也就意味着时钟的第2个变化沿(与第一个变化沿相反)锁存数据;当CPHA = 0时,数据在时钟的第一个变化沿之前就已经改变,并且保持稳定,也就意味着在时钟的第一个变化沿锁存数据。

    二、总结

    参考资料:

    [1]亚德诺半导体.一文读懂4线SPI

    [2]威三学院FPGA教程

    [3]正点原子FPGA教程

  • 相关阅读:
    cf1058c 暴力
    cf1058b 点是否在一个矩形里
    cf1058E 思维 前缀处理 位运算
    Codeforces Round #622 (Div. 2)C(单调栈,DP)
    Codeforces Round #623 (Div. 1, based on VK Cup 2019-2020
    Atcoder Beginner Contest 156E(隔板法,组合数学)
    【PAT甲级】1117 Eddington Number (25分)
    【PAT甲级】1116 Come on! Let's C (20分)
    【PAT甲级】1115 Counting Nodes in a BST (30分)(二叉查找树)
    Codeforces Round #621 (Div. 1 + Div. 2)E(二分查找,枚举分界点,容斥原理)
  • 原文地址:https://www.cnblogs.com/xianyufpga/p/11341809.html
Copyright © 2011-2022 走看看