0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

4M Flash W25Q32的详细介绍

CHANBAEK 来源:硬件工程师干货 作者:硬件工程师干货 2023-03-01 11:12 次阅读

本文以常见的4M Flash W25Q32为例。

1、Flash存储容量

容量可以从芯片的名称上看出来,虽然不同厂家的命名方式不一样,但是大体类似,比如W25Q80, W25Q16, W25Q32等。

W25Q80: 8M-bit / 1M -byte (1,048,576)W25Q16: 16M-bit / 2M-byte (2,097,152)W25Q32: 32M-bit / 4M-byte (4,194,304)

2、存储单位

Page(页)

:256字节,编程最小单位,一次最多编程256字节。

Sector(扇区)

:擦除的最小单位,一个Sector一般包含16个Page,即4KB。

Block(块)

:包含16个Sector,块擦除可以32KB(半块)、64KB(整块)两种擦除方式。

2、封装和管脚

封装类型有SOIC-8、WSON-8等。注意不一定封装越小越贵,要看哪一款用量大,用量大产量就大,产量大价格相对就便宜。元器件选型时要注意。

管脚序号
(SOIC-8为例)
定义
1 /CS
通信
2 DO(IO1)
数据输出或者IO1
3 /WP(IO2)
写保护或者IO2
4 GND

5
DI(IO0)
输入输入(IO0)
6
CLK
时钟
7
/HOLD(IO3)
保持或者IO3
8
VCC
电源

3、通讯方式

W25Q32支持标准的SPI、

Dual SPI,Quad SPI

标准SPI

:DI和DO都是单向的,即一进一出。

Dual SPI

:DI和DO是双向的,即IO0和IO1。

Quad SPI

:DI、DO、/WP、/HOLD变为IO0、IO1、IO2、IO3。

标准SPI比较常见,Dual SPI和Quad SPI用得不多,他们通讯数据线多一些,速度更快。有些单片机没有内部Flash或者内部Flash较少,但是带有QSPI Flash接口,可以使用Quad SPI和Flash通讯,当然这种外部Flash运行程序速率肯定要打折扣的,这是题外话了。

4、关于写保护

为了保证数据的完整,有以下几种写保护措施,防止软件误操作和电源不稳造成的数据错误。

1、电源低于下限值,自动写保护。

2、上电后写保护,直到Delay-Time时间到。

3、通过指令的方式进行写保护。

4、通过状态寄存器进行写保护。

5、硬件管脚/WP写保护。

说实话,写保护方法挺多,用的不多,看自己需求吧。

4、状态寄存器介绍

状态寄存器1

poYBAGP-wWqAPn_2AADGgIrKXaU764.png

状态寄存器2

pYYBAGP-wXmAGsacAAB4uuXb_qU183.png

BUSY:只读位,可以简单理解为芯片自己在干活,比较忙,忙完了自动清除。

WEL:只读位,写使能指令后置1,写禁用后清零。

BP2, BP1, BP0:写保护相关位,是个非易失位,可读可写,用于写保护控制,保护原理下面介绍。

TB:非易失位,写保护相关位,保护底部还是顶部。

SEC:非易失位,保护扇区还是块。

SRP1、SRP0:也是个非易失位,可读可写,和/WP管脚不同组合确定保护方式。

pYYBAGP-waiAY1acAAKd3ITUZfs082.png

QE:Quad使能位,启用4个数据线通讯方式,也是个非易失位。

注意:状态寄存器里有些位是非易失特性,大部分SPI Flash会出现越擦越慢的情况,这些位肯定是存储在Flash里,也会出现越擦越慢的情况,改写的越多,再次改写时间越长,这一点要留意。

写保护:

poYBAGP-wbmAb87-AASE1U4NTQc787.png

举个例子:如上图蓝色区域

例1:SEC=0保护块,TB=0保护顶端,保护60-63这4个块共256K,占用了Flash 1/16的空间。

例子2:SEC=1保护扇区,TB=0保护顶端,保护63块顶端8K。

5、指令:

指令就不一一解读了,手册中有详细的时序图,举几个常用指令。

pYYBAGP-wciAKanzAAMflO7EIK4940.png

pYYBAGP-wdeAAESKAAEX_Pm6Rb4834.png

读指令:03H,时序图如下

pYYBAGP-weOACVxJAADKwdC0zqw044.png

先发读指令码03H,然后24位地址,之后SPI返回数据。

写指令:02H,时序图如下

poYBAGP-wfGAZjHZAAFUUBf7yJg105.png

先发写指令码02H,然后24位地址,之后要写入的数据,写操作时注意地址回绕问题。

