零. 声明

本专栏文章我们会以连载的方式持续更新,本专栏计划更新内容如下:

第一篇:ESP-IDF基本介绍,主要会涉及模组,芯片,开发板的介绍,环境搭建,程序编译下载,启动流程等一些基本的操作,让你对ESP-IDF开发有一个总体的认识,比我们后续学习打下基础!

第二篇:ESP32-IDF外设驱动介绍,主要会根据esp-idf现有的driver,提供各个外设的驱动,比如LED,OLED,SPI LCD,TOUCH,红外,Codec ic等等,在这一篇中,我们不仅仅来做外设驱动,还会对常用的外设总线做一个介绍,让大家知其然又知其所以然!

第三篇:目前比较火热的GUI LVGL介绍,主要会设计LVGL7.1,LVGL8的移植介绍,并且也会介绍各个组件,知道原理后,最后,我们会推出一款组态软件来构建我们的GUI,来提升我们的效率!

第四篇:ESP32-蓝牙,熟悉我的,应该都知道,我即使从事蓝牙协议栈的开发的,所以这个是我们独有的优势,在这一篇章,我们会提供不仅仅是蓝牙应用方法的知识,也会应用结合蓝牙底层协议栈的理论,让你彻底从上到下打通蓝牙任督二脉!

第五篇:Wi-Fi介绍,熟悉我的,应该也知道,我们也做过一款sdio wifi的驱动教程板子,所以在wifi这方面我们也是有独有的优势,在这一篇章,我们同样不仅仅提供Wi-Fi应用方面的知识,也会结合底层理论,让你对Wi-Fi有一个清晰的认知!

另外,我们的教程包括但是不局限于以上篇章,为了给你一个更好的导航,以下信息尤其重要,请详细查看!!

------------------------------------------------------------------------------------------------------------------------------------------

购买开发板(点击我)

文档目录(点击我)

Github代码仓库(点击我)

蓝牙交流扣扣群:539357317

微信公众号↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

​​​​

------------------------------------------------------------------------------------------------------------------------------------------

一.概念

SPI 协议是由摩托罗拉公司提出的通讯协议 (Serial Peripheral Interface),即串行外围设备接口,是一种高速全双工的通信总线。它被广泛地使用在 ADC、LCD 等设备与 MCU 间,要求通讯速率较高的场合。

二.SPI 物理层

SPI 通讯设备之间的常用连接方式见图:

SPI 通讯使用 3 条总线及片选线,3 条总线分别为 SCK、MOSI、MISO,片选线为 SS(也叫做CS),它们的作

用介绍如下:

(1) ( Slave Select):从设备选择信号线,常称为片选信号线,也称为 NSS、CS,以下用 NSS 表示。当有多个 SPI 从设备与 SPI 主机相连时,设备的其它信号线 SCK、MOSI 及 MISO 同时并联到相同的 SPI 总线上,即无论有多少个从设备,都共同只使用这 3 条总线;而每个从设备都有独立的这一条 NSS 信号线,本信号线独占主机的一个引脚,即有多少个从设备,就有多少条片选信号线。I2C 协议中通过设备地址来寻址、选中总线上的某个设备并与其进行通讯;而 SPI 协议中没有设备地址,它使用 NSS 信号线来寻址,当主机要选择从设备时,

把该从设备的 NSS 信号线设置为低电平,该从设备即被选中,即片选有效,接着主机开始与被选中的从设备进行 SPI 通讯。所以 SPI 通讯以 NSS 线置低电平为开始信号,以 NSS 线被拉高作为结束信号。

(2) SCK (Serial Clock):时钟信号线,用于通讯数据同步。它由通讯主机产生,决定了通讯的速率,不同的设备支持的最高时钟频率不一样,两个设备之间通讯时,通讯速率受限于低速设备。

(3) MOSI (Master Output, Slave Input):主设备输出/从设备输入引脚。主机的数据从这条信号线输出,从机由这条信号线读入主机发送的数据,即这条线上数据的方向为主机到从机。

