SPI总线

2023-05-16

1、spi总线简介:

        SPI(Serial Peripheral Interface)是串行外设接口的缩写,SPl是一种高速的、全双工、同步的串行通信总线;SPl采用主从方式工作,一般有一个主设备和一个或多个从设备;SPI需要至少4根线,分别是MISO(主设备输入从设备输出)、MOSI(主设备输出从设备输入)、SCLK(时钟)、CS(片选)SPl使用引脚较少且布线方便,所以越来越多的芯片集成了这种通信协议;

2、寻址方式

        当主设备要和某个从设备进行通信时,主设备需要先向对应从设备的片选线上发送使能信号(高电平或者低电平,根据从机而定)表示选中该从设备。(从机芯片标有CS,表示高电平有效,CS非,表示低电平有效)

3、通信过程

        SPI总线在进行数据传送时,先传送高位,后传送低位;数据线为高电平表示逻辑‘1’,低电平表示逻辑‘0’;一个字节传送完成后无需应答即可开始下一个字节的传送;SPl总线采用同步方式工作,时钟线在上升沿或下降沿时发送器向数据线上发送数据,在紧接着的下降沿或上升沿时接收器从数据线上读取数据,完成一位数据传送,八个时钟周期即可完成一个字节数据的传送;

        MSB为最高位,BSB为最低位

        若第一个上升沿/下降沿为发送数据时,则下降沿/上升沿为读取数据

4、极性与相位

SPl总线有四种不同的工作模式,取决于极性(CPOL)和相位(CPHA)这两个因素

CPOL表示SCLK(时钟)空闲时的状态

        CPOL=0,空闲时SCLK为低电平

        CPOL=1,空闲时SCLK为高电平

CPHA表示采样时刻

        CPHA=0,每个周期的第一个时钟沿采样

        CPHA=1,每个周期的第二个时钟沿采样

 

 

        需要说明的是,对于一个特定的从设备来说,一般在出厂时就会将其设计为某种特定的工作模式;我们在使用该设备时就必须保证主设备的工作模式和该从设备保持一致,否则是无法进行通信的;所以一般我门需要对主设备的CPOL(极性)和CPHA(相位)进行配置;

5、IIC和SPI的异同

相同点

        1.均采用串行、同步的方式

        2.均采用TTL电平,传输距离和应用场景类似

        3.均采用主从方式工作

