首页 > 其他分享 >SPI通信协议详解

SPI通信协议详解

时间:2024-03-30 21:33:42浏览次数:19  
标签:字节 通信协议 模式 时序 SPI 详解 移位 时钟

文章目录


介绍SPI

SPI由时钟线、主机发送线、主机接收线、从机选择线(一个或多个)组成,拥有高速的速率,使用比较简单,但是需要的线更多,更容易造成资源的浪费。
四根通讯线的命名在不同的地方可能会有差异,需要甄别。
在这里插入图片描述

硬件电路

主机与从机通信线对应,对于多从机发送时,为了避免冲突,当从机的SS高电平(未被选中时)设为高阻态,选中时配置为推挽输出
在这里插入图片描述

移位示意图

SPI的数据收发原理如下:波特率发生器产生一个上升沿,通过时钟线影响,主机与从机的移位寄存器都向左(高位)移位一位,然后把数据保存到对应的数据寄存器中,然后波特率产生下降沿,主机与从机的移位寄存器把数据寄存器的数据取出,依次8次完成一个字节的数据的交换。当想只发送或接收数据,就时另一个移位寄存器发送一个特定的字节当做没有内容即可。
在这里插入图片描述

SPI时序

开始与结束时序单元

数据交换期间ss都为低电平
在这里插入图片描述

交换字节时序单元

可以通过配置CPOL、CPHA来确定这个时序的模式。
MISO的中间高度的线表示高阻态。

模式0(最常用)

这里对比模式1来理解,时钟相位提前,第一个上升沿就要移入数据,所以在时钟线产生上升沿之前就要先移出一位数据,才能在第一个上升沿移入数据,因此在最后一个时钟线下降沿之后要提前把下一个字节的最高位放入,如果是最后一位也要放入一个特定的数据。
在这里插入图片描述

模式1

这个模式与上面移位示意图所讲的时序一致
在这里插入图片描述

模式2

对比与模式0颠倒了时钟线
在这里插入图片描述

模式3

对比与模式1颠倒了时钟线
在这里插入图片描述

发送时序

在这里插入图片描述

指定地址写

由于使用的W25Q64外设内存大,需要指定3个字节的地址
在这里插入图片描述

指定地址读

在这里插入图片描述


标签:字节,通信协议,模式,时序,SPI,详解,移位,时钟
From: https://blog.csdn.net/qq_53922901/article/details/137142038

相关文章

  • 【Docker】使用 Docker 主机启动 Nginx 服务器的步骤详解
    文章目录步骤一:安装Docker步骤二:拉取Nginx镜像步骤三:启动Nginx容器步骤四:访问Nginx服务器步骤五:管理Nginx容器总结在本文中,我们将介绍如何使用Docker在主机上启动Nginx服务器。Nginx是一个高性能的HTTP和反向代理服务器,经常用于托管网站和Web应用。通过Docker,我们可......
  • K8s Pod亲和性、污点、容忍度、生命周期与健康探测详解(中)
    ......
  • python-numpy-常用函数详解
    文章目录一、函数详解np.empty(num_points)np.zeros(shape,dtype=float,order='C')np.tile(A,reps)np.newaxisnp.stack(arrays,axis=0)np.roll(a,shift,axis=None)np.repeat(a,repeats,axis=None)arr.reshape(shape)arr.ravel()np.mean(a,axis=None,dtype=None......
  • Offer必备算法18_栈_五道力扣题详解(由易到难)
    目录①力扣1047.删除字符串中的所有相邻重复项解析代码②力扣844.比较含退格的字符串解析代码③力扣227.基本计算器II解析代码④力扣394.字符串解码解析代码⑤力扣946.验证栈序列解析代码本篇完。①力扣1047.删除字符串中的所有相邻重复项1047.删除字符......
  • 数据在内存中的储存详解
    我们在使用某一个变量时有没有想过这个变量在内存中是如何储存的呢?是我们输入一个十进制的值,内存中就直接储存这个十进制的值,还是别的内容呢?1.整数在内存中的存储我们首先说结论,那就是整数在内存中是以一个二进制补码的方式来存储的。我们以整形int为例,一个整形是4个字节,一......
  • 嵌入式中内存分配-栈区、堆区、全局区、常量区和代码区详解
    一、C语言内存分区C语言内存分区示意图如下:1.栈区栈区介绍栈区由编译器自动分配释放,由操作系统自动管理,无须手动管理。栈区上的内容只在函数范围内存在,当函数运行结束,这些内容也会自动被销毁。栈区按内存地址由高到低方向生长,其最大大小由编译时确定,速度快,但自......
  • 淘宝扭蛋机源码搭建系统详解
    随着互联网技术的飞速发展,电子商务平台的创新层出不穷。淘宝扭蛋机作为一种新型的互动营销工具,逐渐受到了广大商家和消费者的青睐。本文将详细解析淘宝扭蛋机源码搭建系统,帮助读者了解如何搭建一个高效、稳定的扭蛋机系统。一、扭蛋机源码的选择与获取搭建淘宝扭蛋机系统的......
  • 动画图解:九大经典排序算法详解-算法宝App
    重新整理了一遍排序算法,结合自己开发的算法宝App的录屏,转成webp动画一起分享给大家,适合新手。概述时间复杂度(timecomplexity)用来描述算法的运行时间。常用大O符号表述。比如:O(n),O(1),O(logn),O(n2)等。举例:O(n)表示线性级复杂度,表示时间复杂度和元素element数量n成正比。......
  • 【编码器应用】第一节-编码器从从原理到应用详解
    概述:本文内容为常用电机编码器概览,将为您重点介绍编码器大致分类,以及增量编码器与西门子设备的配置连接方式。编码器简介编码器是利用LED光源发出的透射光对码盘进行光电扫描,光电元件接收编码器轴旋转时产生的明暗交替变化,将电机轴的转速和位置转化为电信号反馈给PLC或者驱......
  • 软件心学格物致知篇(2)软件马斯洛需求层次详解
    前言前一篇我结合基于人的马斯洛需求层次理论提出了软件层面的马斯洛需求层次。它的大致模型如下:为了方便理解,模型的每一层名称都沿用了人的马斯洛需求层次中的叫法。但是其每一层具体的含义却不相同。这一篇我会对每一层展开来谈谈,并且在文末提倡大家可以试着用该模型......