单片机学习之SPI

物理层

串行全双工总线

需要四根线:SCLK(时钟线),CS(片选线)、MOSI(主设备输出、从设备输入),MISO(主设备输入,从设备输出)。

片选信号

片选信号CS是用来选择主机与哪一个从机进行通信的信号线。当从机的片选信号为1使能时,主机和谁通信,那根CS线就是高电平,其余CS线为低电平。这样SPI至少需要四根线。

通信过程

先发高位,后发低位(与IIC相同),串口则是先发低位,后发高位。

在时钟线上升沿或者下降沿的时候发送器向数据线发送数据,紧接着的下一个上升沿或者下降沿,接收器从数据线上接收数据(取决于四种模式)

四种模式

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

CPOL表示SCLK空闲时的状态
CPOL=0,空闲时SCLK为低电平

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

CPHA表示采样时刻

CPHA=0,即表示输出(out)端在上一个时钟周期的后沿改变数据,而输入(in)端在时钟周期的前沿(或不久之后)捕获数据。输出端保持数据有效直到当前时钟周期的尾部边缘。对于第一个时钟周期来说,第一位的数据必须在时钟前沿之前出现在MOSI线上。也就是一个CPHA=0的周期包括半个时钟空闲和半个时钟置位的周期。

CPHA=1,即表示输出(out)端在当前时钟周期的前沿改变数据,而输入(in)端在时钟周期的后沿(或不久之后)捕获数据。输出端保持数据有效直到下一个时钟周期的前沿。对于最后一个时钟周期来说,从机设备在片选信号消失之前保持MISO信号线有效。也就是一个CHPA=1的周期包括半个时钟置位和半个时钟空闲的周期。

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

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

相关文章

大模型应用初学指南

随着人工智能技术的快速发展,检索增强生成(RAG)作为一种结合检索与生成的创新技术,正在重新定义信息检索的方式,RAG 的核心原理及其在实际应用中的挑战与解决方案,通用大模型在知识局限性、幻觉问题和数据安…

docker-compose部署prometheus+grafana+node_exporter+alertmanager规则+邮件告警

