4M Flash W25Q32的详细介绍

描述

本文以常见的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

存储

状态寄存器2

存储

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

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

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

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

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

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

存储

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

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

写保护:

存储

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

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

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

5、指令:

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

存储

存储

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

存储

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

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

存储

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

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

存储

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

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分