(4) MISO(Master Input,, Slave Output):主设备输入/从设备输出引脚。主机从这条信号线读入数据,从机的数据由这条信号线输出到主机,即在这条线上数据的方向为从机到主机。

三.SPI时序图

我们来看下SPI的时序图,一共有4种模式,也就是根据“时钟极性CPOL”和“时钟相位 CPHA”不同组合搭配而来。

为了方便说明,我们先来介绍下CPOL跟CPHA

时钟极性 CPOL 是指 SPI 通讯设备处于空闲状态时,SCK 信号线的电平信号 (即 SPI 通讯开始前、NSS 线为高电平时 SCK 的状态)。CPOL=0 时,SCK 在空闲状态时为低电平.

CPOL=1 时,SCK 在空闲状态时为高电平.

时钟相位 CPHA 是指数据的采样的时刻,

当 CPHA=0 时,MOSI 或 MISO 数据线上的信号将会在SCK 时钟线的“奇数边沿”被采样。

当 CPHA=1 时,MOSI 或 MISO 数据线上的信号将会在SCK 时钟线的“偶数边沿”被采样。

介绍完毕这些,我们来介绍下具体的时序图:

1.CPHA=0

我们来分析这个 CPHA=0 的时序图。首先,根据 SCK 在空闲状态时的电平,分为两种情况。

SCK信号线在空闲状态为低电平时,CPOL=0;

SCK信号线在空闲状态为高电平时,CPOL=1。

无论 CPOL=0 还是 =1,因为我们配置的时钟相位 CPHA=0,在图中可以看到,采样时刻都是在SCK 的奇数边沿。注意当 CPOL=0 的时候,时钟的奇数边沿是上升沿,而 CPOL=1 的时候,时钟的奇数边沿是下降沿。所以 SPI 的采样时刻不是由上升/下降沿决定的。MOSI 和 MISO 数据线的有效信号在 SCK 的奇数边沿保持不变,数据信号将在 SCK 奇数边沿时被采样,在非采样时刻,MOSI 和 MISO 的有效信号才发生切换。

2.CPHA=1

我们来分析这个 CPHA=1 的时序图。首先,根据 SCK 在空闲状态时的电平,分为两种情况。

SCK信号线在空闲状态为低电平时,CPOL=0;

SCK信号线在空闲状态为高电平时,CPOL=1。

无论 CPOL=0 还是 =1,因为我们配置的时钟相位 CPHA=1,在图中可以看到,采样时刻都是在SCK 的偶数边沿。注意当 CPOL=0 的时候,时钟的奇数边沿是上升沿,而 CPOL=1 的时候,时钟的奇数边沿是下降沿。所以 SPI 的采样时刻不是由上升/下降沿决定的。MOSI 和 MISO 数据线的有效信号在 SCK 的奇数边沿保持不变,数据信号将在 SCK 奇数边沿时被采样,在非采样时刻,MOSI 和 MISO 的有效信号才发生切换。

总结下模式:

参考文档:

1.野火 STM32 HAL库开发指南

2.SPI协议

