W25Q16_Flash手册总结

本文详细介绍了W25Q16BVFlash存储器的概述、特点、引脚说明、操作指令(如写入、读取和擦除)以及交流特性表,包括擦除时间和/CS有效时间的要求。通过SPI协议进行数据交互,适合初学者理解和实践操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

前面学习了我们的spi协议,下面我们需要对Flash芯片手册进行简单的学习总结,后面通过spi协议对flash进行读写。


一、概述&特点

1、概述W25Q16BV

FLASH 存储器又称闪存,是一种长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)存储器,一般用来保存一些重要的设置信息或者程序等等。通常采用 SPI 协议跟 FLASH 芯片进行数据交互。W25Q16BV是串行闪存为空间,引脚和功耗有限的系统提供存储解决方案。25Q 系列提供的灵活性和性能远远超过普通串行闪存设备。

  • 需要注意的是对于一些概念我们需要清楚:扇区、页、块等:
    对于我们的flash我们可以理解为有两种划分方式(当然可能不止),我的W25Q16型号的flash有2MB即16Mb。

1、我们可以根据页来进行划分,可以分为8192个可编程页,每页可写256字节,(256*8192)1024 = 2MB。一次最多编程256字节,写超的话会对当前页的前面数据进行覆盖。页面可以有16组扇区擦除(4KB)、128组(32KB)、256组(64KB)或整个芯片进行擦除。那么来了,这里的几KB怎么算的呢,组是多大?实际上:4KB = (256 * 16)/1024 、32KB = (256 * 128)/1024
2、根据块进行划分,我们分成了32块,每块64kB,每块又化成了16个扇区,每个扇区4KB,相当于每个扇区有16页,有16个扇区,那么每块有256页。

1、特点

1、低功耗
2、具有 4KB 扇区的灵活架构
3、高效的连续读取模式
4、最高性能串行闪存
5、16Mbit(2MB)

2、引脚说明

在这里插入图片描述
在这里插入图片描述

