当前位置: 首页 > news >正文

SPI通信协议

一、SPI通信

1、SPI(Serial Peripheral Interface)是由Motorola公司开发的一种通用数据总线

2、四根通信线SCK(Serial Clock)、MOSI(Master Output Slave Input)、MISO(Master Input Slave Output)、SS(Slave Select)

3、同步,全双工

4、支持总线挂载多设备(一主多从

5、硬件电路

(1)所有SPI设备的SCK、MOSI、MISO分别连在一起

(2)主机另外引出多条SS控制线,分别接到各从机的SS引脚

(3)输出引脚配置为推挽输出输入引脚配置为浮空或上拉输入

6、移位示意图

7、SPI时序基本单元

(1)起始条件:SS从高电平切换到低电平

(2)终止条件:SS从低电平切换到高电平

(3)交换一个字节(模式0

        CPOL=0空闲状态时,SCK为低电平

        CPHA=0SCK第一个边沿移入数据,第二个边沿移出数据

        CPOL表示时钟极性

        CPHA表示时钟相位,决定是第一个时钟采样移入还是第二个时钟采样移入

(4)交换一个字节(模式1

        CPOL=0空闲状态时,SCK为低电平

        CPHA=1SCK第一个边沿移出数据,第二个边沿移入数据

(5)交换一个字节(模式2

        CPOL=1空闲状态时,SCK为高电平

        CPHA=0SCK第一个边沿移入数据,第二个边沿移出数据

(6)交换一个字节(模式3

        CPOL=1空闲状态时,SCK为高电平

        CPHA=1SCK第一个边沿移出数据,第二个边沿移入数据

8、SPI时序

(1)发送指令

        向SS指定的设备,发送指令0x06

(2)指定地址写

        向SS指定的设备,发送写指令0x02),      随后在指定地址(Address[23:0])下,写入指定数据(Data)

 

(3)指定地址读

        向SS指定的设备,发送读指令0x03),      随后在指定地址(Address[23:0])下,读取从机数据(Data)

二、W25Q64简介

1、W25Q64简介

(1)W25Qxx系列是一种低成本小型化使用简单非易失性存储器,常应用于数据存储字库存储固件程序存储等场景

(2)存储介质:Nor Flash(闪存)

(3)时钟频率80MHz / 160MHz (Dual SPI) / 320MHz (Quad SPI)

(4)存储容量(24位地址):     

                W25Q40:      4Mbit / 512KByte     

                W25Q80:      8Mbit / 1MByte     

                W25Q16:      16Mbit / 2MByte     

                W25Q32:      32Mbit / 4MByte     

                W25Q64:      64Mbit / 8MByte     

                W25Q128:  128Mbit / 16MByte     

                W25Q256:  256Mbit / 32MByte

2、硬件电路

3、W25Q64框图

4、Flash操作注意事项

(1)写入操作时:

        a.写入操作前,必须先进行写使能

        b.每个数据位只能由1改写为0,不能由0改写为1

        c.写入数据前必须先擦除擦除后,所有数据位变为1

        d.擦除必须按最小擦除单元进行(最小的擦除单元是一个扇区)

        e.连续写入多字节时,最多写入一页的数据超过页尾位置的数据会回到页首覆盖写入

        f.写入操作结束后,芯片进入忙状态不响应新的读写操作

(2)读取操作时:

        a.直接调用读取时序无需使能无需额外操作没有页的限制,读取操作结束后不会进入忙状态,但不能在忙状态时读取

三、软件SPI读写W25Q64

1、按照以下接线方式连接,并将STLINK插到电脑上

2、

四、SPI外设简介

五、硬件SPI读写W25Q64

1、SPI引脚

相关文章:

SPI通信协议

一、SPI通信 1、SPI(Serial Peripheral Interface)是由Motorola公司开发的一种通用数据总线 2、四根通信线:SCK(Serial Clock)、MOSI(Master Output Slave Input)、MISO(Master In…...

【免费Web系列】大家好 ,今天是Web课程的第二一天点赞收藏关注,持续更新作品 !

这是Web第一天的课程大家可以传送过去学习 http://t.csdnimg.cn/K547r 员工管理 1. 条件分页查询 1.1 概述 在页面原型中,我们可以看到在查询员工信息列表时,既需要根据条件动态查询,还需要对查询的结果进行分页处理。 那要完成这个页面…...

【单片机毕业设计选题24007】-基于STM32和阿里云的家庭健康数据监测系统

系统功能: 本课题设计是基于STM32单片机作为控制主体,通过HX711称重模块,HC-SR04超声波测距模块,红外测温,心率传感器等模块通过I2C或SPI接口与STM32进行通信,并读取传感器输出的身高,体重,心率…...

基于微信公众号开发h5的前端流程

1.首先公众号进行配置,必须要https域名 还有个txt文件,有弹框提示需要下载放在服务器上 前端处理code的代码封装 // 微信公众号授权 export function wxAuthorize(calback) {// 非静默授权,第一次有弹框 这里的回调页面就是放在服务器上微信…...

python操作数据库,django操作数据库

安装驱动 pip install mysqlclient工程同名app下的settings.py DATABASES {default: {ENGINE: django.db.backends.mysql,NAME: test,USER: root,PASSWORD: hirain123,HOST: localhost,PORT: 3306,OPTION; {init_command: SET sql_model"STRICT_TRANS_TABLES",}} …...

React框架资源

React框架资源可以从多个方面获取,包括官方文档、教程、书籍、社区等。以下是一些React框架资源的清晰分点和归纳: 官方文档 新官方文档:React在2023年3月发布了全新的官方文档,位于https://react.dev/​。新文档包含教程、指南…...

【数据结构】初识数据结构之复杂度与链表

【数据结构】初识数据结构之复杂度与链表 🔥个人主页:大白的编程日记 🔥专栏:C语言学习之路 文章目录 【数据结构】初识数据结构之复杂度与链表前言一.数据结构和算法1.1数据结构1.2算法1.3数据结构和算法的重要性 二.时间与空间…...

word怎么单页横向设置(页码不连续版)

打开word,将光标放在第一页的最后位置。 然后点击布局下的分隔符,选择下一页。 将光标放在第二页的开头,点击布局下的纸张方向,选择横向即可。 效果展示。 PS:如果那一页夹在两页中间,那么在…...

搭建 Tomcat 集群【Nginx 负载均衡】

当我们想要提高后端服务器的并发性能,可以通过分配更多的资源给 Tomcat 服务器,但是这只能提高一部分的性能。因为每台 Tomcat 的服务器是有最大连接数为 200.所以即可拥有无穷无尽的内存,也会因为单台 Tomcat 的原因而无法发挥这些资源的最大…...

深入理解指针(二)

目录 1. 数组名的理解 2. 使用指针访问数组 3. ⼀维数组传参的本质 4. 冒泡排序 5. 二级指针 6. 指针数组 7. 指针数组模拟二维数组 1. 数组名的理解 有下面一段代码: #include <stdio.h> int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };int* p &arr[…...

【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt窗口 | 标准对话框 | 文件对话框QFileDialog 文章编号&#xff1a;Q…...

换卡槽=停机?新手机号使用指南!

刚办理的手机号莫名其妙的就被停用了&#xff1f;这到底是怎么回事&#xff1f;这篇文章快来学习一下吧。 ​ 先说一下&#xff0c;你的手机为什么被停机&#xff1f; 现在运营商对于手机卡的使用有着非常严格的要求&#xff0c;尤其是刚办理的新号码&#xff0c;更是“严上加…...

主题切换之根元素CSS自定义类

要实现CSS样式的主题切换&#xff0c;可以通过在HTML中添加一个按钮来触发JavaScript事件&#xff0c;进而通过JavaScript动态修改HTML元素的class或直接切换CSS文件&#xff0c;以达到改变页面整体风格的目的。以下是实现这一功能的步骤、原理及代码示例。 原理&#xff1a; …...

如何在 ASP.NET Core Web Api 项目中应用 NLog 写日志?

前言 昨天分享了在 .NET Core Console 项目中应用 NLog 写日志的详细例子&#xff0c;有几位小伙伴私信说 ASP.NET Core Web Api 项目中无法使用&#xff0c;其实在 ASP.NET Core Web Api 项目中应用 NLog 写日志&#xff0c;跟 .NET Core Console 项目是有些不一样的&#xf…...

selenium execute_script常用方法汇总

driver.execute_script() 是 Selenium WebDriver 中非常强大且灵活的功能&#xff0c;可以用来执行任意的 JavaScript 代码在浏览器上下文中。以下是一些常用的 execute_script() 方法的例子和用法&#xff1a; 修改元素的属性和值 python# 修改输入框的值 driver.execute_sc…...

如何选择最佳的APP封装平台-小猪APP分发为您解忧

在开发移动应用程序的过程中&#xff0c;选择一个可靠的APP封装平台显得尤为重要。无论你是初创企业还是大型企业&#xff0c;找到一个合适的平台可以大大简化你的开发流程。如何选择最佳的APP封装平台呢&#xff1f;今天我们就来聊聊这个话题&#xff0c;并重点介绍一下小猪AP…...

Linux基础 (十八):Libevent 库的安装与使用

目录 一、Libevent 概述 1.0 Libevent的安装 1.0.1 使用源码方式 1.0.2 终端命令行安装 1.1 主要特性 1.2 主要组件 1.3 Libevent 使用模型 1.4 原理 1.5 使用的基本步骤 1.5.1 初始化事件基础设施 1.5.2. 创建和绑定服务器套接字 1.5.3. 设置监听事件 1.5.4. 定义…...

冒泡排序的详细介绍 , 以及c , python , Java的实现方法

冒泡排序&#xff08;Bubble Sort&#xff09;是一种简单的排序算法&#xff0c;它重复地遍历要排序的数列&#xff0c;一次比较两个元素&#xff0c;如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换&#xff0c;也就是说该数列已经排序完成…...

使用llama.cpp实现LLM大模型的格式转换、量化、推理、部署

使用llama.cpp实现LLM大模型的格式转换、量化、推理、部署 概述 llama.cpp的主要目标是能够在各种硬件上实现LLM推理&#xff0c;只需最少的设置&#xff0c;并提供最先进的性能。提供1.5位、2位、3位、4位、5位、6位和8位整数量化&#xff0c;以加快推理速度并减少内存使用。…...

给你一个扫码支付的二维码,如何写测试用例?

前言 面试的时候&#xff0c;经常会临场出题&#xff1a;给你一个xxx, 如何测试, 或者说如何写测试用例&#xff1f;xxx可以是圆珠笔&#xff0c;水杯&#xff0c;电梯等生活中常见的场景。 那么给你一个支付的二维码&#xff0c;如何写测试用例呢&#xff1f; 二维码扫码支…...

基于Circuit Playground Express与MakeCode的互动拳套制作指南

1. 项目概述与核心思路如果你和我一样&#xff0c;既是《宇宙小子》的粉丝&#xff0c;又对把动画里的酷炫装备带到现实世界充满兴趣&#xff0c;那这个项目绝对能让你玩上一整天。今天要做的&#xff0c;是主角之一石榴那对标志性的拳套——不过&#xff0c;我们给它加上了一点…...

观察使用Taotoken Token Plan套餐后月度API成本的变化趋势

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 观察使用Taotoken Token Plan套餐后月度API成本的变化趋势 对于个人开发者或小型团队而言&#xff0c;在项目开发中持续使用大模型…...

DSP开发环境搭建实战:从CCSv3.3安装到XDS510仿真器配置全解析

1. CCSv3.3安装全流程详解 第一次接触DSP开发的朋友&#xff0c;安装CCSv3.3这个"老前辈"可能会遇到各种意想不到的问题。我当年在实验室安装时&#xff0c;光是补丁问题就折腾了一整天。下面就把这些年积累的实战经验分享给大家。 首先需要准备的是安装文件。虽然现…...

让经典游戏在现代Windows系统上流畅运行:DDrawCompat兼容性解决方案

让经典游戏在现代Windows系统上流畅运行&#xff1a;DDrawCompat兼容性解决方案 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.com/gh_mirr…...

我的技术博客从0到月入过万,用了这五个变现路径

很多测试同行问我&#xff1a;“每天写测试用例、提Bug、做自动化&#xff0c;这些重复性的工作内容&#xff0c;真能写成文章还有人看&#xff1f;”我的答案是&#xff1a;不仅能&#xff0c;而且测试人做技术博客&#xff0c;有着其他岗位难以复制的独特优势。因为我们每天都…...

别再手动改路由了!用Ant Design Vue的Menu组件动态生成“顶一左多”级导航菜单

基于Ant Design Vue的声明式导航菜单架构设计 在复杂后台管理系统开发中&#xff0c;导航菜单的动态生成与权限控制一直是架构设计的难点。传统方案往往需要在多个组件中硬编码菜单结构&#xff0c;导致维护成本高、权限同步困难。本文将介绍如何利用Ant Design Vue的Menu组件与…...

Python应用性能监控实战:New Relic探针架构与部署指南

1. 项目概述&#xff1a;一个现代应用性能管理的Python探针如果你正在用Python开发Web应用、微服务或者任何需要对外提供服务的后端系统&#xff0c;那么“性能”和“可观测性”这两个词一定不会陌生。当线上服务突然变慢、错误率飙升&#xff0c;或者用户反馈某个接口卡顿时&a…...

JAVA低空经济无人机飞手接单平台系统源码开发与部署方案

随着低空经济产业的快速发展&#xff0c;无人机应用场景不断拓展&#xff0c;航拍、测绘、巡检、物流等领域对专业飞手的需求日益增长&#xff0c;飞手接单难、需求方找飞手繁琐的行业痛点愈发突出。一、系统开发核心原则&#xff08;务实合规&#xff0c;贴合场景&#xff09;…...

从‘冠军策略’到实盘失效:深度复盘菲阿里四价在A股期货市场的7年表现

菲阿里四价策略的七年之痒&#xff1a;量化交易者必须警惕的经典策略陷阱 1. 当冠军策略遭遇市场进化 2015年&#xff0c;当某位日本期货冠军公开其赖以成名的菲阿里四价策略时&#xff0c;整个亚洲量化圈为之震动。这个看似简单的日内突破策略&#xff0c;凭借其清晰的逻辑和可…...

如何高效使用空洞骑士Scarab模组管理器:专业级配置实战教程

如何高效使用空洞骑士Scarab模组管理器&#xff1a;专业级配置实战教程 【免费下载链接】Scarab An installer for Hollow Knight mods written with Avalonia. 项目地址: https://gitcode.com/gh_mirrors/sc/Scarab Scarab是一款专为《空洞骑士》玩家设计的专业级模组管…...