文章目录
-
- 一、NAND Flash和NOR Flash
- 二、W25N01GVZEIG引脚说明
- 三、SPI配置
- 四、W25N01GVZEIG的架构和寻址
- 五、W25N01GVZEIG的指令码
- 六、W25N01GVZEIG各个指令的解析
-
- (一)、Device RESET
- (二)、JEDEC ID
- (三)、Read Status Register
- (四)、Write Status Register
- (五)、Write Enable
- (六)、Write Disable
- (七)、BB Management(Swap Blocks)
- (八)、Read BBM LUT
- (九)、Last ECC failure Page Address
- (十)、Block Erase
- (十一)、Program Data Load(Reset Buffer)
- (十二)、Random Program Data Load
- (十三)、Quad Program Data Load (Reset Buffer)
- (十四)、Random Quad Program Data Load
- (十五)、Program Execute
- (十六)、Page Data Read
- (十七)、Read
- (十八)、 Fast Read
- 七、使用中发现的问题
- 八、其他注意事项
一、NAND Flash和NOR Flash
Intel于1988年首先开发出NOR Flash 技术,彻底改变了原先由EPROM(Erasable Programmable Read-Only-Memory电可编程序只读存储器)和EEPROM(电可擦只读存储器Electrically Erasable Programmable Read - Only Memory)一统天下的局面。紧接着,1989年,东芝公司发表了NAND Flash 结构,强调降低每比特的成本,有更高的性能,并且像磁盘一样可以通过接口轻松升级。NOR Flash 的特点是芯片内执行(XIP,eXecute In Place),这样应用程序可以直接在Flash闪存内运行,不必再把代码读到系统RAM中。
他们的区别如下。
NAND Flash | NOR Flash | |
---|---|---|
读速度 | ↓ | ↑ |
写速度 | ↑↑↑ | ↓↓↓ |
擦写速度/次数 | ↑↑ | ↓↓ |
擦写电路 | ↓以块为擦写单位 | ↑ |
易用性 | ↓↓ | ↑↑ |
体型/价格 | ↓↓ | ↑↑ |
接口 | 共用地址数据线 | 带SRAM接口,有足够的地址引脚来寻址,地址数据线独立,可直接寻址 |
位反转/坏块处理 | 坏块较多且随机分布,采用错误探测/错误更正(EDC/ECC)算法 | 坏块少,采用冗余比特替换法 |
浮栅充电 | F-N隧道效应(Fowler Nordheim tunneling) | 热电子注入(hot electron injection) |
特点 | 能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于flash的管理需要特殊的系统接口 | 可在芯片内执行代码,传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能 |
基本单元 | 读操作-页page 擦写操作-块block | 读写操作-扇区sector |
NAND Flash和NOR Flash的区别中有三点很关键:
1、首先,NAND Flash在出厂时就有一定的坏块,而且是随机分布,这是由NANDFlash的工艺造成的,以前也曾有过消除坏块的努力,但发现成品率太低,代价太高,根本不划算。所以,NAND Flash被允许在出厂时有很少量的坏块。
2、其次,NAND Flash在应用中会出现位翻转错误(bit failture)。虽然概率很低,大约每100亿次写操作才会出现一次,但是对于用作系统根文件系统的存储设备,这种错误是绝对不允许的。因为这种错误万一发生在系统配置文件上,则会影响系统的运行。但是作为流媒体文件的存储器,位翻转的问题并不大。
3、最后,NAND Flash和NORFlash在应用接口上有着本质的区别,NAND Flash是I/O方式,NOR Flash是总线方式,这是它们除了价格以外最主要的差别。
二、W25N01GVZEIG引脚说明
想要实现对NAND FLASH和NOR FLASH等存储器实现读写操作,可以采用STM32的FSMC(Flexible Static Memory Controller)可变静态存储控制器,它会自动对时序等操作进行处理,使用起来会比较方便。当然有的存储器支持SPI接口进行数据的传输,而我选择的NAND FLASH W25N01GVZEIG(数据手册在下载文件那里)支持Standard/DUAL/QUAD SPI。
以下是他们的引脚信息。
传输模式 | 引脚 |
---|---|
Standard SPI | CLK、/CS、DI、DO、/WP、/Hold |
DUAL SPI | CLK、/CS、IO0、IO1、/WP、/Hold |
QUAD SPI | CLK、/CS、IO0、IO1、IO2、IO3 |
接口说明:
CLK(Serial Clock):时钟线
/CS(Clip Select):片选线
DI(Serial Data Input(Data Input Output 0)):串行数据输入线
DO(Serial Data Output(Data In