OK6410 NandFlash硬件初体验
一、 首先先来看看核心板的原理图
【OK6410 NandFlash硬件初体验】我们发现数据线才有8条,而并没有地址信号,所以该8条线一定是可以传数据,也可以传地址 。而地址线肯定又不够,那么,地址肯定又是多次发出的 。从datasheet可以看到它要发出5个周期的地址 。那怎样分别是命令还是地址?
CLE——Command Locked Enable 当该引脚输入为高电平,则发出的是命令
ALE——Address Locked Enable 当该引脚输入为高电平,则发出的是地址
当两个引脚输入为低电平时,8条总线上传输的是数据 。
CEn为片选信号,因为NandFlash与DDR共用数据线,因此需要选中是用DDR还是NandFlash
WE和RE为是读还是写 。
RNB表示烧写状态,当该引脚输出为高电平时,表示已经烧写完成,进入ready状态;当为低电平,表忙状态 。
如何访问NandFlash?
那就需要参照datasheet的参考时序:
因为6410内部集成NandFlash控制器,因此控制NandFlash就很简单,只需控制Nandflash控制器即可 。步骤为:
(1)初始化NandFlash控制器
a. 发出片选信号——nCE
(2)发出命令
对于6410,因为有NandFlash控制器,只需把命令写到NFCMD寄存器,如果没有NandFlash控制器,需要进行以下步骤:
a.先把数据驱动到data0~7数据线上
b. 使CLE输出1
c.使WE从0变为1
(3)发出地址
对于6410,因为有NandFlash控制器,只需把命令写到NFADDR寄存器,如果没有NandFlash控制器,需要进行以下步骤:
a.先把地址驱动到data0~7数据线上
b. 使ALE输出1
c.使WE从0变为1
(4)发数据
对于6410,因为有NandFlash控制器,只需把命令写到NFDATA寄存器,如果没有NandFlash控制器,需要进行以下步骤:
a.先把数据驱动到data0~7数据线上
b. 使CLE输出0
c. 使ALE输出0
d.使WE从0变为1
(5)读数据
对于6410,因为有NandFlash控制器,只需把命令写到NFDATA寄存器,如果没有NandFlash控制器,需要进行以下步骤:
a. 使RE输出0
b. 等待tRAE
c. NandFlash数据驱动到data0~7,6410便可以读数据
下面看看NandFlash的访问周期:
其中,行地址表示访问哪一页,列地址表示访问哪个地址,上图中,3、4、5表示访问哪一页,1、2表示访问这页的哪个地址 。
现在知道怎样操作NandFlash了,从硬件上也知道它的结构,后面我们来写NandFlash驱动就更容易了!
推荐阅读
- OK6410裸机简单的NAND FLASH驱动
- 74HC595 74HC165程序例子_AVR
- 帮你搞定pic单片机难点,pic单片机硬件死锁问题探讨
- 硬件技术和技术过硬 “两手”都要硬
- 国内首家系统级心率检测!小米心率检测无需额外硬件,通过摄像头即可测心率
- 硬件设计对于LED大屏幕需求提升具有很大的影响
- 做软件与做硬件哪个薪资待遇高 做软件与做硬件的不同体会分享
- 利用简单工具对单片机硬件调试的方法
- ADVFC32与51系列单片机的硬件接口电路
- 你知道嵌入式硬件设计的关键细节有哪些吗?