扇区擦除指令:20H,时序图如下

poYBAGP-wgKAGiRBAAC6Xp6pgjM614.png

先发写指令码20H,然后24位地址,等待擦除完成即可。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FlaSh
    +关注

    关注

    10

    文章

    1551

    浏览量

    146717
  • 接口
    +关注

    关注

    33

    文章

    7648

    浏览量

    148533
  • 存储
    +关注

    关注

    12

    文章

    3863

    浏览量

    84683
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1615

    浏览量

    89674
  • 管脚
    +关注

    关注

    1

    文章

    222

    浏览量

    31616
收藏 人收藏

    评论

    相关推荐

    用FATFS文件系统读写W25Q32,如果W25Q32的擦除次数已经到上限了,写文件会有报错吗?

    我是要用W25Q32记录数据,但是数据会变得很频繁,擦除次数可能很快就会到上限的
    发表于 12-28 15:02

    Numaker-PFM-M487开发板W25Q32读写异常的原因?怎么解决?

    Numaker-PFM-M487开发板下载官方M480_BSP_CMSIS_V3.05.003内的SPIM测试case后,日志上均显示fail。 写开发板上的W25Q32数据时,也异常,使用的步骤
    发表于 01-16 07:23

    上位机9种平台、6种语言读写控制W25Q32系列芯片源码下载

    上位机9种平台、6种语言读写控制W25Q32系列芯片源码下载
    发表于 04-18 13:59

    请问W25Q32写数据下面这段程序有什么问题

    byte to be programmed */ _cs = 1; /* disable device */}求大神指教、心,狼在吼!(762095668)10:18:02用的是W25Q32
    发表于 04-18 02:09

    W25Q64串行FLASH基础知识大小

    W25Q64串行FLASH基础知识大小:8M(Byte)(128块(Block),每块64K字节,每块16个扇区(Sector),每个扇区4K字 节,每个扇区16页,每页256个字节)
    发表于 07-22 09:32

    SPI Flash芯片W25Q32如何编写程序?

    SPI Flash芯片W25Q32如何编写程序?
    发表于 10-22 09:00

    W25QXX系列驱动相关资料下载

    W25QXX系列驱动,支持W25Q80,W25Q32,W25Q128,W25Q256,W25Q6
    发表于 01-10 07:36

    介绍W25Q64和驱动函数

    可说的。关于FATFS的移植下一篇文章介绍。本篇文章主要介绍W25Q64和驱动函数。W25Q64容量是64Mbit的flash,64Mbit
    发表于 01-26 07:53

    如何将图像存储在外部闪存W25Q32中呢?

    我想将图像存储在外部闪存 (W25Q32) 中。我做了链接脚本修改。但是我找不到之后我应该做什么。你可以帮帮我吗?编辑:我认为我需要外部加载器。
    发表于 01-04 07:00

    PFM-487开发板读写W25Q32 FLASH出现fail怎么解决?

    PFM-487开发板,读写W25Q32 FLASH,根据官方所述,将排插68(MOSI)与82相连, 67(MISO)与81相连, 66(CLK)与80相连, 65(SS)与79相连。程序中只修改
    发表于 08-21 06:10

    使用NAU88L25播放存储在外部SPI Flash W25Q32中的WAV文件

    应用程序: 本样本代码使用外部编码 NAU88L25 播放存储在外部 SPI Flash W25Q32 中的 WAV 文件 。 BSP 版本: M031 BSP CMSIS
    发表于 08-22 07:17

    M487通过PC0~PC5的SPI接口能实现对W25Q32读写的测试case

    M487通过PC0~PC5的SPI接口能实现对W25Q32读写的测试case,官网上的SPI测试case烧进去全部失败,体验好难受
    发表于 08-25 08:22

    官方caseQSPI读W25X16显示fail是为什么?

    在PFM-487开发板上用官方demo:StdDriverQSPI_QuadMode_Flash读写W25Q32时,显示读fail
    发表于 08-25 07:29

    Numaker-PFM-M487开发板W25Q32读写异常如何解决?

    Numaker-PFM-M487开发板下载官方M480_BSP_CMSIS_V3.05.003内的SPIM测试case后,日志上均显示fail。 写开发板上的W25Q32数据时,也异常,使用的步骤
    发表于 08-28 07:04

    如何使用SPI和PDMA访问外部SPI Flash W25Q32

    : NuMaker-M252SD V1.1, SPI Flash W25Q32 本样本代码使用 SPI 和 PDMA 访问外部 SPI Flash
    发表于 08-29 08:10