SPI协议介绍

文章目录

  • 一、硬件连线
  • 二、引脚含义
  • 三、传输示例
  • 四、传输模式

一、硬件连线

在这里插入图片描述

二、引脚含义

引脚含义
DO(MOSI - Master Output Slave Input)主机发数据,从机收数据
DI(MISO - Master Input Slave Output)主机收数据,从机发数据
SCK(Serial Clock)时钟线,由主机控制
CS(Chip Select)片选线,由主机控制
  • MOSI和MISO都使用时,是全双工通信
  • 仅使用MOSI或MISO其中一个,是半双工通信

三、传输示例

CS0:拉低,选中从设备
SCK:每一个时钟周期传输1位
DO:某个周期时的电平状态
在这里插入图片描述

四、传输模式

SPI有四个传输模式,传输模式只与SCK的两个参数有关:

  • CPOL: SCK的初始电平称为CPOL,0是低电平,1是高电平
  • CPHA: SCK的相位称CPHA,也就是数据的传输或采集是在第一时钟沿还是第二时钟沿,0是第一时钟沿,1是第二时钟沿

下表是四个传输模式:

CPOLCPHA模式含义
000CLK初始电平为低电平,在第一个时钟沿采样数据
011CLK初始电平为低电平,在第二个时钟沿采样数据
102CLK初始电平为高电平,在第一个时钟沿采样数据
113CLK初始电平为高电平,在第二个时钟沿采样数据

至于选什么模式,取决于从设备,去看从设备的芯片手册;
常用的模式是0和3,无需关注CLK初始电平,只要在上升沿采集数据就行;

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS4.0系统性深入开发15Want概述

Want概述 Want的定义与用途 Want是对象间信息传递的载体,可以用于应用组件间的信息传递。其使用场景之一是作为startAbility()的参数,包含了指定的启动目标以及启动时需携带的相关数据,如bundleName和abilityName字段分别指明目标Ability所…

linux系统关于nginx服务

nginx服务 nginx服务nginx特点IO多路复用I/O multiplexing【多并发】epoll接收请求的过程异步,非阻塞 nginx 的内部技术架构 nginx服务 nginx特点 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器&#xff0c…

金和OA C6 upload_json 任意文件上传漏洞

产品介绍 金和网络是专业信息化服务商,为城市监管部门提供了互联网监管解决方案,为企事业单位提供组织协同OA系统开发平台,电子政务一体化平台,智慧电商平台等服务。 漏洞概述 金和 OA C6 upload_json接口处存在任意文件上传漏洞,攻击者可以通过构造特殊请求包上…

LTESniffer:一款功能强大的LTE上下行链路安全监控工具

关于LTESniffer LTESniffer是一款功能强大的LTE上下行链路安全监控工具,该工具是一款针对LTE的安全开源工具。 该工具首先可以解码物理下行控制信道(PDCCH)并获取所有活动用户的下行链路控制信息(DCI)和无线网络临时…

三分钟教你学会设置PICO不自动休眠

三分钟教你学会设置PICO不自动休眠 大家经常会有这种困扰吧,“诶,我去倒杯水,怎么屏幕就黑了”或者“啊这个活动怎么要在线看这么久,好想去玩手机”之类的。会出现这种问题是因为PICO将自动休眠的时间设置得非常短,大…

Flink-CEP 实战教程

文章目录 1. 基本概念1.1 CEP 是什么1.2 模式(Pattern)1.3 应用场景 2. 快速上手2.1 引入依赖2.2 入门实例 3. 模式API(Pattern API)3.1 个体模式3.1.1 基本形式3.1.2 量词(Quantifiers )3.1.3 条件&#x…

GBASE南大通用分析型MPP数据库GBase8a的安全特性(2)

GBase南大通用自主研发的 GBase 8a MPP Cluster 产品(简称GBase8a)是大数据时代成熟的分析型MPP数据库,具有多样化的平台选择、与时俱进的逻辑架构、海量数据高效存储、海量数据高速加载、海量数据高性能分析、弹性服务器资源伸缩、完善的系统资源管理、…

Ubuntu18.04 Qt 实现MQTT

什么是MQTT? 作用是什么(适用场景)? 与其他通讯协议相比,优缺点在那里? 一.实现 MQTT 服务器 使用 EMQ X(开源且可视化管理) 下载 EMQX 下载的是 emqx-5.0.26-ubuntu18.04-…

