3 接着又是 0x30,此时 CLE有效,那么就是命令了(也就是说这款nand flash的读操作需要两个命令)。 但是之后数据并未立刻出来,我们看到在到 DATA Output即数据输出之前还有一段时间,为什么有这段时间? 往上看 R/nB 这个数据线上说明了原因,这段时间内它是低电平 即指示现在 处于 忙碌状态,还未准备好数据输出。为什么会这样? 因为你 写了 一个命令,写了要读数据的地址,又写了一个命令。 你总要给 cpu一些时间去处理这些命令吧, R/nB为低电平这段时间就是 在处理这些命令(实际上是根据命令将你定位的那一页数据读到内部寄存器中), 等 R/nB变成高电平了,就指示命令处理完毕,现在数据也就可以读出来了。 综上我们从手册中我们就知道了读操作的具体步骤, 1 首先nand flash 也是一个外设,要访问他就需要片选它,所以在执行时序图上的步骤之前需要片选nand flash. 2 看后面就是安装时序图来了,看时序图! 第一步先是发送一个命令 0x00. 3 看时序图! 然后发送五个地址序列(先发送两个列地址,在发送三个行地址(即页地址)) 4 看时序图! 接着再是一个命令 0x30. 5 看时序图! R/nB 引脚为低表示现在正忙,正在处理这些命令,那就要等待 R/nB 引脚变为高电平 6 看时序图! 这个时候就可以读数据了 7 一次读操作结束了 nand flash 暂时是不需要使用了,那么别忘了应该 取消片选信号。 至于这每一个步骤中具体的时序,cpu中的nand flash控制器会帮我们完成。我们要做就是设置几个时间参数 这里我们反复强调了要看时序图。其实学嵌入式前期对数据手册一定要多看,看多了你就回知道,什么东西的你重点要看的,什么是和你的编程操作无关的你不需要关心。这样后面你才能,拿到一个外设 就能写出他的操作。而不用跟着书背步骤。只要手册在就行了。 上面的步骤,是一个具体的读操作的步骤,不过在使用一个器件之前我们需要初始化一下它。至于初始化也就是设置我们上面多次提到的 我们说过 s3c2440已经帮我做了很多底层的单元操作,我们只需设置几个时间参数 片内的 nand flash就会自动发出相应操作的时序操作 那么到底设置那几个时间呢。 s3c2440 手册上给出了 需要我们设置的几个参数。
28852942_1384479615V14Z.jpg (16.94 KB, 下载次数: 39)
下载附件 [url=]保存到相册[/url]
2014-9-12 02:32 上传
从中我们可以看出 第一幅时序图是 命令和地址锁存的时序,第二幅是 数据读取和写入的时序。
可以看出,他们要设置的时间都是一样的。前面分析了那么多,这里应该不难 看出
|