SPI的学习

工作原理

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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/897373.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

利用自定义 ref 实现函数防抖

今天来简单介绍一个新的方法,使用自定义 ref 实现函数防抖。 1. 自定义 ref 的来源 自定义 ref 防抖函数来自于前端开发中的两个概念:Vue 的响应式系统 和 数防抖(Debounce)。 1、Vue 响应式系统:Vue 提供了 ref 和…

SQL 干货 | SQL 反连接

最强大的 SQL 功能之一是 JOIN 操作,它提供了一种优雅而简单的方法,将一个表中的每一条记录与另一个表中的每一条记录结合起来。不过,有时我们可能想从一个表中找到另一个表中没有的值。正如我们将在今天的博客文章中看到的,通过包…

爬虫结合项目实战

由于本人是大数据专业,所以准备的是使用pycharm工具进行爬虫爬取数据,然后实现一个可视化大屏 参考项目: 1.医院大数据可视化最后展示 2. 大数据分析可视化系统展示 代码包:

会话管理——Cookie

会话管理在人机交互中扮演着至关重要的角色,它是指保持用户的整个会话活动的互动与计算机系统跟踪过程。以下是对会话管理的简单介绍: 会话主要分为两类:有状态会话(知道对方身份)和无状态会话(不知道对方…

go mod的使用

1. go中包的介绍和定义 包就是很多golang源码的集合,Go语言为我们提供了很多内置包,如fmt、strconv、strings、sort、errors、time、encoding/json、os、io等。 种类:1、系统内置包 2、自定义包 3、第三方包 系统内置包&…

计算机组成原理一句话

文章目录 计算机系统概述存储系统指令系统 计算机系统概述 指令和数据以同等地位存储在存储器中,形式上没有差别,但计算机应能区分他们。通过指令周期的不同阶段。 完整的计算机系统包括,1)软件系统:程序、文档和数据&…

GEE引擎架设好之后进游戏时白屏的解决方法——gee引擎白屏修复

这两天测试GeeM2引擎的服务端,最常见的问题就是点击开始游戏出现白屏,最早还以为是服务端问题,结果是因为升级了引擎,而没有升级NewUI这份文件导致的。解决方法如下: 下载GEE引擎包最新版,(可以…

C++实现精简实用的json解析库

fcjson.h #pragma once#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__) #define _CRT_SECURE_NO_WARNINGS #endif#include <stdint.h> #include <string> #include <vector> #include <map>// VS 将执行字符集指定为…

Jupyter Notebook修改你的默认路径

Jupyter Notebook修改你的默认路径 看到网上一堆抄来抄去的博客&#xff0c;图片和文字都不对应&#xff0c;搞得配置得头昏脑涨的&#xff0c;所以写了这个。 1.打开 Anaconda Prompt 2.输入 jupyter notebook --generate-config&#xff0c;注意提示后输入N&#xff0c;因为…

【K8s】Kubernetes 证书管理工具 Cert-Manager

本文内容均来自个人笔记并重新梳理&#xff0c;如有错误欢迎指正&#xff01; 如果对您有帮助&#xff0c;烦请点赞、关注、转发、订阅专栏&#xff01; 专栏订阅入口 | 精选文章 | Kubernetes | Docker | Linux | 羊毛资源 | 工具推荐 | 往期精彩文章 【Docker】&#xff08;全…

校招基础知识详解——计算机操作系统(内存管理)

文章目录 虚拟内存分页系统地址映射页面置换算法最佳页面置换算法(OPT, Optimal replacement algorithm)先进先出置换算法&#xff08;FIFO, First In First Out&#xff09;最近最久未使用的置换算法&#xff08;LRU, Least Recently Used&#xff09;最不常用算法最近未使用&…

Excel常用操作培训

1 Excel基本操作 1.1 常用快捷键 1.1.1快捷键操作工作簿、工作表 1.1.2快捷键操作 1.1.3单元格操作 1.1.4输入操作 2.1 常见功能描述 2.1.1 窗口功能栏 excel有很多功能可以用&#xff0c;新建文档后&#xff0c;可以最上方&#xff0c;可以看到所有的功能栏目 2.1.2 剪切板…

《YOLO目标检测》—— YOLO v2 详细介绍

&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;未写完&#xff01;&#xff01;&#xff01;&#xff0…

Android中导入讯飞大模型ai智能系统

1.在讯飞大平台申请免费接口(申请后获取url和token) 2.创建一个数据库进行储存对话聊天记录 package com.example.myapplication.XL; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlit…

【SQL】SQL函数

&#x1f4e2; 前言 函数 是指一段可以直接被另一段程序调用的程序或代码。主要包括了以下4中类型的函数。 字符串函数数值函数日期函数流程函数 &#x1f384; 字符串函数 ⭐ 常用函数 函数 功能 CONCAT(S1,S2,...Sn) 字符串拼接&#xff0c;将S1&#xff0c;S2&#xff0…

Mongodb基础用法【总结】

关系型数据库和非关系型数据库的区别 关系型数据库 1.在关系型数据库中&#xff0c;数据都是存储在表中的&#xff0c;对存储的内容有严格的要求 2.因为我们在创建表的时候久已经规定了表中的字段 存储的数据类型 是否为空 唯一标识等规则 3.由于操作的都是结构化的数据&#…

一款.NET开源的i茅台自动预约小助手

前言 今天大姚给大家分享一款.NET开源、基于WPF实现的i茅台APP接口自动化每日自动预约&#xff08;抢茅台&#xff09;小助手&#xff1a;HyggeImaotai。 项目介绍 该项目通过接口自动化模拟i茅台APP实现每日自动预约茅台酒的功能&#xff0c;软件会在指定时间开始对管理的用…

【UE5】将2D切片图渲染为体积纹理,最终实现使用RT实时绘制体积纹理【第六篇-阶段总结篇】

因为马上就要进入下一个阶段&#xff0c;制作动态编辑体积纹理的模块。 但在这之前&#xff0c;要在这一章做最后一些整理。 首先&#xff0c;我们完成没完成的部分。其次&#xff0c;最后整理一下图表。最后&#xff0c;本文附上正在用的贴图 完善Shader 还记得我们之前注…

HBuilder X 中Vue.js基础使用1(三)

一、 模板语法 Vue 使用一种基于 HTML 的模板语法&#xff0c;使我们能够声明式地将其组件实例的数据绑定到呈现的 DOM 上。所有的 Vue 模板都是语法层面合法的 HTML&#xff0c;可以被符合规范的浏览器和 HTML 解析器解析。 英文官网: Vue.js - The Progressive JavaScript Fr…

浪潮云启操作系统(InLinux)bcache缓存实践:理解OpenStack环境下虚拟机卷、Ceph OSD、bcache设备之间的映射关系

前言 在OpenStack平台上&#xff0c;采用bcache加速ceph分布式存储的方案被广泛用于企业和云环境。一方面&#xff0c;Ceph作为分布式存储系统&#xff0c;与虚拟机存储卷紧密结合&#xff0c;可以提供高可用和高性能的存储服务。另一方面&#xff0c;bcache作为混合存储方案&…