嵌入式开发SPI基本介绍与应用

news2024/11/13 11:12:25

目录

#SPI通信协议

#SPI基础概念

#SPI通信模式         

#SPI通信时序类型


                前言:本篇笔记参考嘉立创的开发文档,连接放在最后。

#SPI通信协议

#SPI基础概念

        Serial Peripheral Interface  缩写SPI  翻译:串行外设接口  同步串行通信协议(数据线上的数据帧是bit为单位传输,一条传输数据线),的一种 高速 全双工(A B 双方可以同时发送信息 像vx聊天软件) 同步的通信总线,支持一主多从 (一个主设备多个从设备但这种通信方式通常用在短距离通信 。

        在通信的过程中,主设备是通信的发起方控制方,从设备只能接受响应主设备的命令还有传输的数据,通过使用片选信号来选择与指定的的从设备进行通信。

        SPI通信方式,硬件连接通过四根线,SCLK   MOSI  MISO  CS  通过这四根线,连接主机跟从机,所以当我们看到用的模块上有  SCLK  MOSI  MISO  CS  这四根引脚,就能反过来确定模块使用的是SPI通信方式

        SPI这种通信方式通常应用在 存储芯片 EEPROM  SRAM  SD卡使用SPI通信,读写存储芯片里面的数据到主控制器,还有 OLED屏幕  LCD屏幕 也是用SPI通信,大部分LCD屏幕使用的是并口通信。

通信线

说明

SCLK

时钟线,也叫做SCK。由主机产生时钟信号,使用相同时钟,同步通信协议

MOSI

master output slave input    主设备输出从设备输入线,也叫做SDO。意为主机向从机发送数据。

MISO

master input slave output  主设备输入从设备输出线,也叫做SDI。意为主机接收从机的数据。

CS

片选线,也叫做NSS。从机使能信号,由主机控制。当我们的主机控制某个从机时,需要将从机对应的片选引脚电平拉低或者是拉高,就代表选择对应的从机。

       SPI这种通信方式跟IIC一样,是分软件SPI硬件SPI的,下面进行相关介绍,一般模块之间使用SPI通信也是通过,软件SPI进行通信,传输数据,硬件SPI对于初学者来说,了解即可

        软件SPI:通过软件程序,控制GPIO引脚去模拟,SPI通信 收发数据  起始  结束的通信时序,完成SPI通信,这种方式效率没有硬件SPI 高,但是大多数只要支持GPIO的开发板上就能使用SPI进行通信,局限性没有那么大,相对于硬件SPI来讲。

        硬件SPI:通过MCU芯片内部集成 电路  控制寄存器 来控制SPI通信时序单元,这种通信方式依靠芯片内部集成的电路,如果芯片内部没有集成,这种通信电路,就不能进行通信。初次之外硬件SPI通信支持 中断  DMA  硬件缓冲区  高速传输。

                   

#SPI通信模式         

        SPI 一对一通信:这里SS代表的就是CS片选信号一样的,连接方式如下图所示,这种通信方式主机能控制的CS片选信号只有一个。

        SPI 一对多通信:这个时候主设备通过片选信号(CS),选择需要通信的从机时钟线的连接保证这主设备和从设备之间,能够同步传输数据,通过选择不同的片选信号(CS),能够与不同的从机进行通信

           

#SPI通信时序类型

           SPI协议传输规则,通过时钟极性(CKPL)相位(CKPH),分别控制,时钟极性(CKPL)和相位(CKPH)控制了时钟电平还有数据采样方式。

时钟极性(CKPL)特性:

        CKPL = 0:时钟信号在空闲状态(没有传输数据)下是低电平。

        CKPL = 0:时钟在空闲状态(没有传输数据)下是高电平。   

        总结:CKPL(时钟极性)这个表示位,用来控制时钟信号在空闲状态下的电平。    

时钟相位(CKPH)特性:

         CKPH = 0:数据采样发生在时钟变化的第一个边沿,数据更新发生在第二个边沿

         CKPH = 0:数据更新发生在第一个时钟变化边沿,采样发生在第二个时钟边沿。

        总结:CKPH(相位)这个标志位,用来定义数据采样更新发生在时钟信号的那一个边沿上。

        上面的 采样 更新 可以近似成从机接受数据 主机或从机发送下一个 位(bit)数据帧,通过选择这两个标志位,可以组合成四种SPI通信的模式,去进行通信下面分别介绍。

SPI通信方式0:

        时钟极性 (CKPL = 0):空闲状态下时钟电平默认为为第电平。

        相位(CKPH = 0):数据采样发生在时钟变化的第一个边沿,更新发生在第二个边沿。

SPI通信方式1:

        时钟极性 (CKPL = 0):空闲状态下默认为低电平。

        相位(CKPH = 1):数据更新发生在时钟变化第一个边沿,数据采样发生在第二个边沿。

SPI通信方式2:

        时钟极性(CKPL= 1):时钟总线空闲状态下默认为高电平。

       相位(CKPH = 0):数据采样发生在时钟变化第一个边沿,数据更新发生在第二个边沿。

SPI通信方式3:

        时钟极性(CKPL = 1):时钟总线默认状态下为高电平。

        相位(CKPH = 1):数据更新发生在第一个时钟边沿,数据采样发生在随后的边沿。

        这张图里面的CPOL是时钟极性  SPHA是相位,顺着虚线可以看到下面的MOSI  和MISO  这个图是不同SPI模式的不同时序图片。

‌⁠​​⁠​​‍​​​​‬​​​​⁠⁠‍​‬‍​​‍​​​​​​‌‬⁠‬​​‌​​【立创·天空星STM32F407VET6】入门手册 - 飞书云文档 (feishu.cn)

                 欢迎指正,希望对你,有所帮助!!!

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

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

相关文章

运维系列.Nginx配置中的高级指令和流程控制

运维专题 Nginx配置中的高级指令和流程控制 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/…

镭速实现大文件传输软件预览功能

在当前的数字时代,大文件传输软件成为了提高工作效率和文件管理便捷性的关键工具。镭速作为其中的一员,以其独特的功能和优势,为用户提供了多样化的文件预览和传输解决方案。 目前镭速支持对文档格式文件,一般图片格式及视频格式…

非比较排序 计数排序

1.核心思路 首先要找出max 和 min,最大值 - 最小值 1,就可以计算出数据在什么范围然后创建计数数组大小,a[i] - min 在数组的相对位置计数 通过自然序列排序然后把计数好的值,按照顺序依次放回原数组即可 动图解释,其…

Nettyの源码分析

本篇为Netty系列的最后一篇,按照惯例会简单介绍一些Netty相关核心源码。 1、Netty启动源码分析 代码就使用最初的Netty服务器案例,在bind这一行打上断点,观察启动的全过程: 由于某些方法的调用链过深,节约篇幅&#xf…

Nuxt框架中内置组件详解及使用指南(二)

title: Nuxt框架中内置组件详解及使用指南(二) date: 2024/7/7 updated: 2024/7/7 author: cmdragon excerpt: 摘要:“本文详细介绍了Nuxt 3中和组件的使用方法,包括组件的基本概念、属性、自定义属性、获取引用以及完整示例&a…

利用redis Zset实现 排行榜功能 配合xxl-job持久化每一个赛季的排行榜

zset 可以排序 使用xxl-job实现定时任务 对历史排行榜持久化到数据库 排行榜有当前赛季排行版和历史排行榜 当前赛季排行榜利用redis 中的SortSet 数据结构 获取 每个月的 月初 利用xxl-job的定时任务持久化化上一个月的排行榜信息 并删除redis中的数据 当排行榜数据量巨大时…

【技术追踪】GeCA:高分辨率医学图像合成的神经元胞扩散(MICCAI-2024)

扩散方法与传统方法相结合,挺有意思~ 本文提出一种称为生成式元胞自动机 (Generative Cellular Automata,GeCA) 的新模型系列,其灵感来自于生物体从单细胞进化而来的过程,显著提高了11 种不同眼科疾病分类任务的表现。 论文&#…

k8s 部署 springboot 项目内存持续增长问题分析解决

写在前面 工作中遇到,请教公司前辈解决,简单整理记忆博文内容涉及一次 GC 问题的分析以及解决理解不足小伙伴帮忙指正 😃,生活加油 99%的焦虑都来自于虚度时间和没有好好做事,所以唯一的解决办法就是行动起来,认真做完…

ES7210高性能四通道音频ADC转换模拟麦克风为IIS数字咪头

特征 高性能多位 Delta-Σ 音频 ADC 102 dB 信噪比 -85 分贝 THDN 24 位,8 至 100 kHz 采样频率 I2S/PCM 主串行数据端口或从串行数据端口 支持TDM 256/384Fs、USB 12/24 MHz 和其他非标准音频系统时钟 低功耗待机模式 应用 麦克风阵列 智能音箱 远场语音捕获 订购…

npm安装完yarn还是用不了?

前言 解决 找到你的包全局安装目录 复制路径,配置到Path全局环境变量 结果 不过发现在idea里还是用不了,此时你会想,这什么烂贴,没一点屁用 不过在重启idea之后,你也许就不会这么想了

【网络安全】实验五(身份隐藏与ARP欺骗)

一、本次实验的实验目的 (1)了解网络攻击中常用的身份隐藏技术,掌握代理服务器的配置及使用方法 (2)通过实现ARP欺骗攻击,了解黑客利用协议缺陷进行网络攻击的一般方法 二、搭配环境 打开三台虚拟机&#…

本地多卡(3090)部署通义千问Qwen2-72B大模型提速实践:从龟速到够用

最近在做文本风格转化,涉及千万token级别的文本。想用大模型转写,在线的模型一来涉及数据隐私,二来又不想先垫钱再找报销。本地的7-9B小模型又感觉效果有限,正好实验室给俺配了4卡3090的机子,反正也就是做个推理&#…

掌握MySQL基础命令:数据表结构修改详细操作

MySQL数据表(Table)是MySQL数据库中存储数据的基本结构单元。简单来说,数据表可以被看作是一个二维的、由行(Row)和列(Column)组成的表格,其中每一行代表了一个记录(Reco…

微服务的分布式事务解决方案

微服务的分布式事务解决方案 1、分布式事务的理论模型1.1、X/Open 分布式事务模型1.2、两阶段提交协议1.3、三阶段提交协议 2、分布式事务常见解决方案2.1、TCC补偿型方案2.2、基于可靠性消息的最终一致性方案2.3、最大努力通知型方案 3、分布式事务中间件 Seata3.1、AT 模式3.…

数据跨境法案:美国篇上

近年来随着全球数字化的加速发展,数据已成为国家竞争力的重要基石。在这样的背景下,中国软件和技术出海的场景日益丰富。本系列邀请到在跨境数据方面的研究人员针对海外的数据跨境政策进行解读。 本期将针对美国对数据跨境流动的态度和政策进行阐释。过…

基础权限存储

一丶要求 建立用户组shengcan,其id为 2000建立用户组 caiwu,其id 为2001建立用户组 jishu,其id 为 2002建立目录/sc,此目录是 shengchan 部门的存储目录,只能被 shengchan 组的成员操作4.其他用户没有任何权限建立目录/cw,此目录…

两个全开源的3D模型素材下载网站源码 3D图纸模型素材 三维图形素材会员下载站源码

今天推荐两个全开源的3D模型素材下载网站源码 3D图纸模型素材 三维图形素材会员下载站源码,这两个源码完整,都是基于thinkphp内核开发的,框架稳定,带数据库,源码文件,可以直接部署使用。 第一个&#xff1a…

数据库课设---学生宿舍管理系统(sql server+C#)

1.引言 1.1 内容及要求 设计内容:设计学生宿舍管理系统。 设计要求: (1)数据库应用系统开发的需求分析,写出比较完善系统功能。 (2)数据库概念模型设计、逻辑模型设计以及物理模型设计。 …

【基于R语言群体遗传学】-10-适应性与正选择

在之前的博客中,我们学习了哈代温伯格模型,学习了Fisher模型,学习了遗传漂变与变异的模型,没有看过之前内容的朋友可以先看一下之前的文章: 群体遗传学_tRNA做科研的博客-CSDN博客 一些新名词 (1&#xf…

AI绘画Stable Diffusion【图生图教程】:图片高清修复的三种方案详解,你一定能用上!(附资料)

大家好,我是画画的小强 今天给大家分享一下用AI绘画Stable Diffusion 进行 高清修复(Hi-Res Fix),这是用于提升图像分辨率和细节的技术。在生成图像时,初始的低分辨率图像会通过放大算法和细节增强技术被转换为高分辨…