SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,越来越多的芯片集成了这种通信协议,比如AT91RM9200。SPI总线是一种4线总线,因其硬件功能很强,所以与SPI有关的软件就相当简单,使中央处理器(Central Processing Unit,CPU)有更多的时间处理其他事务。

SPI通常通信方式为一对一,或者 一对多。即一个主设备与多个从设备相互通信。

SPI一般有4个信号,采取用4个信号即可实现通信。、

SCLK(Serial Clock):时钟信号,由主设备产生。

MISO (Master Input Slave Output): 主设备输入,从设备输出。

MOSI (Master Output Slave Input): 主设备输出,从设备输入。

CS (Chip Select) :片选使能信号,由主设备控制。

与从设备通信方式,采取片选信号控制从设备使能,并与之通信。

通信过程:

1、由CS片选信号控制与确定的从设备通信。

2、主设备发送数据或从设备发送数据。

3、由主设备停止通信,即CS信号失能。

SPI有4中不同的工作模式,分别由CPOL(时钟极性)和CPHA(时钟相位)来控制主设备的工作模式。

CPOL 表示SCLK空闲时的状态:

CPOL=0 空闲时 SCLK为低。

CPOL=1 空闲时 SCLK为高。

CPHA 表示每周期某个时钟沿采样:

CPHA=0  每周期第一时钟沿采样。

CPHA=1  每周期第二时钟沿采样。

将上述两种进行组合得到了4种不同的工作模式。

4种不同的工作模式如下:

参考资料:

1、DAY5 SPI总线_哔哩哔哩_bilibili

2、SPI(SPI协议)_百度百科 (baidu.com)

SPI总线学习笔记的更多相关文章

  1. Linux开发——spi总线学习

    1 spi总线协议简介 1.1 基本概念 SPI(Serial pe)

  2. USART波特率 vs SPI速率--学习笔记

    本篇文章将与大家探讨USART波特率 vs SPI速率.这里提出一个问题,为什么USART的波特率是内核时钟的1/8或者1/16,而SPI最快的频率可以是内核时钟的1/2. 请大家带着这个问题来阅读本 ...

  3. openrisc 之 Wishbone总线学习笔记——接口信号定义

    这部分内容就是copy下来的,网上到处都有.先看看接口啥样子,在详细说明 接口定义copy http://blog.csdn.net/ce123/article/details/6929897.百度文 ...

  4. openrisc 之 Wishbone总线学习笔记——总线互联

    一,总线命名规范 1,wishbone总线接口信号都是高电平有限 2,wishbone接口信号都是以 _i ,或者是 _o 结束.i表示输入, o表示输出. ()表示该信号为总线信号,总线位宽可以大于 ...

  5. openrisc 之 Wishbone总线学习笔记——总线特性

    特性: 一,互联方式: 支持点到点.共享总线.十字交叉(Crossbar)和基于交换结构(Switch fabric)的互联. 二,数据操作方式:单次读/写操作.块读/写操作,读改写(RMW,Read ...

  6. PCI 总线学习笔记

    转载请注明出处:http://blog.csdn.net/lg2lh/article/details/8042008 PCI的基本协议这里就不介绍了,由于一般的芯片协议都是集成好的,我仅仅须要大体了解 ...

  7. Java SPI机制学习笔记

    最近在阅读框架源代码时,常常看到 SPI 的子包, 忍不住查了下: Service Provider Interface : 服务提供接口. JavaSPI 实际上是“基于接口的编程+策略模式+配置文 ...

  8. CAN总线学习笔记

    1.CAN总线信息包的格式 问题: 1.CAN总线的初始化要初始化哪些东西? 2.处理器如何与CAN总线之间进行连接? 硬件连接 关于CC2底盘CAN通信的协议格式 备注: 设备地址为01 功能码

  9. 004:ZYNQ_AXI总线学习笔记(1)

    1.    WHAT IS AXI? AXI是一种高级可扩展接口,是ARM AMBA的一部分. 2.    WHAT IS AMBA? AMBA是高级微控制器总线架构,开放的片内互联总线标准. 3.A ...

  10. STM32学习笔记(八) SPI总线(操作外部flash)

    1. SPI总线简介 SPI全称串行外设接口,是一种高速,全双工,同步的外设总线:它工作在主从方式,常规需要至少4根线才能够正常工作.SPI作为基本的外设接口,在FLASH,EPPROM和一些数字通讯 ...

随机推荐

  1. Torchvision datasets中的经典数据集梳理(以及与OCR相关的常用数据集整理)

    这篇文章是在上班摸鱼的时候随手整理的一些常用CV数据集(文末附带我处理好的数据的下载资源) 众所周知,通过使用Torchvision,可以方便快捷地加载一些较为常用的数据集.但是(敲黑板!)如果本地没 ...

  2. Python-HwTestReport的简单使用

    一.工具包下载 https://github.com/hongweifuture/HwTestReport(出自此大神) 二.使用示例(直接上代码) 1.将 HwTestReport.py 导入项目 ...

  3. Driver8833电机驱动模块的使用(STM32为主控)

    一.硬件 STM32C8T6.STLINK下载器 Driver8833:TI公司的DRV8833是双桥马达驱动器解决方案,包括有两个H桥驱动器,可驱动两个DC电刷马达,或一个步进马达, 螺线管和其它电 ...

  4. 你知道Object类和Objects的常用方法吗

    文章目录 Object的常用方法 Objects的常用方法 hashCode hash isNull equals requireNonNull compare nonNull 大家好,Leo又来了! ...

  5. OpenAI CLIP 关键点 - 连接图像和文字

    标签: #CLIP #Image2Text #Text2Image #OpenAI 创建时间:2023-04-21 00:17:52 基本原理 CLIP是一个图像分类模型. 准备训练数据:准备大量的文 ...

  6. 2020-09-24:jvm监控系统是通过jmx做的么?

    福哥答案2020-09-24:#福大大架构师每日一题# [此答案来自知乎:](https://www.zhihu.com/question/422632973) 一般都是,但是要是记录比较详细的性能定 ...

  7. API架构的选择,RESTful、GraphQL还是gRPC

    hi,我是熵减,见字如面. 在现代的软件工程中,微服务或在客户端与服务端之间的信息传递的方式,比较常见的有三种架构设计的风格:RESTful.GraphQL和gRPC. 每一种模式,都有其特点和合适的 ...

  8. 在DevExpress中使用BandedGridView表格实现多行表头的处理

    在之前较早随笔中介绍过实现多行表头的处理,通过手工创建字段以及映射数据源字段属性的方式实现,有些客户反映是否可以通过代码方式更方便的创建对应的处理操作,因此本篇随笔继续探讨这个多行表头的处理的操作,使 ...

  9. Android failed linking file resources.

    今天在配置一个app 的启动资源文件时老是提示error: failed linking file resources. 且转悠半天这个提示太难定位错误的范围了,最后发现旁边的一个图标,鼠标移入tit ...

  10. Netty实战(三)

    目录 一.Channel.EventLoop 和 ChannelFuture 1.1 Channel 接口 1.2 EventLoop 接口 1.3 ChannelFuture 接口 二.Channe ...