NOR/NAND FLASH操作原理

本文不涉及NOR/NAND代码编写,仅了解两种FLASH的操作原理,通过U-BOOT来读取信息,在FLASH中读和写。 一.Nor和Nand对比表格 NOR FLASH(存放U-BOOT、内核)NAND FLASH(存放视频、文件系统等大文...

本文不涉及NOR/NAND代码编写,仅了解两种FLASH的操作原理,通过U-BOOT来读取信息,在FLASH中读和写。

一.Nor和Nand对比表格


NOR FLASH(存放U-BOOT、内核)

NAND FLASH(存放视频、文件系统等大文件)
接口RAM-LIKE,引脚比较多引脚比较少,复用
容量小,大多是1M/2M/32M等大,有128M/256M等
简单复杂
发出特定的命令(慢)发出特定的命令(快)
价格便宜
特点无位反转、无坏块有位反转,会出现坏块
XIP可以不可以

二.U-BOOT读/写命令

1.读命令:

格式:md.w 地址 字节数

例子:md.w 20 1 (读0x20一个字节。得到0051)

2.写命令:

格式:md.w 地址 数据

例子:md.w aa 98(往0xaa写入98H)

3.需要注意的地方:

(1).2440的A1引脚接到的NOR为A0,所以2440发出(555h << 1),NOR才能收到555h这个地址。

(2).在Nor Flash中写数据,前提是,写入地址对应的数据全为f,否则,会发生错误。故正确的写数据顺序应该为:先擦除后烧写。

(3).U-BOOT对于NOR FLASH的操作流程大概是:先解锁,进入读id状态,再读信息,退出读id状态之后,才能进行写操作。

(4).U-BOOT对于NAND FLASH的操作流程大概是:先选中引脚,发命令、发地址、读第一个数据、读数据得到device code。

三.关于NAND FLASH

attachments-2020-05-BiycxSWo5eb380009d526.png

由图可知,NAND FLASH和2440之间只有数据线,如何完成传输地址、命令、怎么让它们互不干扰?

(1).DATA0~DATA7既传输地址,又传输命令。主要是通过引脚的高低电平:ALE、CLE、RnB

(2).ALE管地址,CLE管命令,ALE和CLE配合管数据

ALE为高地址
CLE为高命令
ALE和CLE为低数据

(3).通过RnB引脚的状态来判断烧写状态,若RnB为高电平,烧写就绪,反之,正在烧写


0 条评论&回复

请先 登录 后评论
Litchi_Zheng
Litchi_Zheng

5 篇文章

作家榜 »

  1. 百问网-周老师 18 文章
  2. st_ashang 14 文章
  3. 渐进 12 文章
  4. zxq 11 文章
  5. helloworld 8 文章
  6. 谢工 5 文章
  7. Litchi_Zheng 5 文章
  8. 星星之火 5 文章