W25QXX FLASH介绍

W25QXX FLASH介绍

前言

FLASH在嵌入式开发是很常用的一种芯片。它是存储芯片的一种,通过特定的程序可以修改里面的数据。FLASH在电子以及半导体领域内往往表示Flash Memory的意思,即平时所说的“闪存”,全名叫Flash EEPROM Memory。
FLASH存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。

1 W25QXX简介

W25QX系列是串行闪存器件。擦写周期多达10W次,可将数据保存达20年之久,支持2.7~3.6V的电压,支持标准的SPI,还支持双输出/四输出的SPI,最大SPI时钟可达80Mhz。
FLASH芯片的内存空间一般都是由多个块组成,而块又是由扇区组成。
例如W25Q64就是将8M字节的容量分为了128个块,每个块大小为64K字节,每个块又可分为16个扇区,每个扇区4K个字节。
25Q系列的FLASH最小擦除单位为一个扇区,也就是每次必须擦除4K个字节。所以,这需要给FLASH开辟一个至少4K的缓存区,这样必须要求芯片有4K以上的SRAM才能有很好的操作。

2 硬件参数

硬件参数比较多,我只挑一些常用的介绍一下,更详细的介绍可以查阅芯片手册。

基本参数说明
电压2.7V - 3.6V
电流4mA活动电流,掉电模式下小于1uA
通讯方式标准SPI\双路SPI\四路SPI
速率80MHz工作时钟\160MHz等效时钟(双路SPI模式下)\320MHz等效时钟(四路SPI模式下)
引脚号引脚名称I/O功能
1CSI片选输入
2DO(IO1)I/O 数据输出,标准SPI数据引脚
(数据输入输出1)*1
3WP(IO2)I/O写保护输入,低电平有效,拉低时不能写入数据
(数据输入输出2)*2
4GND-
5DI(IO0)I/O数据输入,标准SPI数据引脚
(数据输入输出0)*1
6CLKI串行时钟输入
7HOLD(IO3)I/O保持输入,拉低时,DO将处于高阻抗,DI和CLK针上的信号将被忽略,拉高时设备允许操作
(数据输入输出3)*2
8VCC-供电

注:IO0和IO1用在标准和双路SPI模式,IO0到IO3用在四路SPI模式下。如果IO2和IO3不使用,可以硬件拉高。

3 寄存器介绍

我这里只列举部分跟软件编程相关的常用寄存器,更详细的介绍可以查阅芯片手册。。

指令名称数值
制造商设备ID90h
JEDEC ID9Fh
写状态寄存器01h
读状态寄存器105h
读状态寄存器235h
读数据03h
写使能06h
写失能04h
扇区擦除(4KB)20h
全片擦除C7h
页编程02h

4 编程相关

当我们要使用MCU来读写flash芯片的时候,需要用到spi通讯,这里面有几个比较容易踩的坑。

1、WP和HOLD引脚
如果使用标准4线spi通讯,要注意WP和HOLD引脚的状态,WP拉低时不能写入数据,HOLD拉低时,DO将处于高阻抗,DI和CLK针上的信号将被忽略。因此,如果不使用4路spi的话,WP和HOLD引脚可以直接通过硬件拉高,也可以通过MCU的GPIO拉高。否则,悬空或者拉低都会影响数据的写入。

2、连续写入时需要注意分区
flash一次最大可编辑256字节。flash内存可以分成多个页,每页256个字节,我们在使用spi写入flash时最多只能一次写入一页数据,并且不能跨页写入。因此,当我们需要连续写入超过一页数据时,需要注意把spi通讯分成多次。同样的,写入时也不能跨扇区写入。

3、flash写入前需要先擦除
flash写入时是按bit操作的,只能把1改成0,只有擦除才能把0变成1,因此,如果不擦除直接写入的话就会变成或运算,最终存储的数据可能跟写入的数据不一致。

4、擦除的最小单位是扇区(4K字节)
flash不能只单独擦除某一个寄存器,最少也是4096字节。如果某一个扇区原本保存了一些重要数据,然后你又需要从这个扇区的中间位置添加一些新的数据,这个时候需要注意在擦除前要先把原有保存的数据读出来,擦除后再把旧的数据和新的数据写进去,不然直接擦除的话会把原有的数据擦掉。

结束语

好了,关于W25QXX系列FLASH的介绍就讲到这里了,因为关于这个芯片的资料网上有很多讲解教程,因此本文只是挑了一些重点来讲,更详细的内容可以查阅相关的资料,如果有哪里不懂又找不到的话也可以在评论区留言或者私信给我。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值