nand flash操作原理
1. nand flash原理图
信号线只有LDATA[0:7],既发送命令,发送地址,还能读写数据。
nand flash引脚定义:
RnB : 状态信号
nFCE : 片选信号
CLE : 为高表示当前 LDATA上的数据是命令
ALE : 为高表示当前LDATA上的数据是地址
nFWE : 写
nFRE : 读
2.辨别NAND Flash
每个nand flash里面都有一个读ID命令,可以通过id判断nand flash型号。
再看读id的时序图:
从上面时序图看出:
读id的顺序如下:
①首先拉低CE,即选中芯片
②拉低WE,表示写, 同时把数据0x90写到总线
③CLE = 1高脉冲表示当前为命令
④ALE = 1;拉高ALE, 表示当前是地址, 发送地址0x00
⑤读id, 第一个字节0xEC
对于s3c2440来说怎么操作呢?
① 选中芯片, 即NFCONT寄存器(0x4E000004)的bit1 写 0
② NFCMMD(0x4E000008) = 0x90
③NFADDR(0x4E00000C) = 0x00
④ val = NFDATA(0x4E000010)
⑤val = NFDATA(0x4E000010)
在u-boot里面操作:
mw.l 4e000008 1 // 片选,设置4e000008 的bit1 = 0
mw.l 4E000008 90 // NFCMMD = 0x90
mw.l 4E00000C 0x00 // NFADDR = 0x00
md.b 4E000010 // read NFDATA 得到0xEC
md.b 4E000010 // read NFDATA 得到0xDA
对比datasheet里面的read id可知我的mini2440的开发板是K9F2G08X0A, 大小是256M