AI Agent落地先行者实在智能:2023人工智能领军者、百强、TOP30揭榜

实在智能连登三榜! 【2023年十佳人工智能行业领军人物】 【2023年度人工智能领域创新企业】 【2023年度最具投资价值企业】 喜大普奔!近期,国内科技行业颇具含金量的三张榜单接连发布,实在智能皆榜上有名,“2023「…

网络编程套接字(Socket)

文章目录 1 重点知识2 预备知识2.1 理解源IP地址和目的IP地址2.2 认识端口号2.3 理解 "端口号" 和 "进程ID"2.4 理解源端口号和目的端口号2.5 认识TCP协议2.6 认识UDP协议2.7 网络字节序 3 socket编程接口3.1 socket 常见API3.2 sockaddr结构 4 简单的UDP网…

RT-Thread基于AT32单片机的485应用开发(三)Modbus从机

RT-Thread中已经有不少Modbus相关在线软件包,但总体应用起来还是相对复杂,所以在RT-Thread基于AT32单片机的485应用开发(二)的基础上实现了一个极简Modbus从机,支持Modbus功能码01,02,03&#x…

Android 车联网——其他Service介绍(十七)

除了前面介绍的 Service 和 Manager 之外,CarService 中还提供了很多其他 Service 和 Manager。 1、CarInputService CarInputService 是一个安卓汽车平台中的服务,它负责处理与车辆输入设备相关的操作,例如处理车辆上的按钮、方向盘控制、触摸屏输入等。该服务允许…

常用工具集合

摘要:更换电脑进行工具迁移,做一个记录。 1、前端 vscode plugins:Chinese (Simplified) (简体中文) Easy Sass: scss编辑生成css文件 Live Server: Launch a local development server with live reload 2、后端 idea 3、移动端 Android …

【Java集合篇】 ConcurrentHashMap在哪些地方做了并发控制

ConcurrentHashMap在哪些地方做了并发控制 ✅典型解析✅初始化桶阶段🟢桶满了会自动扩容吗🟠自动扩容的时间频率是多少 ✅put元素阶段✅扩容阶段🟠 拓展知识仓🟢ConcurrentSkipListMap和ConcurrentHashMap有什么区别☑️简单介绍一…

解决录制的 mp4 视频文件在 windows 无法播放的问题

解决录制的 mp4 视频文件在 windows 无法播放的问题 kazam 默认录制保存下来的 mp4 视频文件在 windows 中是无法直接使用的,这是由于视频编码方式的问题。解决办法: 首先安装 ffmeg 编码工具: sudo apt-get install ffmpeg 然后改变视频的…

BIND DNS 自定义zabbix监控

一、DNS统计计数器 Bind9可以使用rndc stats 命令将相关DNS统计信息存储到工作目录下,默认位置在: statistics-file "/var/named/data/named_stats.txt"; 每当名称服务器执行rndc stats命令,都会统计在统计信息文件最后附加一…

极少数据就能微调大模型,一文详解LoRA等方法的运作原理

原文:极少数据就能微调大模型,一文详解LoRA等方法的运作原理 最近和大模型一起爆火的,还有大模型的微调方法。 这类方法只用很少的数据,就能让大模型在原本表现没那么好的下游任务中“脱颖而出”,成为这个任务的专家…

【Python机器学习】SVM——一些理论知识

向数据中添加非线性特征,可以让线性模型变得强大,但是通常来说我们不知道要添加哪些特征,而且添加许多特征的计算开销会很大。有一种技巧可以在更高维度中学习分类器,而不用实际计算可能非常大的新的数据表示,这种技巧…

第87讲:XtraBackup备份工具的核心技术要点及全库备份、恢复案例

文章目录 1.XtraBackup备份工具的简介2.XBK备份工具的安装3.XBK备份工具的使用语法4.XBK备份前的准备5.使用XBK对全库进行备份5.1.XBK备份全库数据的语法格式5.2.使用XBK进行全库备份5.3.查看XBK备份的数据文件5.4.备份过程中生产的XBK文件 6.模拟故障案例并使用XBK恢复备份的数…

Vue 对象删除没有值的项

在调用后端查询接口时,有的要求参数对象里空值的项不要传,这个时候可以封装一个方法在调用接口前将对象过滤一遍。 1.新建一个名为tools.js的文件,里面放入以下代码 //对象删除没有值的项 export const removePropertyOfNull (obj) > { …