一、Flash介绍
常用的flash类型有NOR Flash 和Nand Flash 两种;
(1)Nor Flash
1、Nor Flash的接口和RAM完全相同,可以随机访问任意地址的数据,在其上进行读操作的效率非常高,但是擦除和写操作的效率很低,另外,Nor Flash的容量一般比较小,通常,Nor Flash用于存储程序;
2、Nor Flash的块大小范围为64KB—128KB;
3、擦写一个Nor Flash块需要4s,
4、市场上Nor Flash 的容量通常为1MB—4MB
(2)Nand Flash
1、Nand Flash的接口仅仅包含几个I/O引脚,需要串行地访问,Nand Flash进行擦除和写操作的效率很高,容量较大,
通常Nand Flash用于存储数据;
2、Nand Flash的块大小范围为8KB—64KB;
3、擦写一个Nand Flash块需要2ms;
4、Nand Flash 一般以512字节为单位进行读写
5、 市场上 Nand Flash 的容量一般为 8M—512M
二、Nand Flash的物理结构
以三星公司生产的 K9F1208U0M 为例:
1、容量:64MB,
一共4个层;
每层1024个块(block);
1块包含32页
1页包含 512 + 16 = 528个字节
2、外部接口:8个I/O口,5个使能信号(ALE、CLE、nWE、nRE、nCE),1个状态引脚(RDY/B),1个写保护引脚(nWE);
3、命令、地址、数据都通过8个I/O口输入输出;
4、写入命令、地址、数据时,都需要将nWE、nCE信号同时拉低;数据在WE上升沿被锁存;
5、CLE、ALE用来区分I/O引脚上传输的是数据还是地址;
6、64MB的空间需要26位地址,因此以字节为单位访问Flash时需要4个地址序列;
7、读/写页在发出命令后,需要4个地址序列,而擦除块在发出擦除命令后仅需要3个地址序列;
三、Nand Flash访问方法
操作Nand Flash时,先传输命令,然后传输地址,最后读、写数据,期间要检查flash的状态;
K9F1208U0M 一页大小为528字节,而列地址A0——A7可以寻址的范围是256字节,所以将一页分为A、B、C三个区:
A区:0—255字节
B区:256—511字节
C区:512—527字节
(1)复位
命令:FFh
步骤:发出命令即可复位Nand Flash芯片;
(2)读操作
命令:
00h——读A区
01h——读B区
50h——读C区
操作步骤:
1、发出命令 00h、01h 或50h, 00h将地址位A8设为0, 01h将A8设为1 ;
2、依次发出4个地址序列;
3、检测R/nB,待其为高电平时,就可以读取数据了;
(3)flash编程
命令:
80h——10h :写单页;
80h——11h :对多个层进行些页操作;
操作步骤:
1、写单页步骤:
【1】发出80h命令后;
【2】发送4个地址序列;
【3】向flash发送数据;
【4】发出命令10h启动写操作,flash内部自动完成写、校验操作;
【5】通过命令70h读取状态位,查询写操作是否完成;
2、多页写
【1】发出80h、4个地址序列、最多528字节的数据;
【2】发出11h命令;
【3】接着在相邻层执行【1】、【2】两步操作;
【4】第四页的最后使用10h代替11h,启动flash内部的写操作;
【5】可以通过71h查询写操作是否完成;
(4)复制
命令:
00h——8Ah——10h :单层页内复制
03h——8Ah——11h :多层页内复制
操作步骤:
1、单层页内复制步骤:
【1】发出命令00h;
【2】4个源地址序列;
【2】接着发出8Ah;
【4】发出4个目的地址序列;
【5】发出10h命令,启动写操作;
【6】通过70h命令读取状态查询操作是否完成;
2、多层页内复制步骤:
【1】发出命令00h(第一层)、4个源页地址序列;
【2】以后各层依次发出命令03h、4个源页地址序列;
【3】发出命令8Ah、目的地址、命令11h;
【4】各层依次执行【3】,在最后一页的地址后,用10h代替11h,启动写操作;
【5】通过71h命令读取状态查询操作是否完成;
(5)擦除
命令:
60h——D0h :单层内块擦除
60h-60h ——D0h :多层内块擦除
操作步骤:
1、单层内块擦除:
【1】发出命令字60h;
【2】发出块(block)地址,仅需3个地址序列;
【3】发出D0h,启动擦除操作;
【4】发出70h命令查询状态,是否完成擦除;
2、多层内块擦除:
【1】发出命令字60h,3个块地址序列;
【2】对每个层执行【1】;
【3】发出命令D0h,启动擦除操作;
【4】发出71h命令查询状态,检查是否完成擦除;
(6)读取芯片ID
命令:90h
操作步骤:
1、发出命令90h;
2、发出4个地址序列(均设为0);
3、连续读入5个数据,分别表示:厂商代码、设备代码、保留字节、多层操作代码;
(7)读状态
命令:
70h——单层状态
71h——多层状态
操作步骤:写入命令字之后,然后启动读操作即可读入此寄存器。
-
FlaSh
+关注
关注
10文章
1683浏览量
152180 -
存储器
+关注
关注
38文章
7654浏览量
167836
发布评论请先 登录
NAND FLASH与NOR FLASH的技术对比

arm9 nor flash 地址
CH579中有Data Flash和Info Flash,请问这两片Flash有什么不一样?
NOR FLASH的原理及应用

指定了SDRAM却烧写到了Nand flash的详细分析
SPI FLASH与NOR FLASH的区别 详解SPI FLASH与NOR FLASH的不一样
NAND Flash与NOR Flash的区别
NOR falsh、NAND flash、SDEMMC、QSPI flash、SPI flash

NAND Flash和NOR Flash的区别

一文了解SPI NAND Flash和SPI NOR Flash的区别
nor flash和nand flash的区别 单片机是Nor还是Nand Flash?

评论