nandflash原理及硬件操作

原创 2017年03月24日 19:18:15

我们先看下nandflash的布线


有data0 到data7 八根数据线


nandflash是个存储芯片,那我提出请求:读地址a的数据,把数据b写到a地址上去

那么我们看原理图只看到data0-data7,没有看到地址引脚,那怎么把地址传给我们的开发板

复用,这几个引脚即传数据也传地址

怎么分别是数据还是地址呢,有个ALE信号,当ALE是高电平时,传输的是地址

但是它不仅只传输地址和数据,还传输命令,在nand flash芯片手册可知,要操作nandflash要先发出命令,只有八条数据线,怎么传输命令呢???

当CLE为高电平的时候传输的就是命令,当ALE和CLE都为低电平的时候传输的是数据。

这个data0 有的开发板不仅仅只接nandflash,还有的接norflash等等非常多的地方

数据线 地址线等即接到nandflash,也接到norflash,还接到sdram,DM9000等等。怎么避免干扰,比如说我访问nandflash的时候,norflash就不要给我提供数据

你就要相当与没接一样,怎么避免干扰呢???

就是通过这些设备要访问之前,必须选中,什么叫选中呢,他们都有片选信号,就要我们的片选引脚变为低电平选中,就是cs引脚,没有选中的芯片不会工作,相当于没接一样


假设烧写nandflash,把数据、命令、地址发给他之后,nandflash肯定是不可能瞬间完成的,怎么判断烧写完成,通过状态引脚RnB来判断,它为高电平表示完成就绪。为低电平表示正忙


we和re就是读写信号..


怎么操作nandflash

根据nandflash的芯片手册,一般过程是:发出命令,发出地址,读写数据。

nandflash的命令表格如下


我们往下看,拿个例子来看,读ID这个例子的时序图


每个nandflash都会内嵌ID,比如厂家ID啊等等。

时序图 横轴是时间,时序图怎么看呢 ,从左往右看。纵向方向就是一列一列 来看

然后可以看到发出命令 90,怎么知道的 ,在数据线上发出90这个值,怎么知道它是命令的,就是CLE是高电平。然后给它一个写脉冲。这个写信号的上升沿nandflash就会把数据存进来,它就知道了我是一个命令。

然后接着发出一个0地址,然后就可以读数据了


对于我们芯片来说里面集成了一个nandflash控制器,内部接线。它帮我们简化了这些操作,


nandflash 芯片(rus5pv210)

选中芯片

发命令的操作 CLE变为高电平 把命令值写到NFCMD寄存器里就可以了

在data0-data7输出命令值

提供一个写脉冲


选中芯片

发地址 ALE输出高电平

在data0-data7输出地址值 把地址写入NFADDR寄存器里就可以了

提供一个写脉冲

选中芯片

发数据 ALE,CLE输出低电平

在data0-data7输出数据的值 把地址写入NFDATA寄存器里就可以了

提供一个写脉冲


选中芯片

读数据 发出一个读脉冲

读data0-data7的数据



我们可以用uboot体验nandflash的操作


1.读ID,时序图在上面

选中

发出0x90命令

发出地址0x00

读第一个数据会得到0xEC

读第二个数据得到device code


选中的话芯片手册的nand flash章节 可以知道


选为0为选中


发出命令就是把命令写到下面这个寄存器里面去


同理 地址和数据也是一样寄存器如下



但是在uboot里面怎么操作呢

uboot里面有命令可以读内存的

md.w 0xB0E0_0004 1 这命令表示读 0xb0e00004 读一次

mw.w 是写命令




md 内存显示 b是以字节为单位,w是以2字为单位,l是以四字节为单位



读ID命令流程如图



读出dc

我们验证一下  nandflash里面读ID下面就有这张图 


结束读ID的命令 就是NFCMD 寄存器等于0xff 就是命令的reset


2.读数据