不同点

        1.IIC为半双工,SPI为全双工

        2.IIC有应答机制,SPI无应答机制

        3.IIC通过向总线广播从机地址来寻址,SPI通过向对应从机发送使能信号来寻址

        4.IIC的时钟极性和时钟相位固定,SPI 的时钟极性和时钟相位可调

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SPI总线 的相关文章

  • IMX6ULL + SPI LCD(驱动IC ILI9341)显示简单的QT界面

    1 硬件 xff1a 使用正点原子的IMX6ULL Linux开发板 开发板底板原理图版本 xff1a V2 1 核心板原理图版本 xff1a V1 6 LCD xff1a MSP2402 IC ILI9341 2 查找可用引脚 开发板上引
  • STM32的SPI

    1 SPI硬件层共有4个引脚SCK MISO MOSI NSS 不需要接上拉及下拉电阻等 2 SPI跟I2C一样是一种通讯总线 所以可以挂载多个从机 通过NSS片选引脚控制从机 3 SPI主模式时钟与挂载总线相关 STM32时钟为fpclk
  • STM32F407用wk2124芯片编写SPI转四路串口驱动

    目录 引言 一 SPI通信配置 1 GPIO初始化设置 2 SPI参数配置 3 读写函数 4 速度设置 二 WK2124逻辑代码编写 1 片选初始化 2 写寄存器函数 3 读寄存器函数 4 写FIFO函数 5 读FIFO函数 6 WK212
  • SPI通信方式总结

    SPI xff08 Serial Peripheral interface xff09 是一种同步串行传输规范 xff0c 也是单片机外设芯片串行外设扩展接口 xff0c 该接口是一种高速 xff0c 全双工 xff0c 同步的通信总线 x
  • 调试笔记2:SPI+DMA

    一 内容简介 说明 xff1a 关于DMA xff0c SPI的基本知识这里不做介绍 本文只讲述SPI 43 DMA的实现 这里仅实现从外设到内存 从内存到外设也可以参考修改 目的 xff1a 使用STM32作为SPI从机接收数据 xff0
  • UART、I2C、SPI接口常见面试问题总结

    UART 定义 xff1a Universal Asynchronous Receiver Transmitter 通用异步收发传输器 特点 xff1a 速率不快 可全双工 结构上一般由波特率产生器 UART发送器 UART接收器组成 xf
  • 串口通信协议【I2C、SPI、UART、RS232、RS422、RS485、CAN、TTL、USB】

    xff08 1 xff09 I2C 集成电路互连总线接口 Inter IC xff1a 同步串行半双工传输总线 xff0c 连接嵌入式处理器及其外围器件 支持器件 xff1a LCD驱动器 Flash存储器 特点 有两根传输线 xff08
  • STM32—cubeMX+HAL库的SPI接口使用

    摘要 xff1a 本文主要介绍STM32的SPI接口 cubeMX软件配置SPI接口和分析SPI相关代码 STM32之SPI简介 xff1a xff08 1 xff09 SPI协议 Serial Peripheral Interface 串
  • STM32F4 使用SPI读取气压计MS5611的数据并转化为大气压强

    ms5611是同时支持I2C和SPI通信协议的气压计芯片 已经很普遍的被用在飞行器控制板上作为高度传感器 开发过stm32的朋友都知道它的硬件I2C是由bug的 xff0c 一般使用的都是自己编写的软件I2C通信协议 但是其硬件SPI通信却
  • WS2812灯珠(二)-- STM32 SPI+DMA方式驱动

    通过硬件SPI的可以很巧妙的模拟出WS2812的通信时序 xff0c 用spi的8位数据模拟ws281x的一位数据 要将系统时钟设置为56M xff0c SPI分频数设置为8 xff0c 则SPI的通信频率为7M xff0c 1s 7M 1
  • STM32 SPI详解

    目录 1 SPI简介 2 SPI特点 2 1 SPI控制方式 2 2 SPI传输方式 2 3 SPI数据交换 2 4 SPI传输模式 3 工作机制 3 1 相关缩写 3 2 CPOL极性 3 3 CPHA相位 3 4 极性和相位图示 3 5
  • spi通信

    特点 常规四线通信方式 一根片选线 xff0c 一根时钟线 xff0c 两根数据线 xff1a 一根是主进从出线 xff0c 一根主出从入线 同步 xff0c 全双工 xff0c 通信方式 和谁通信就将谁的片选线拉低 xff0c 每增加一个
  • UART,SPI,IIC,RS232通信时序和规则

    一 UART 1 串口通信方式 2 串口通信步骤 注意 xff1a 串口协议规定 xff0c 闲置时必须是高电平 校验位 xff1a 是使用奇偶校验 停止位必须高电平 一个0和多个0区分是靠掐时间 异步通信 xff1a 时钟各不一样 二 I
  • RT-Thread记录(十六、SFUD组件 — SPI Flash的读写)

    从本文开始 测试学习一些 RT Thread 常用的组件与软件包 先从刚学完的 SPI 设备开始 目录 前言 一 SFUD 组件简介 1 1 基本简介 1 2 SFUD 对 Flash 的管理 二 SFUD 组件操作函数 2 1 初始化相关
  • 各种通信接口的简单对比

    对比表 同步方式与异步方式的主要区别在于 是否传输时钟信号 只要是通訊前雙方需要設定相同波特率的 都是異步傳輸方式 异步传输 Asynchronous Transmission 每次异步传输的信息都以一个起始位开头 它通知接收方数据已经到达
  • SPI接口详细介绍

    1 概述 SPI Serial Peripheral Interface 是串行外围设备接口 是一种高速 全双工 同步的通信总线 常规只占用四根线 节约了芯片管脚 PCB的布局省空间 现在越来越多的芯片集成了这种通信协议 常见的有EEPRO
  • SD卡系列之---SD初始化(SPI)

    SD卡分为SDIO模式与SPI模式 SDIO模式使用SD总线协议 使用4根数据线进行数据传输 SPI使用1收1发2根数据线数据传输 理论上SDIO模式会比SPI模式速度快4倍 但SDIO模式还牵扯到CRC校验位的计算 所以 如果使用CPU有
  • Linux,spidev:为什么它不应该直接在设备树中?

    我想定义一个具有用户模式访问权限的 SPI 设备 如中所述http linux sunxi org SPIdev 按照这些示例 我在设备树中添加了以下内容 ecspi1 other stuff mydev 0 compatible spid
  • SPI 电子墨水显示屏与 PIC 18F46K22 连接时出现问题

    我正在使用一个图18F46K22 https ww1 microchip com downloads en DeviceDoc 40001412G pdf在 SPI 主模式下与Waveshare 1 54 电子纸模组 https www w
  • 是什么让 SPI 比 I2C 协议更快 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我了解 I2C 和 SPI 通信的基础知识 因为两者都是同步协议 我想知道是什么让 SPI 比 I2C 更快 如果我没记错的话 使用 I2

