嵌入式技术
Nand Flash 是一个存储芯片。
那么:这样的操作很理“读地址A的数据,把数据B写到地址A”
问1:原理图上的Nand Flash和SC2440之间只有数据线,怎么传输地址?
答:在Data0-Data7上既传输数据,又传输地址,当ALE为高电平时传输的是地址
问2:从Nand Flash芯片手册可知,要操作Nand Flash需要先发出命令,怎么传入命令。
答:在Data0-Data7既传输数据,又传输地址,也传输命令
当ALE为高电平时传输的是地址
当CLE为高电平时传输的是命令
当ALE和CLE为低电平时传输的是数据
问3:数据线既接到Nand Flash,也接到NOR Flash,还接到SDRAM等等,怎么避免干扰?
答:这些设备,要访问之前必须选中
没有选中的芯片不会工作,相当于没有接一样
问4:假设烧写Nand Flash,把命令、地址、数据发给它之后,Nand Flash肯定不可能瞬间完成烧写的,怎么判断烧写完成?
答:通过状态引脚RnB来判断:它为高电平表示就绪,它为低电平正忙。
怎么操作Nand Flash呢?
答:根据Nand Flash的芯片手册,一般的过程是:
发出命令
发出地址
读写数据
以上操作可以从时序图上得到
我们先看下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条评论
快来发表一下你的评论吧 !