SPI协议的通信原理相关推荐

  1. SPI协议及其工作原理详解

    一.概述. SPI, Serial Perripheral Interface, 串行外围设备接口, 是 Motorola 公司推出的一种同步串行接口技术. SPI 总线在物理上是通过接在外围设备微控 ...

  2. 下面哪个字段是http请求中必须具备的_HTTP协议及其工作原理介绍

    HTTP,全称 HyperText Transfer Protocol,即超文本传输协议.它是互联网应用最为广泛的一种网络协议,我们平时浏览网页的时候就是使用HTTP协议.比如当你在浏览器中输入www ...

  3. SPI的模拟应用——OLED以及时钟模块的应用(一)SPI协议介绍及利用协议实现两机通信(51单片机)

    链接:https://pan.baidu.com/s/1g8jkENjO8v4eXq0bN0acEw?pwd=45c8  提取码:45c8 目录 一. 什么是SPI 1-1 SPI简介 1-2 SPI ...

  4. SPI协议、MCP2515裸机驱动详解----主流SPI总线接口原理

    最近看到一个介绍SPI接口原理的帖子,看完觉得甚好.特来分析给大家一起学习. SPI概述 Serial Peripheral interface 通用串行外围设备接口 是Motorola首先在其MC6 ...

  5. SPI 通信原理详述

    SPI 通信原理详述 1.物理层 1.1 SPI接口 1.2 SPI互连 2 协议层 2.1 SPI时序 1)时钟极性 2)时钟相位 2.2数据格式 3.传输速率 4 优缺点 SPI(Serial P ...

  6. FPGA作为从机与STM32进行SPI协议通信---Verilog实现

    一.SPI协议简要介绍 SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口.SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用 ...

  7. SPI通信原理---STM32F4--HAL

    SPI接口原理 SPI是一种高速全双工同步通信,在芯片管脚上占用四根线,主要应用在EEPROM.FLASH.实时时钟.AD转换器,还有数字信号处理器和数字信号解码器之间. SPI接口使用4根线通信. ...

  8. FPGA作为从机与STM32进行SPI协议通信

    1.SPI协议简要介绍 (1)SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口.SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上 ...

  9. 【STM32】SPI协议通信详解

    目录 一.SPI协议简介 二.SPI物理层 三.SPI协议层 1.通讯的起始和停止信号 2.数据有效性 3.时钟信号的相位和极性(重点) 四.SPI 特性及架构(重点) 1.通信引脚 2.时钟控制逻辑 ...

  10. 伦茨科技小知识-蓝牙的通信原理和协议

    蓝牙技术是一种无线数据与语音通信的开放性全球规范,它以低成本的近距离无线连接为基础,为固定与移动设备通信环境建立一个特别连接.其实质内容是为固定设备或移动设备之间的通信环境建立通用的无线电空中接口(R ...

最新文章

  1. python程序员工资低吗-程序员嫌工资低拒绝offer,HR:估计你一辈子就是个程序员...
  2. java BASE64流 输出图片。
  3. 超级简易法上传本地文件到github上
  4. [Redis6]常用数据结构_Hash哈希
  5. “新基建”横空出世,9本书助你把握7+2大领域风口
  6. Linux上开启TUN
  7. CentOS6.x安装mongodb3.4.x
  8. [题解](树形dp/换根)小x游世界树
  9. jsp之servlet模板问题
  10. Delphi2007的重构功能
  11. node2vec简单总结
  12. 19种音频格式介绍及音质压缩比的比较
  13. 网页实现中英文切换方式对比与实现
  14. 大学物理实验(二)气体比热容比的测定
  15. 1~20以内的加减法
  16. 西瓜书第四章习题及答案
  17. JS(JavaScript)中实现深浅拷贝的几种方式(详细阅读 非常重要)。
  18. 闰年计算-第13届蓝桥杯Scratch选拔赛真题精选
  19. 银行本、异地,本、跨行存取款收费比较
  20. Linux公平队列FQ配置

热门文章

  1. mysql软件字体模糊_Windows 10字体模糊发虚! 如何解决?
  2. AStar算法通用实现+可视化(Matlab)
  3. 单片机关于protues中数码管的显示
  4. 邮件服务器匿名,smtp服务器发送匿名邮件
  5. screen投屏怎么用_Screen投屏
  6. Gurobi软件求解线性规划问题(卜算学习记录)
  7. java freepascal_Free Pascal
  8. c语言第九章课后作业答案,C语言课后习题部分答案
  9. xbox 360手柄驱动程序_当手游开始变得硬核和竞技化 玩家会需要这样的手柄
  10. vb adodb mysql_PHP_ADODB类使用,MySQL的例子PHP中最通用的数据 - phpStudy