下面开始分析nand flash时序图,并以读操作为例编写nand flash驱动,先看下我们应该发什么命令读数据,下面是数据手册的命令集合:
由上可以看出,要读取数据,只需要发送一个命令周期,发00h或01h。
知道了发什么命令,再来看如何发送命令,下面是读命令的时序图:
上面图的红线处,它所在的时刻就是在发送读操作的第一个周期的命令0x00之前的那一刻。看下此时红线所穿过好几行都对应什么值,以及进一步理解,为何要那个值。
(1)穿过的第一行,是CLE,即命令锁存使能的引脚,将CLE置1,就说明将要通过I/O复用端口发送进入Nand Flash的是命令,而不是地址或者其他类型的数据。只有这样将CLE置1,使其有效,才能去通知了内部硬件逻辑,你接下来将收到的是命令,内部硬件逻辑才会将受到的命令放到命令寄存器中,才能实现后面正确的操作,否则,不将CLE置1使其有效,硬件会无所适从,不知道你传入的到底是数据还是命令了。
(2)第二行,是CE#,那一刻的值是0。要发命令,就要保证CE#为低电平,使其有效,也就是片选有效。
(