Nand Flash操作原理及裸机程序分析——FLASH操作原理
来源:韦东山嵌入式专栏_ARM裸机加强版维基教程
作者:韦东山
本文字数:1056,阅读时长:10分钟
NAND_FLASH操作原理
NAND FLASH原理图NAND FLASH是一个存储芯片那么: 这样的操作很合理”读地址A的数据,把数据B写到地址A”
问1. 原理图上NAND FLASH和S3C2440之间只有数据线,怎么传输地址?
答1. 在DATA0~DATA7上既传输数据,又传输地址当ALE为高电平时传输的是地址,
那么在数据线上是不是只传输数据和只传输地址呢?
我们参考NAND FLASH的芯片手册可以知道,对NAND FLASH的操作还需要发出命令,下面有个NAND FLASH的命令表格
问2. 从NAND FLASH芯片手册可知,要操作NAND FLASH需要先发出命令怎么传入命令?
答2. 在DATA0~DATA7上既传输数据,又传输地址,也传输命令:
当ALE为高电平时传输的是地址。当CLE为高电平时传输的是命令。当ALE和CLE都为低电平时传输的是数据。
问3. 数据线既连接到NAND FLASH,也接到NOR FLASH,还接到SDRAM、DM9000等等那么怎么避免干扰?
答3. 这些设备,要访问时必须”选中”,没有选中的芯片不会工作,相当于没接一样。
问4. 假设烧写NAND FLASH,把命令、地址、数据发给它之后,NAND FLASH肯定不可能瞬间完成烧写的,怎么判断烧写完成?
答4. 通过状态引脚RnB来判断:它为高电平表示就绪,它为低电平表示正忙
问5. 怎么操作NAND FLASH呢?
答5. 根据NAND FLASH的芯片手册,一般的过程是:
发出命令
发出地址
发出数据/读数据
看上面的命令表格,不容易看,我们看一下读ID的时序图,
每个NAND FLASH都内嵌一些ID(譬如:厂家ID,设备ID),时序图从左往右看,纵向放是一列一列的看。
对于我们s3c2440来说,内部集成了一个NAND FLASH控制器,2440和外设连接的简易图,如下图所示
NAND FLASH控制器,帮我们简化了对NAND FLASH的操作,下面来分析一下不使用NAND FLASH控制器和使用NAND FLASH控制器对外设NAND FLASH的操作。
发命令:
发地址:
发数据:
读数据 :
用UBOOT来体验NAND FLASH的操作:
1.读ID
下图是读操作时序图
对于存储为256M的NAND FLASH,需要28条地址线,来表示这个地址值,根据原理图可以,只用8根地址线,所以需要4个周期的地址,为了兼容更大容量的NAND FLASH,要发出5个周期的地址:(如下图所示)
2.读数据
「新品首发」STM32MP157开发板火爆预售!首批仅300套
NAND flash 信号线的理解
上一篇我们已经讲了NAND flash的分类,这一篇介绍NAND flash 的硬件接口。例如
由NAND Flash的原理图封装,然后查看芯片手册。
由图可知:IO0-IO7:既可传送数据也可传送地址,也可以送传命令。那到底是读是写,还是擦除?怎么区分IO0-IO7传送的是数据?地址?命令? 那么就需要通过CLE与ALE的状态来区分了。
假如2440要读取A地址的数据,或将数据写入B地址。当CLE为高电平表示IO0-IO7传送的是命令;当ALE为高电平表示IO0-IO7传送的是地址;当ALE与CLE都为低电平的时候,表示IO0-IO7传送的是数据。
CE:片选。当2440要操作访问Nand的时候,首先必须选中。
RE:读信号,当RE为低的时候,表示数据由Nand流向2240;
WE:写信号,当RE为低电的时候,表示数据由2240流向Nand;
WP:写保护,只能写,不能擦除。
R/B:Ready信号,表示Nand Flash烧写完成
这些引脚具体怎么组合起来的,需要查看手册中的时序图。
发(写)命令的时序图:
首先CE发出片选信号,CLE发出高电平,IO 0-7将命令驱动出去,WE写脉冲,在写脉冲的上升沿,Nand flash在上升沿,将IO 0-7中数据读取出来。
发地址的时序图:
CE片选, ALE由低变高,IO 0-7驱动 数据,WE发出写脉冲。
输入(写)数据的时序图:
CE选中,ALE、CLE低电平,2440 IO 0-7驱动 数据,WE写信号,Nand flash根据ALE、CLE低电平,读取数据。
输出(读)数据的时序图:
CE低电平选中,RE由高变为低(Nand flash收到RE由高变低时,马上准备数据,然后在RE的上升沿将数据发送出去),Nand flash 驱动数据到IO 0-7,在上升沿,2440取数据。
2440这些引脚发出的数据,必须满足Nand flash的时序要求。需要查看2440芯片手册,查看设备哪个寄存器的某些位来控制时序
相关问答
inand是什么文件?inand是一个文件系统的缩写,全称为"InternalNANDFlashDisk",意为内部NAND闪存磁盘。它是一种用于嵌入式系统中的存储设备,通常用于存储操作系统、应用...
nandflash 片选怎么给?nandflash片选可以通过log实现给nandflash片选可以通过log实现给
arm CPU集群 如何启动?启动方式(1)norflash:2MB,从norflash的0地址处开始运行第一条代码,所以代码一定要放在norflash的最前端(2)nandflash:128MB,但是nandflash没有参...
nandflash 是什么?这个应该是手机/相机/PDA上的说明。。。NandFlash是一种存储介质。相当于电脑的硬盘。是用来存储东西的。电脑上可存储的东西,在这里也都能存储。而1GGG8GG...
flash 应用需求分析?需求分析是开发人员经过深入细致的调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义,从而确定系统...
求Teclast NANDFlash U盘量产修复具体步骤,谢谢?你好,下载IS916-BO量产工具。插上U盘,解压后,点击EXE应用程序,在量产设置项中输入PID和VID,开始量产就可以了。你好,下载IS916-BO量产工具。插上U盘,解压后...
Nand Flash 和Nor Flash 有什么区别?求解?1、写入/擦除操作的时间不同【nandflash】:擦除NAND器件以8~32KB的块进行,执行同一写入/擦除的操作时间为4ms【norflash】:擦除NOR器件是以64~128KB的块.....
arm的基本资源?IIC总线通信。IIS总线。SPI。就这些就差不多了,学好上面这些内容,对学习Linux操作系统还是一些类似的ARM芯片都比较简单了。当然2440还有其他资源,像U...
NandFlash 和NorFlash的区别?1、存储架构不同NORFlash架构提供足够的地址线来映射整个存储器范围。这提供了随机访问和短读取时间的优势,这使其成为代码执行的理想选择。另一个优点是100%...
怎么查看手机的ufs版本-ZOL问答通过AndroBench等闪存速度测试软件,对机器的读写速度进行测试,间接性的闪存规格判定。最高速度在300MB/s以下的大几率都是eMMC,在500MB/s附近则可能是UFS2.0...