Nand Flash 笔记
第一章 Nand概述
第二章 硬件接口规范
第三章 软件功能规范
第四章 接口规范
第五章 W25N01G手册解读
第六章 HC32F460_QSPI驱动
第七章 FatFs移植
第八章 lvgl文件系统移植
第九章 lvgl之tiny ttf engine
文章目录
一、概述
1.1 产品简介
W25Nxx是中国台湾Winbond(华邦)公司推出的一系列Nand Flash产品,包括从512Mb-4Gb各容量的芯片。下图是从手册中摘出的命名规范:
该芯片具有以下特性:
- 兼容标准SPI 串行flash命令
- 代码影射,XIP功能
- 常规的缓冲读取模式(BUF=1)及特有的连续读模式(BUF=0)
- 用户可配置的内置硬件ECC功能,采用海明码,支持1位纠错及2位检错能力
- 支持部分编程,NoP=4(可1/4页写入)
- 内置坏块管理功能
- 支持JEDEC标准的厂商及设备ID,附加 UniqueID页,参数页及10个2K大小的OTP页
1.2 引脚
该芯片工作电压为2.7~3.6V,支持Standart/Dual/Quad Spi读写接口,常见多为WSON-8封装,引脚图如下
\模式 \ 引脚\ |
标准SPI | Dual SPI | Qual SPI | 备注 |
---|---|---|---|---|
/CS | 片选 | 片选 | 片选 | 低电平有效,上下电时必须跟随电源(可以加上拉电阻) |
CLK | 时钟 | 时钟 | 时钟 | 最大104MHz,SPI MODE 0 空闲时低电平,SPI MODE 3 空闲时高电平 |
DI | MOSI | IO0 | IO0 | - |
DO | MISO | IO1 | IO1 | - |
/WP | 写保护 | 写保护 | IO2 | 低电平有效,由SR-1寄存器的WP-E位控制,WP-E=0时,硬件写保护仅可作用于SR-1,由SRP[1:0]和BP[3:0]控制软件写保护的范围。WP-E=1时,四线SPI读操作不可用,硬件写保护作用于整个芯片 |
/HOLD | 状态保持 | 状态保持 | IO3 | 低电平有效,四线模式时不可用,CLK下降沿 和 /HOLD 引脚电平变化 共同满足之后保持功能打开/关闭 |
ps: 数据输入输出口均为时钟上升沿写入,下降沿读取。
1.3 空间
W25N01G 共1024个块,每块64页,每页2048Byte数据空间,即:
1Gbit = 128MByte = (1024 Block per Chip) × (64 page per Block) × ( 2048 Byte per page)
为了满足ECC校验及坏块管理的功能,每页还有额外64Byte的Spare Area(空闲空间),空闲空间还提供了2+4字节的用户数据区用来存放自定义数据,有些文件系统(如jffs2)就用到了自定义数据来存放文件系统信息。
W25N01G支持部分编程,最小的编程单位是sector(扇区),每页分为4个512字节的扇区,空闲空间也对应分为16字节×4,部分编程时,每扇区的数据和它对应的空闲空间数据要一并写入。一个page的内部划分如下图所示
寻址采用 页地址(PA) + 列地址(CA) 方式:页地址长16位,由10bit块地址 + 6bit页地址 组成;列地址12位,寻址空间为0-4095,但只有前(2048 + 64)字节空间可以读写。32位地址的位域定义如下图
主存储空间外,W25N01G还具有单独的1个UniqueID页,1个参数页及10个OTP页,地址如下:
二、寄存器
2.1 SR-1(写保护寄存器)
- WP-E = 0,SRP1 = 1: /WP引脚无写保护功能
- SRP0 = 0:上下电时SRP0、SRP1复位为0
- SRP0 = 1:寄存器SR-1上下电不丢失
- WP-E = 0,SRP1 = 0:
- SRP0 = 0:/WP引脚无写保护功能
- SRP0