我们可以根据uboot的nand dump 0命令读取0地址的数据



我们来一下nandflash读操作的时序图


为什么中间有五个地址

看容量


读00数据命令如下


跟上面的输出是一样的 



















FPGA 控制 nand flash读写

最近 项目上用FPGA 去操作nand_flash.终于实现 了。其实主要把 NAND_FLASH接口时序搞定,就没有问题。...
  • angelbosj
  • angelbosj
  • 2015年01月13日 17:12
  • 5514

NAND Flash 读、写、擦除原理

以Micron公司的MT29F2G08为例介绍NAND Flash原理和使用。 1. 概述         MT29F2G08使用一个高度复用的8-bit总线(I/O[7:0])来传输数据、地址、指令...
  • YuZhiHui_No1
  • YuZhiHui_No1
  • 2015年04月24日 09:26
  • 7272

NAND FLASH ECC校验原理与实现

参考文档: http://blogimg.chinaunix.net/blog/upfile2/080702112233.pdfNAND FLASH ECC校验原理与实现ECC简介  由于NAND F...
  • nhczp
  • nhczp
  • 2007年07月20日 10:28
  • 22754

NAND Flash硬件原理

  一、存储数据的原理 两种闪存都是用三端器件作为存储单元,分别为源极、漏极和栅极,与场效应管的工作原理相同,主要是利用电场的效应来控制源极与漏极之间的通断,栅极的电流消耗极小,不同的是场效应管为单...
  • SdustLiYang
  • SdustLiYang
  • 2011年05月24日 08:23
  • 1427

NAND与NOR FLASH的原理与异同

一、存储数据的原理 两种闪存都是用三端器件作为存储单元,分别为源极、漏极和栅极,与场效应管的工作原理相同,主要是利用电场的效应来控制源极与漏极之间的通断,栅极的 电流消耗极小,不同的是场效应管为单栅极...
  • xiaofei0859
  • xiaofei0859
  • 2015年11月11日 10:45
  • 1261

NAND FLASH学习笔记之nand flash基础(三)

(4)nand flash的操作方法 1、命令字 NAND Flash的读取和烧录以(page)页为基础,擦除以块为单位。那么,在NANDFlash上有三种基本的操作:读取一个页, 烧录一个页和...
  • hellomxj1
  • hellomxj1
  • 2014年02月08日 15:58
  • 2748

NandFlash操作详解(二)

NandFlash读操作:          NandFlash的读取分为页读和随机读。页读每次读取一个page,从page的第一个数据开始读。其实也就是列号(偏移地址)为0,只提供页地址。 随机读能...
  • doccode
  • doccode
  • 2015年07月20日 09:38
  • 777

Nand Flash介绍和Nand Flash控制器使用

一、Flash介绍     常用的flash类型有NOR Flash 和Nand Flash 两种;     (1)Nor Flash     1、Nor Flash的接口和RAM完全相同,可以随机访...
  • u011308691
  • u011308691
  • 2014年04月28日 23:49
  • 1626

NAND Flash控制器的一些小知识

NOR Flash存储器具有速度快、数据不易失等特点,在嵌入式系统中可作为存储并执行启动代码和应用程序的存储器。但是由于NOR Flash存储器的价格比较昂贵,而SDRAM和NAND Flash存储器...
  • pengrui18
  • pengrui18
  • 2012年06月21日 08:18
  • 1727

NAND闪存与NOR闪存的工作原理详解

经典物理学认为 物体越过势垒,有一阈值能量;粒子能量小于此能量则不能越过,大于此能量则可以越过。例如骑自行车过小坡,先用力骑,如果坡很低,不蹬自行车也能靠惯性过去。如果坡很高,不蹬自行车,车到一半就...
  • sunflowerfsw
  • sunflowerfsw
  • 2016年08月22日 17:36
  • 2625
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:nandflash原理及硬件操作
举报原因:
原因补充:

(最多只允许输入30个字)