SPI通信协议SPI通信外设

news2024/10/7 10:14:16

目录

SPI 介绍

硬件电路

移位示意图

 软件SPI

SPI时序基本单元

 SPI时序​编辑

W25Q64 

硬件电路

W25Q64框图

Flash操作注意事项

指令集 

硬件SPI

SPI框图

 主模式全双工连续传输

非连续传输 


SPI 介绍

硬件电路

推挽输出,高低电平都有很强的驱动能力,使得上升沿和下降沿都很迅速。 

 当ss为高电平时,MISO默认为高阻态(高阻态相当于引脚断开,不输出任何电平)为了防止多个MISO冲突

移位示意图

SPI通信的基础是交换一个字节 

上升沿()移出,下降沿()移入。

 软件SPI

SPI时序基本单元

起始终止

CPOL时钟极性(决定空闲状态SCK的电平),CPHA时钟相位(决定第一个时钟采样移入还是第二个时钟采样移入).组合起来有4种模式.

如果想交换多个字节,SS继续为低电平

 SPI时序

W25Q64 

硬件电路

W25Q64框图

  • 主要有四个部分:Flash空间的划分、SPI控制逻辑、状态寄存器、256字节页缓冲区。

 整个存储空间,首先划分为若干块,对于每一块划分为若干扇区。对于整个存储空间,会划分为若干页,每一页256kb

所以一页内的地址取决于最低一个字节,高位两个字节对应页地址前两个字节进入页地址锁存器里,最后一个字节进入字节地址锁存器里。页地址通过写保护和行解码来选择哪一页,字节地址通过列解码和256字节页缓存进行指定地址读写操作。

256字节页缓冲区是一个256字节RAM存储器

Flash操作注意事项

擦除按最小擦除单元扇区(4kb)

指令集 

硬件SPI

软件SPI是通过手动翻转电平来实现时序。硬件SPI使用stm32内部的SPI外设实现时序

串口USART是低位先行,SPI和I2C是高位先。

时钟频率:SP1挂载在APB2,频率是72MHZ,SOI2挂载在APB1频率32MHZ。 

SPI框图

大致流程: 发送数据先写入TDR,然后转入移位寄存器发送,发送的同时接收数据,将接收到的数据转到RDR,将数据从RDR读出。

 

 主模式全双工连续传输

效率高

非连续传输 

可以大致分为四步:等待 TXE为1,写入发送的数据至TDR,等待RXNE为1,读取RDR接收的数据。

非连续传输没有及时把下一个数据在TDR候着,所以在字节与字节之间会产生间隙,当频率低时,影响不大,但当频率高时会产生较大影响。

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

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

相关文章

基于Python数据分析的详细讲解+实战(含代码)

名字:阿玥的小东东 学习:Python、C/C 主页链接:阿玥的小东东的博客_CSDN博客-python&&c高级知识,过年必备,C/C知识讲解领域博主 目录 载入数据集 数据预处理 探索性数据分析 发现相关性 开发模型 模型部署 Python数据分析代码实…

Vue基础(一)

前言: Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。 …

【Vue2.0源码学习】内置组件篇-keep-alive

文章目录 1. 前言2 用法回顾3. 实现原理propscreateddestroyedmountedrender 4. 生命周期钩子5. 总结 1. 前言 <keep-alive> 是 Vue 实现的一个内置组件&#xff0c;也就是说 Vue 源码不仅实现了一套组件化的机制&#xff0c;也实现了一些内置组件&#xff0c;关于<k…

区块链系统探索之路:比特币核心的编译和探索

前几节我们研究了椭圆曲线&#xff0c;有限域等比特币和区块链所依赖的底层算法。问题在于这些算法不是独立存在&#xff0c;而是作为模块嵌入到整个区块链的体系之中。因此不了解区块链的体系组成或应用场景&#xff0c;那么我们就很难理解这些算法衍生出来的概念或者基于他们…

【硬件1】platform/i2c总线

文章目录 1.platform总线&#xff1a;相对于USB/PCI/I2C/SPI等物理总线来说&#xff0c;platform总线是一种虚拟的总线&#xff0c;实际并不存在&#xff0c;总线的工作就是就是完成总线下的设备和驱动之间的匹配。也就是在左手中找到与右手相匹配的设备驱动&#xff0c;并完成…

基于Java+Springboot的智能图书馆座位管理系统设计和实现

博主介绍&#xff1a;擅长Java、微信小程序、Python、Android等&#xff0c;专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3fb; 不然下次找不到哟 Java项目精品实战案例…

MySQL实战解析底层---为什么只查一行的语句,也执行这么慢

目录 前言 第一类&#xff1a;查询长时间不返回 第二类&#xff1a;查询慢 前言 一般情况下&#xff0c;如果说查询性能优化&#xff0c;首先会想到一些复杂的语句&#xff0c;想到查询需要返回大量的数据但有些情况下&#xff0c;“查一行”&#xff0c;也会执行得特别慢这…

第11讲:BootService 核心实现解析,Agent 的“地基”原来是这样的