随机推荐

  • 可变长度参数的应用方式

    va list 直接函数定义 va list是编译器内嵌的一种函数 typedef builtin va list gnuc va list typedef gnuc va list va list int dbg print const
  • 详解项目中使用dotPeek调试源码

    一 简介 说到 debug 源码 xff0c 许多很多搞开发的小伙伴都会异常的兴奋 xff0c 这也是像上成长的毕竟之路 调试源码方式通常有两种 xff1a 一是有了源代码 xff0c 也有了 pdb 文件 二是借助第三方工具 xff0c
  • 笔记本电脑如何通过HDMI连接屏幕进行投影

    1 使用HDMI xff08 高清多媒体接口 xff0c High Definition Multimedia Interface xff09 连接笔记本电脑 2 在电脑桌面空白处右键点击 显示设置 3 在 多显示器 的下拉列表中选择 复制
  • 一款Java开源的Springboot即时通讯 IM,附源码

    开篇 电商平台最不能缺的就是即时通讯 xff0c 例如通知类下发 xff0c 客服聊天等 今天 xff0c 就来给大家分享一个开源的即时通讯系统 如对文章不感兴趣可直接跳至文章末尾 xff0c 有获取源码链接的方法 但文章内容是需要你简单的
  • dpkg 命令使用说明

    dpkg是一个debian包管理工具 能够对包进行安装 卸载 获取信息等操作 用法 xff1a 安装 xff08 解包并配置 xff09 xff1a dpkg i package file dpkg install package file
  • ubantu开启FTP使用 FileZilla与windows文件互传(图文教程)

    平台 xff1a VMware Workstation 16 Pro iso镜像 xff1a ubuntu 22 04 1 desktop amd64 iso 第一步 xff1a 先打开终端 第二步 xff1a 分别输入下面两条代码 xff
  • 虚拟机Ubuntu20.04安装NVIDIA显卡驱动失败原因

    本来想在ubuntu里使用Tensorflow的GPU版 但是按照一系列操作 xff0c 在处理显卡驱动问题的时候 xff0c 出现下图报错 xff1a 后来查到虚拟机不支持显卡驱动 xff0c 显卡不支持虚拟化 xff0c 所以不能用Te
  • C语言练习:输入一个十进制将其转换成八进制和十六进制

    文章目录 前言一 题意二 代码1 代码的实现2 读入数据 总结 前言 输入一个十进制将其转换成八进制和十六进制本题是在C语言中较为常见的问题 xff01 一 题意 在C环境中输入一个十进制数 xff0c 在结果中第一行输出8进制数第二行输出
  • 本第包含与远程包含--学习篇

    1 什么是文件包含 用一句话来说就是 xff0c 文件包含不是漏洞 xff0c 但是由于对包含进行的文件不可控 xff0c 导致了文件包含漏洞的产生 文件包含分为两种 1 本地文件包含LFI xff08 包含本地文件操控LFI xff09
  • Ubuntu20.04安装Java JDK

    1 官网下载 https www oracle com java technologies downloads java8 根据自己系统配置信息下载对应安装包 xff0c 常见的的Linux系统 xff0c Ubuntu下载后缀为 tar
  • Ubuntu获取文件路径

    1 可视化界面查看 xff08 ctrl 43 L xff09 可视化界面查看ubuntu默认的快捷键是ctrl 43 L xff0c 直接按下快捷键 xff0c 如图路径显示出来了 2 直接在终端输入pwd
  • 关于跨平台 UI 的思考

    一 xff1a 跨平台 xff0c 这里的跨平台 xff0c 指的是 xff1a Windows Linux MacOS IOS Andriod 二 xff1a 跨平台 xff0c 首先大家想到的是 Java 虽然众多平台都支持 Java
  • Ubuntu20.04安装IntelliJ IDEA2022步骤

    1 下载linux版本的idea 链接地址 xff1a IntelliJ IDEA The Capable amp Ergonomic Java IDE by JetBrains 2 解压到自己的路径下 在 usr local 路径下新建安
  • Debian 11 搭建fabric版本1.4的环境

    建议以下所有过程皆在root权限下进行 xff0c 否则在sudo权限切换的过程中会出现很多环境变量的问题 1 搭建Fabric的前置条件 1 1安装GOLANG Debian 11 安装部署 Go 和设置环境变量 1 2安装Docker
  • 如何用脚本自动生成httpd容器

    要用脚本自动生成httpd容器 xff0c 首先需要安装Docker 然后 xff0c 你可以编写一个简单的脚本来创建httpd容器 以下是一个示例脚本 xff1a bin bash 定义变量 name 61 34 my httpd 34
  • 如何用脚本自动生成多个httpd容器

    使用 96 crontab 96 来定时执行脚本 96 crontab 96 是一种在Unix和类Unix系统上自动定时执行命令或脚本的程序 你可以编辑你的 96 crontab 96 文件 xff0c 然后在该文件中添加定时执行脚本的条目
  • Microsoft Visual C++ 14.0 or greater is required的解决方法

    用pip去安装Python第三方库的时候 xff0c 安装不成功 xff0c 遇到问题 xff0c 提示有 error Microsoft Visual C 43 43 14 0 or greater is required Get it
  • ansible安装部署以及常用模块解析使用

    ansible安装部署 1 配置阿里云的eple源 我们使用yum命令安装ansible xff0c 需要阿里云的eple源 阿里云eple源下载地址 也可以通过下面命令获取 epel RHEL 8 centos8版本按照如下配置 1 xf
  • 使用rancher的rke2部署高可用的k8s集群

    目录 1 linux环境初始化及内核调优 xff08 1 xff09 设置主机名 关闭防火墙 配置集群ip映射 关闭selinux xff08 2 xff09 禁用linux的透明大页 标准大页 xff08 3 xff09 禁用swap分区
  • SPI总线

    1 spi总线简介 xff1a SPI xff08 Serial Peripheral Interface xff09 是串行外设接口的缩写 xff0c SPl是一种高速的 全双工 同步的串行通信总线 xff1b SPl采用主从 方式工作