6、Nandflash操作
1)初始化,发出片选信号,设置nandflash配置寄存器:设置TACLS = 0ns = Tcls - Twp = Tals - Twp、TWRPH0 = 15ns = Twp、TWRPH1 = 5ns = Tclh
a) MEM_SYS_CFG[1] = 0, 选中nandflash
b)NFCONF[30] = 0
0ns <=133Mhz * NFCONF[14:12] = 1000 / 133 ns * NFCONF[14:12]
NFCONF[14:12] = 0
15ns <= 1000 / 133 ns * NFCONF[10:8]
NFCONF[10:8] >= 2
5 <= 1000 / 133 * NFCONF[6:4]
NFCONF[6:4] >= 0
2)开启nandflash: NFCONT[0] = 1
3)发送命令
4)发送地址(列地址12位,行地址19位)
5)发送数据或读取数据
6)取消片选: MEM_SYS_CFG[1] = 1
遇到的问题:
1)使用韦东山的代码运行,发现有问题,查证是因为用的nandflash芯片不一样,参数配置有所区别。将NFCONF[10:8] 配置为2后正常运行(DDR恰好用的同一个芯片手册)。
2)使用c库的函数(写printf函数)在函数调用后不能运行