之前介绍了 ServiceManager 加载并初始化 BootService 实现的核心逻辑。下图展示了 BootService 接口的所有实现类&#xff0c;本课时将深入分析这些 BootService 实现类的具体逻辑&#xff1a; 网络连接管理 在前面的介绍中提到 SkyWalking Agent 会定期将收集到的 JVM 监控和…

基于Java+Swing实现雷电小游戏

基于JavaSwing实现雷电小游戏 一、系统介绍二、功能展示三、其他系统四、获取源码 一、系统介绍 基于java的雷电游戏基本功能包括&#xff1a;敌方飞机随机飞行、我方飞机手动控制飞行&#xff0c;射击比拼&#xff0c;游戏闯关等。本系统结构如下&#xff1a; &#xff08;1&…

Java中线程的创建与使用、Thread类的常用方法

1、什么是进程与线程 1.1 含义 1.1.1 进程 进程是指正在运行的程序的实例。在操作系统中&#xff0c;一个进程代表了一个正在执行的程序&#xff0c;它包括了程序的代码、数据以及程序执行时所需要的系统资源。 最直观的就是我们任务管理器&#xff1a; 任务管理器中的每一…

Centos7安装和配置Mysql5.7

第一步&#xff1a;获取mysql YUM源 进入mysql官网获取RPM包下载地址&#xff0c;下面就是mysql5.7的Yum仓库的rpm包&#xff1a; mysql5.7链接地址&#xff1a; https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm 第二步&#xff1a;下载和安装mysql…

卷福的十年同学会

1.一通电话 某个上班日的午休时间里&#xff0c;小卷正趴在办公桌玩着手机准备睡一会&#xff0c;“叮咚”&#xff0c;一条微信消息弹出来&#xff0c;是大学的班群消息。 “五一期间大家来学校聚一下吧&#xff0c;今年是我们成为同学的十年了&#xff0c;大家提前报名哦&a…

Qt设置软件启动动画(支持图片和视频俩种方式)

目录 软件启动动画效果静态背景动态背景 程序启动动画QSplashScreen启动时加载静态图片启动时加载视频动画将启动动画置于所有窗口顶层 软件启动动画效果 先来看效果。下面录制了加载图片和gif动图的俩种效果。 静态背景 动态背景 这里我加载了一个gif的动图&#xff0c;你也…

AMBA AHB的burst termination

前言 在AMBA AHB协议中&#xff0c;AHB master可以用burst传输连续取多笔数据。AHB定义了4、8和16拍的burst传输、未定义长度的burst传输和单次传输。Burst传输中支持incrementing和wrapping。 Incrementing burst用于访问顺序的memory地址&#xff0c;burst中每个拍的地址都…

数据压缩的常用手段以及方法

0. 简介 之前我们在《经典文献阅读之–R-PCC(基于距离图像的点云压缩方法)》中提到了&#xff0c;我们可以通过一些算法层面来完成数据的压缩&#xff0c;而其实更简单或者说更直接的方法就是使用half这种形式来完成数据压缩。 1. half和float Half是用16位表示浮点数的一种…

什么是 FL Studio?2023年最新版 FL Studio21.0.3.3517中文版图文安装教程

什么是 FL Studio&#xff1f; FL Studio 是一个数字音频工作站 (DAW)。该软件借助各种编辑工具、插件和效果&#xff0c;让您可以录制、混音和掌握高度复杂的音乐作品。FL Studio 还允许您注册和编辑 MIDI 文件&#xff0c;您可以在众多可用乐器之一上演奏这些文件。FL Studi…

树莓派 python3.9降级为python3.7

今天烧录了一个官方烧录器中的最新的镜像&#xff0c;打开之后python的版本是3.9的&#xff0c;之前做的一些东西都是基于python3.7的&#xff0c;再重新架构十分麻烦&#xff0c;于是干脆就把python3.9进行降级&#xff0c;降为python3.7. 这个镜像不像之前的一些镜像&#x…

通用商城项目(上)

通用型产品&#xff08;电商&#xff09;发布解决方案落地实现&#xff08;基于分布式微服务技术栈&#xff1a; SpringBootSpring CloudSpring Cloud Alibaba VueElementUl MyBatis-Plus MySQL Git Maven Linux Nginx Docker 前后端分离&#xff09; 项目技术栈和前置技术 项…

【软件设计师暴击考点】操作系统知识高频考点暴击系列【一】

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;软件…

Web网页制作-知识点(1)——HTML5介绍、HTML5的DOCTYPE声明、HTML基本骨架、标题标签、段落 换行、水平线图片图片路径、超链接

目录 HTML5介绍 HTML5的DOCTYPE声明 HTML基本骨架 标题标签 段落、换行、水平线 图片 图片路径* 超链接 HTML5介绍 HTML5是用来描述网页的一种语言&#xff0c;被称为超文本标记语言。用HTML5编写的文件&#xff0c;后缀以.html结尾 HTML是一种标记语言&#xff0c;标…