2.3NandFlash的操作
2.3NandFlash的操作
1.NandFlash分类:

2.MLC和SLC对比:

3.信号引脚:

Nandflash的读:
页读:页地址
随机读:页地址+列地址
今天是要实现页读:需要页的地址。
我们来看芯片手册K9F2G08U0A.pdf:找到桉叶读的工作原理图:




寄存器NFCONT:

在这个寄存器里的【1】位:

上面就是选择操作nandflash的位:


-
nandflash的statue寄存器:
![]()
第四位:
![]()
清除RB:第四位为1是,清除RB。
![]()
-
接下来是发送的操作:
寄存器:
![]()
![]()
![]()
-
发送:
![]()
![]()
-
NFDATA:
![]()
主方法:
![]()
Make:编译
![]()
要实现nandflash进行读的功能,必须进行初始化:主要对一下两个寄存器进行初始化:
![]()
![]()
我们主要是初始化这个寄存器的三个参数:TACLS,TWRPH0,TWRPH1。
![]()
有下面的参数得上图参数:为了我们的nandflash能够工作,必须满足他的最小值。
TACLS=0ns
TWFPH0=12ns
TWFPH1=5ns
![]()
上面三个参数的取值运算:
![]()
我们的nandflash使用的HCLK,频率是100MHz的。那么他每震动一次对应的时间是10ns(1/100MHz).
上面有算TACLS>0ns
TWFPH0>12ns
TWFPH1>5ns的公式。
要实现duration=HCLK*TACLS=10ns*TACLS>0,只需要取TACLS=1,即可。
要实现duration=HCLK*(TWRPH0+1)=10ns*(TWRPH0+1)>12ns,只需要TWRPH0=2即可
要实现duration=HCLK*(TWRPH1+1)=10ns*(TWRPH1+1)>5ns,只需要TWRPH1=1,即可。
![]()
![]()
接下来是初始化我们的NFCONT,先disable,再enable使用。
![]()
![]()
复位的操作:
![]()
![]()
![]()
接下来就是来测试这些函数。
解决隐患:
![]()
我是一只菜鸟!FORFISH!

























浙公网安备 33010602011771号