当前位置: 首页 > 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; 二维码扫码支…...

Linux七大常见误解与真相解析

1. Linux 神话的起源与现状Linux 作为开源操作系统的代表&#xff0c;自1991年诞生以来就伴随着各种误解和神话。这些误解往往源于早期Linux的使用门槛较高、图形界面不够完善等历史原因。但经过30多年的发展&#xff0c;现代Linux发行版已经发生了翻天覆地的变化。在技术社区中…...

PySide6新手必看:从零开始用Python玩转Qt界面开发(附官方教程对比)

PySide6新手必看&#xff1a;从零开始用Python玩转Qt界面开发 在Python生态中&#xff0c;GUI开发一直是个让人又爱又恨的话题。当Tkinter显得过于简陋&#xff0c;而PyQt又面临商业授权困扰时&#xff0c;PySide6作为Qt官方推出的Python绑定&#xff0c;正成为越来越多开发者的…...

终极URL标准完整指南:从基础概念到实战应用

终极URL标准完整指南&#xff1a;从基础概念到实战应用 【免费下载链接】url URL Standard 项目地址: https://gitcode.com/gh_mirrors/url/url URL&#xff08;统一资源定位符&#xff09;是互联网的基石&#xff0c;每一个网页、图片、视频都通过URL来定位和访问。URL…...

物理信息机器学习新突破!连中SCI一区TOP刊!

小伙伴们好&#xff0c;我是小嬛。专注于人工智能、计算机视觉、AI大模型领域相关分享研究。【目标检测、图像分类、图像分割、目标跟踪等项目都可做&#xff0c;相关领域论文辅导也可以找我&#xff1b;需要的可联系&#xff08;备注来意&#xff09;】-------正文开始-------…...

降低AI检测率哪个工具好?10款免费工具2026亲测,亲测有用

很多同学在写论文时都会遇到同一个难题&#xff1a;用AI辅助写完的内容&#xff0c;一查AIGC率高到离谱&#xff0c;被导师打回要求整改。后台最近也收到不少私信问&#xff1a;怎么才能有效降低AI检测率&#xff1f;有没有靠谱的免费降AI率工具推荐&#xff1f; 我自己当初也踩…...

联想新品入局,AI智能终端市场格局生变

联想新品发布&#xff0c;直击Mac mini“养虾”痛点2026年3月31日&#xff0c;联想集团正式发布YOGA AI Mini与Think AI Tiny两款AI原生智能终端。其中&#xff0c;YOGA AI Mini面向个人消费市场&#xff0c;精准对标当下被众多用户用于运行OpenClaw的Mac mini。Mac mini虽因便…...

如何高效下载B站视频:downkyi带来的一站式解决方案

如何高效下载B站视频&#xff1a;downkyi带来的一站式解决方案 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#xff…...

SEKA与AdaSEKA:破解大模型注意力引导难题的新方案

【导语&#xff1a;在自然语言处理领域&#xff0c;让大模型重点关注提示词某句话存在挑战。爱丁堡大学等团队提出SEKA及其自适应变体AdaSEKA&#xff0c;解决了现有方法的延迟和显存瓶颈问题&#xff0c;为大语言模型发展带来新思路。】SEKA&#xff1a;改写Key向量引导注意力…...

实战指南:从零构建PyTorch版Latent Diffusion Models(含DDPM/DDIM/PLMS全流程解析)

1. 环境准备与项目搭建 在开始构建Latent Diffusion Models之前&#xff0c;我们需要准备好开发环境。这里推荐使用Python 3.8和PyTorch 1.12版本。如果你有GPU设备&#xff0c;建议安装CUDA 11.3以上版本以获得更好的训练性能。 首先创建一个conda虚拟环境&#xff1a; conda …...

网盘下载加速工具LinkSwift:八大主流网盘直链下载解决方案

网盘下载加速工具LinkSwift&#xff1a;八大主流网盘直链下载解决方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / …...