SPI的学习

news/2024/10/23 4:17:14/

工作原理

SPI的工作原理基于主从架构。主设备通过四条主要信号线与一个或多个从设备进行通信:

  1. MOSI(主输出,从输入)DI(Master Output Slave Input):主设备发送数据到从设备。
  2. MISO(主输入,从输出)DO(Master Input Slave Output):从设备发送数据到主设备。
  3. SCLK(时钟信号):由主设备生成的时钟信号,用于同步数据传输。
  4. SS(从选择)(Slave Select):选择特定的从设备进行通信。

同步,全双工
支持总线挂载多设备(一主多从) 

在数据传输时,主设备首先激活从设备的SS线,然后通过SCLK发送时钟脉冲,数据在每个时钟脉冲的上升或下降沿被发送和接收。这样,主从设备可以实现高效的全双工通信。

硬件电路

所有SPI设备的SCK、MOSI、MISO分别连在一起
主机另外引出多条SS控制线,分别接到各从机的SS引脚
输出引脚配置为推挽输出,输入引脚配置为浮空或上拉输入

SPI时序基本单元 

起始条件:SS从高电平切换到低电平
终止条件:SS从低电平切换到高电平

交换一个字节(模式0
CPOL=0:空闲状态时,SCK为低电平
CPHA=0:SCK第一个边沿移入数据,第二个边沿移出数据

SPI时序

发送指令

向SS指定的设备,发送指令(0x06)

SCK下降沿,将数据移出,主机将数据移出到MOSI,MOSI变化电平,要在上升沿前完成变化,SCL上升沿数据采样输入(SCK低电平是变化的时期,高电平是读取时期) 
主机用0x06换来了从机的0xFF

注意:下降沿变化电平,上升沿收集变化的电平

指定地址写

向SS指定的设备,发送写指令(0x02) 
随后在指定地址(Address[23:0])下,写入指定数据(Data)

 

指定地址读

向SS指定的设备,发送读指令(0x03),      随后在指定地址(Address[23:0])下,读取从机数据(Data)


http://www.ppmy.cn/news/1541226.html

相关文章

idea中,git提交时忽略某些本地修改.将文件从git暂存区移除

我们有时候在本地调试代码时,某些配置文件需要修改成本地环境中。当改完后,需要提交代码时,这些文件又不能推到git上。如下图: 当出现这种情况,我们每次都需要手动去将不需要提交的文件的对号去掉。文件多了后&#x…

[Linux网络编程]01-网络基础

此部分为《计算机网络》理论基础,可简要了解 一.计算机网络体系结构 常见的体系结构 OSI体系结构(法律上的国际标准):物理层->数据链路层->网络层->运输层->会话层->表示层->应用层 TCP/IP体系结构(事实上的国际标准):…

3184. 构成整天的下标对数目 I

3184. 构成整天的下标对数目 I 给你一个整数数组 hours&#xff0c;表示以 小时 为单位的时间&#xff0c;返回一个整数&#xff0c;表示满足 i < j 且 hours[i] hours[j] 构成 整天 的下标对 i, j 的数目。 整天 定义为时间持续时间是 24 小时的 整数倍 。 例如&#xff0…

【计网】理解TCP全连接队列与tcpdump抓包

希望是火&#xff0c;失望是烟&#xff0c; 生活就是一边点火&#xff0c;一边冒烟。 理解TCP全连接队列与tcpdump抓包 1 TCP 全连接队列1.1 重谈listen函数1.2 初步理解全连接队列1.3 深入理解全连接队列 2 tcpdump抓包 1 TCP 全连接队列 1.1 重谈listen函数 这里我们使用…

JMeter 中两大高级线程组的区别与应用

一、JMeter 中的高级线程组概述 最近群里的测试小伙伴在问在 JMeter 中&#xff0c;“jpgc - Ultimate Thread Group”和“jpgc - Stepping Thread Group 阶梯加压”有哪些区别和实际应用场景有哪些&#xff1f;所以这里也跟大家分享一下 JMeter 作为一款强大的性能测试工具&a…

机器学习核心:监督学习与无监督学习

个人主页&#xff1a;chian-ocean 文章专栏 监督学习与无监督学习&#xff1a;深度解析 机器学习是现代人工智能的核心支柱&#xff0c;已广泛应用于从数据挖掘到计算机视觉再到自然语言处理的诸多领域。作为机器学习最主要的两大类型&#xff0c;监督学习&#xff08;Super…

十一、【智能体】一键生成文章!秒懂!一篇搞定智能体工作流核心操作,轻松上手!效率飙升N倍!

工作流 是扣子的核心&#xff0c;所有的业务都会在工作流中进行呈现。 简单来说呢&#xff0c;扣子中的工作流就像是一个有步骤的任务流程。 工作流就是把一个大任务分成一个个小的步骤&#xff0c;每个步骤都有特定的事情要做&#xff0c;而且这些步骤是有先后顺序的。 这样…

【leetcode|哈希表、动态规划】最长连续序列、最大子数组和

目录 最长连续序列 解法一&#xff1a;暴力枚举 复杂度 解法二&#xff1a;优化解法一省去二层循环中不必要的遍历 复杂度 最大子数组和 解法一&#xff1a;暴力枚举 复杂度 解法二&#xff1a;贪心 复杂度 解法三&#xff1a;动态规划 复杂度 最长连续序列 输入输…