1号引脚:这是我们的片选信号,并且是低电平有效,一般引脚名前加/表示低电平有效。
2、5号引脚:FLASH芯片的数据输入输出引脚((Standard and Dual SPI 模式下)
3号引脚:写保护引脚(Quad SPI 模式下被用作数据输出引脚,低电平有效,用来防止状态寄存器被写入。
4、8号引脚:GND和电源
6号引脚:FLASH的时钟驱动时钟
7号引脚:HOLD引脚,也是低电平有效,在 Standard and Dual SPI 模式下相当于 FLASH 暂停信号,当 HOLD 引脚和 CS引脚同时拉低时,虽然此时 FLASH 芯片是被选中的,但是 DO 引脚会处于高阻抗状态,DI 和 CLK 这两个引脚会忽略输入的数据和时钟,相当于 DI 和 CLK 处于无效状态。(在多从机的情况下有用)

3、内部结构示意图

在这里插入图片描述

4、操作指令

  1. 表1

在这里插入图片描述

  1. 表2

在这里插入图片描述

  1. 表3

在这里插入图片描述

5、操作示例时序图

1、写入启用指令:Write Enable(06h)

Write Enable(06h):使能指令,Write Enable 指令将状态寄存器中的 Write Enable Latch (WEL)位设置为高电平,在执行页编辑、扇区擦除、块擦除、芯片擦除和写状态寄存器指令前必须先执行 Write Enable指令

在这里插入图片描述

2、读取状态寄存器指令:Read Status Register-1(05h)

Read Status Register-1(05h):读取状态寄存器 1 指令,这条指令的作用就是读取状态寄存器 1 的值。在 W25Q16BV 中存在两个状态寄存器可以用来指示 FLASH 芯片的可用性状态或者配置 SPI 的相关设置。后面我们主要是读取状态寄存器 1 的值,并且检测它的第零位也就是 BUSY 位是零还是一。当FLASH 处于擦除或者写入数据时,状态寄存器 1 的 BUSY 位会拉高,当 BUSY 位重新恢复成低电平时代表 FLASH 擦除或者写入数据完成。

在这里插入图片描述

3、写数据指令:Page Program(02h)

页编辑指令,可以理解成写数据指令,在上文中我们已经介绍过 W25Q16BV 的
存储空间是分为扇区和页的,每一页又有 256 个字节的存储空间。当执行页编辑指令时就可以往对应的扇区对应的页中写入数据,一次性最多写入 256 个字节数据。这里尤其要注意一点,当整页写数据时你可以不必写满 256 个字节,小于 256 个字节也是可以正常写入的,但是千万不能超过 256 个字节数据,因为一旦超过 256 个字节,多余的数据就会返回这一页的开头重新写入,这样就会覆盖之前已经写入的数据。举个例子我们一次性写入 260 个数据,这样就多了 4 个数据出来,那么这 4 个数据就会回到这一页的开头把第 0、1、2 和 3 这四个数据覆盖掉。

在这里插入图片描述

4、区块擦除指令:Sector Erase-4KB(20h)

在上文中我们已经提到过芯片内部的存储空间是被划分成一个一个小块的,我们可以直接对这些小块执行擦除指令。Sector Erase 指令就是对 4KB 的小块执行擦除操作。除此之外还有 Block Erase -32KB(52h)和 Block Erase -64KB(D8h)指令,用于擦除更大的存储块。

在这里插入图片描述

5、全擦除指令:Chip Erase(c7h)

有的时候我们想直接将 FLASH 芯片进行格式化那怎么办呢?这个时候我们就可以执行全擦除指令了。全擦除指令会擦除整个 FLASH 芯片的所有存储数据。需要注意的是全擦除指令执行的比较慢,通常需要几秒钟才能完成全擦除。在芯片处于全擦除期间我们只能对它执行访问状态寄存器指令操作,不能执行其他例如读写等操作。在擦除期间,状态寄存器1 的最低位(BUSY 位)始终处于高电平(不仅仅是全擦除指令,区块擦除指令、写数据指令执行时BUSY 位也会拉高),当完成全擦除后 BUSY 位拉低,此时可以执行其他指令了

在这里插入图片描述

6、读取数据指令:Read Data(03h)

读取数据指令,当 FLASH 中被写入数据后我们可以使用 Read Data 指令将数据读取出来。

在这里插入图片描述

还要很多的指令,这里只对我们后面使用得到的指令进行了介绍,具体可以看结尾的手册资料。

6、交流特性表

1、擦除时间要求

在这里插入图片描述

2、/CS有效与时钟有效的时间要求

在这里插入图片描述

  • 也就是我们下面这两个前后时间各需要5ns:
    在这里插入图片描述
3、两个指令操作的时间/CS需要保持的高电平时间

我们可以看到这里的串行通信这里/CS的英文为tSHSL:

在这里插入图片描述

  • 查找发现其要求我们的时间为7/40ns,我们可以设置100ns稳妥一点:

在这里插入图片描述

这里就介绍到这里,还有更多的要求,请自行查阅手册。还有一个点就是我们在页编程的情况下之后我们并不能马上写入,需要一个时间,手册给出的是3s,但是我们我们可以通过轮询的方式,读我们的状态寄存器 1 的最低位(BUSY 位)在 FLASH 处于写数据或者擦除数据期间是拉高的,当它拉低代表 FLASH 写入数据或者擦除数据完成。


二、总结

这里我根据手册以及原子哥的资料进行了一个大致的整理,大家仅供参考,英文版的手册看着可能理解错误,大家评论区斧正。

三、参考资料

1、Flash页、扇区、块的区别
2、W25Q16BV手册:提取码:hzwj

### 回答1: Mac Maven安装与配置Idea的步骤如下: 1. 首先,需要在Mac上安装Maven。可以通过Homebrew或手动下载安装包的方式进行安装。如果使用Homebrew,可以在终端中输入以下命令: brew install maven 2. 安装完成后,需要配置Maven的环境变量。在终端中输入以下命令: vi ~/.bash_profile 3. 在打开的文件中添加以下内容: export M2_HOME=/usr/local/Cellar/maven/3.6.3_1 export PATH=$PATH:$M2_HOME/bin 其中,M2_HOME为Maven的安装路径,需要根据实际安装路径进行修改。 4. 保存文件并退出,然后在终端中输入以下命令使配置生效: source ~/.bash_profile 5. 接下来,需要在Idea中配置Maven。打开Idea,选择File -> Settings -> Build, Execution, Deployment -> Build Tools -> Maven。 6. 在Maven的配置页面中,点击“+”号添加Maven的安装路径。然后点击“OK”保存配置。 7. 至此,Mac Maven安装与配置Idea的步骤已经完成。可以在Idea中使用Maven进行项目构建和管理。 ### 回答2: 安装Mac Maven 1. 下载Maven: 首先,我们需要下载Maven。进入Maven官网,下载最新版本的二进制文件。我们要下载tar格式的,例如: http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz 2. 解压Maven: 下载完成后,我们需要将其解压到合适的位置。 在终端中,输入如下指令: tar xvf apache-maven-3.6.3-bin.tar.gz 3. 配置Maven: 为了使Maven能够正常工作,我们需要配置Maven。在终端中,输入如下指令,在.bashrc文件中加入Maven的环境变量: echo 'export PATH=$PATH:/usr/local/apache-maven-3.6.3/bin' >> ~/.bashrc source ~/.bashrc 4. 验证Maven是否安装成功: 在终端中输入mvn -v命令,如果能看到类似如下信息,说明Maven安装成功: Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f) Maven home: /usr/local/apache-maven-3.6.3/bin/../ Mave... 配置Mac Maven 1. 在IntelliJ IDEA中安装Maven插件: 打开IntelliJ IDEA,进入Preferences -> Plugins,在搜索框搜索Maven,并安装该插件。 2. 配置Maven: 打开IntelliJ IDEA,进入Preferences -> Build, Execution, Deployment -> Build Tools -> Maven,在Maven home directory中指定Maven的安装目录。 3. 配置Maven项目: 打开IntelliJ IDEA,选择File -> New -> Project -> Maven,创建Maven项目。在创建项目时,需要选择Maven Archetype,Archetype是一个项目模板,包含了项目的结构、依赖和插件等配置信息。可以根据不同的项目需求选择相应的Archetype。 4. 配置Maven依赖: 在pom.xml中添加需要的依赖,可以使用搜索引擎,到相应的官网复制相应的依赖配置信息,粘贴到pom.xml中。 5. 运行Maven项目: 在IntelliJ IDEA中,可以通过点击菜单栏的Run按钮或快捷键Shift + F10来运行Maven项目。运行过程中,可以在控制台中查看运行结果。 总结 在Mac中安装和配置Maven与IntelliJ IDEA并不是很难,只需要按照上述步骤,我们就可以轻松地完成Maven的安装和配置,开始使用Maven进行Java开发了。Maven的使用能够大幅提高项目的管理效率,是Java开发必不可少的工具之一。 ### 回答3: Maven是一款流行的构建工具,Mac电脑上安装和配置Maven可以让我们更方便地管理项目依赖和构建过程。本文将介绍如何在Mac电脑上安装和配置Maven,并在IntelliJ IDEA中使用Maven进行开发。 一、安装Maven 1. 下载Maven: 访问Maven官网下载页,选择Latest Stable Release版本下载链接,获取Maven二进制文件压缩包。 2. 解压Maven: 将下载的文件解压到你想要安装的目录。比如:/usr/local/maven。 3. 设置Maven环境变量: 在命令行模式下,输入以下命令: vim ~/.bash_profile 在打开的文本编辑器的文件末尾加上以下行: export PATH=/usr/local/maven/bin:$PATH 保存文件并退出,运行以下命令,使设置生效: source ~/.bash_profile 4. 检查Maven安装是否成功: 在终端中执行mvn -version,会显示当前Maven的版本信息,在终端中看到版本信息,说明Maven安装成功。 二、配置IDEA使用Maven 1. 安装IntelliJ IDEA: 访问JetBrains官网,下载并安装IDEA。 2. 在IntelliJ IDEA中配置Maven: 打开IDEA,依次点击File->Settings->Build, Execution, Deployment->Build Tools->Maven,找到Maven home directory,点击加号添加Maven的安装路径。 3. 创建Maven项目: 依次点击File->New->Project->Maven,设置好项目的GroupId, ArtifactId, Version等信息,创建Maven项目。 4. 在Maven项目中添加依赖: 在项目的pom.xml文件中,添加依赖信息。在pom.xml文件中的dependencies标签中添加需要的依赖项,比如: <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> 5. 运行Maven项目: 在IDEA中打开Maven Projects视图,找到项目,双击Lifecycle下的test命令,运行Maven项目。 通过以上步骤,我们成功地在Mac电脑上安装和配置了Maven,并在IntelliJ IDEA中使用Maven进行了开发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

混子王江江

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值