目录 一.docker-compose文件 二.配置文件 三.文件层级关系,docker-compose和配置文件位于同级目录 四.node_exporter页面json文件 五.效果展示 prometheusalertmanager邮件告警 grafana面板效果 六.涉及离线包 一.docker-compose文件 [rootsulibao prometh…

AI设计再现新引擎,科技创新又添新动能——广东省首家行业AI设计工程中心获批成立

近期,大捷智能科技(广东)有限公司(以下简称“大捷智能”)凭借其在人工智能与智能制造领域的突出研发实力与创新科技成果,由广东省科技厅批准设立“广东省模具智能设计与智能制造工程技术研究中心”。 广东省…

【MongoDB + 向量搜索引擎】MongoDB Atlas 向量搜索 提供全托管解决方案

在代码审计项目中,MongoDB可以用于存储元数据和部分结构化信息,但要高效处理向量相似性搜索,需结合其他工具。以下是具体分析: 1. MongoDB 的适用场景 元数据存储: 存储代码片段的文件路径、行号、语言类型等结构化信…

基于ANSYS 概率设计和APDL编程的结构可靠性设计分析

01 可靠度基本理论 结构的极限状态:整个结构的一部分超过某一特定状态就不能满足设计规定的某一功能要求。结构的极限状态实质上是结构工作状态的一个阀值,如果工作状态超过这一阀值,则结构处于不安全、不耐久或不适用的状态;若工…

CyclicBarrier、Semaphore、CountDownLatch的区别,适用场景

CyclicBarrier、Semaphore 和 CountDownLatch 是 Java 并发包中用于线程协作的工具类,它们虽然都与线程同步相关,但设计目的和使用场景有显著差异。以下是它们的核心区别和典型应用场景: 1. CountDownLatch 核心机制 一次性计数器&#xf…

新能源汽车测试中的信号调理模块:从原理到实战应用

摘要 信号调理模块(Signal Conditioning Module, SCM)是新能源汽车(NEV)测试系统中的关键环节,直接影响数据采集的精度与可靠性。本文面向HIL测试工程师、电机测试工程师及整车动力经济性测试工程师,系统性…

Qt5 Mac系统检查休眠

在开发跨平台应用程序时,有时候我们需要检测系统的状态,比如是否处于休眠或唤醒状态。Qt是一个强大的跨平台应用开发框架,支持多种操作系统,包括Windows、Linux、macOS等。在这个场景下,我们关注的是如何在Qt5.10中检测到系统是否休眠以及在Mac上实现这一功能。本文将深入…

RabbitMQ简单介绍和安装

RabbitMQ简单介绍 一.RabbitMQ介绍二.RabbitMQ的作用1.异步解耦2.流量削峰3.消息分发4.延迟通知 三.RabbitMQ安装(Ubuntu)1.先安装Erlang2.安装RabbitMQ3.安装RabbitMQ的管理界面4.创建虚拟机5.端口号信息 四.工作原理图 一.RabbitMQ介绍 RabbitMQ 是一款…

汇编学习之《call, return指令》

call 指令 call 指令就是调用函数的执行,不过它也是几个指令的组合 第一步通过jmp 函数地址的方式先跳转到函数 第二步通过push 指令将函数地址指令额下一行的指令的地址压入栈中。 我们来验证下 首先打开OllyDbg,导入你的程序,找到一个call 函数&…

接口自动化学习三:参数化parameterize

使用parametrize之前: def add(x,y):return xy class TestAddFunction(object):def test01(self):resadd(2,4)assert 6resdef test02(self):resadd(4,6)assert 10resparametrize参数化之后: import pytest def add(x,y):return xydata[(10,20,30),(200…

全面解析 Mybatis 与 Mybatis-Plus:深入原理、实践案例与高级特性对比

全面解析 Mybatis 与 Mybatis-Plus:深入原理、实践案例与高级特性对比 🚀 前言一、基础介绍 ✨1. Mybatis 简介 🔍2. Mybatis-Plus 简介 ⚡ 二、核心区别与高级特性对比 🔎1. 开发模式与配置管理2. 功能丰富度与扩展性3. 自动填充…

【区块链安全 | 第十九篇】类型之映射类型

文章目录 映射类型可迭代映射 映射类型 映射类型使用语法 mapping(KeyType KeyName? > ValueType ValueName?),映射类型的变量声明使用语法 mapping(KeyType KeyName? > ValueType ValueName?) VariableName。 KeyType 可以是任何内置值类型、bytes、st…

动态循环表单+动态判断表单类型+动态判断表单是否必填方法

页面效果: 接口请求到的数据格式: list: [{demandType: "设备辅助功能要求",demandSettingList: [{id: "1907384788664963074",name: "测试表单",fieldType: 0,contentValue: "",vaildStatus: 0, // 0 非必填&a…

蓝桥杯DFS算法题(java)

最大连通 链接: https://www.lanqiao.cn/problems/2410/learning/ 问题描述 小蓝有一个 30 行 60 列的数字矩阵,矩阵中的每个数都是 0 或 1 。 1100100000111111101010010010011010101110110110111010011111100100000000010100011011000000100101100011…

解锁物种分布模拟新技能:MaxEnt 模型与 R 语言的奇妙融合

技术点目录 第二章、常用数据检索与R语言自动化下载及可视化方法第三章、R语言数据清洗与特征变量筛选第四章、基于ArcGIS、R数据处理与进阶第五章、基于Maxent的物种分布建模与预测第六章、基于R语言的模型参数优化第七章、物种分布模型结果分析与论文写作 —————————…

三轴云台之相机技术篇

一、结构设计 三轴云台通常由空间上三个互相垂直的框架构成,包括内框(俯仰框)、中框(方位框)和外框(横滚框)。这些框架分别负责控制相机的俯仰运动、方位运动和横滚运动,从而实现对目…

全文 - MLIR Toy Tutorial Chapter 3 :高层次上语言特定的分析和变换

使用 C 风格的模式匹配和重写来优化转置运算 使用 DRR 优化 reshape 运算 创建一种贴近输入语言的语义表示的方言,可以在 MLIR 中分析、变换和优化,这些过程中需要用到高级语言的信息,而且通常是在语言的 AST 上执行的这些过程。…

js逆向入门图灵爬虫练习平台 第四题学习

(base64解码)地址:aHR0cHM6Ly9zdHUudHVsaW5ncHl0b24uY24vcHJvYmxlbS1kZXRhaWwvNC8 先找到请求接口带有加密参数: 全局搜索Sign,找到参数生成位置 看到这就一目了然塞,知道参数是怎么构造生成的,不知道这段 JavaScript 代码没关系…

【Flask开发】嘿马文学web完整flask项目第2篇:2.用户认证,Json Web Token(JWT)【附代码文档】

教程总体简介:2. 目标 1.1产品与开发 1.2环境配置 1.3 运行方式 1.4目录说明 1.5数据库设计 2.用户认证 Json Web Token(JWT) 3.书架 4.1分类列表 5.搜索 5.3搜索-精准&高匹配&推荐 6.小说 6.4推荐-同类热门推荐 7.浏览记录 8.1配置-阅读偏好 8.配置 9.1项目…