Chinaunix首页 | 论坛 | 博客
  • 博客访问: 148049
  • 博文数量: 35
  • 博客积分: 45
  • 博客等级: 民兵
  • 技术积分: 286
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-14 18:49
个人简介

生命不止,奋斗不息。

文章分类

全部博文(35)

文章存档

2015年(1)

2014年(1)

2013年(32)

2011年(1)

我的朋友

分类: 嵌入式

2013-07-01 22:12:09

 

NandFlash

2012125

16:32

第一步:GPIO管脚配置为相应的功能

 

第二步:NandFlash配置寄存器设置

 

第三步:NandFlash控制寄存器配置

 

第四步:初始化之前设置为忙状态

 

第五步:复位

 

第六步:读ID

 

 

写操作

 

第一步:块擦除

 

第二步:复位

 

第三步:页写

 

第四步:复位

 

页写

判断是否为坏块

初始化ECC

解锁MainECC

 

页读

 

随机写

 

随机读

 

 

 

S3C2440 NandFlash控制器介绍:

NAND Flash控制器提供几个寄存器来简化对NAND Flash的操作。比如要发出读命令,只需往NFCMD寄存器写入0即可,NAND FLash控制器会自动发出各种控制信号。

1、操作方法概述

访问NAND Flash时需要先发出命令,然后发出地址序列,最后读/写数据需要使用各种使能信号来分辨是命令、地址还是数据。S3C2410的NAND Flash控制器提供了NFCONF、NFCMD、NFADDR、NFDATA、NFSTAT和NFECC等6个寄存器来简化这些操作S3C2440的NAND Flash控制器则提供了NFCONF、NFCONT、NFCMMD、NFADDR、NFDATA、NFSTAT和其它与ECC有关的寄存器。对NAND Flash控制器的操作,S3C2410和S3C2440有一些小的差别:有些寄存器不一样,有些寄存器内容不一样,这在实例程序中会体现出来。

NAND Flash的读写操作次序如下:

(1)设置NFCONF(对于S3C2440,还要设置NFCONT)寄存器,配置NAND Flash。

(2)向NFCMD寄存器写入命令,这些命令可以参考表8.2。

(3)向NFADDR寄存器写入地址。

(4)读/写数据:通过寄存器NFSTAT检测NAND Flash的状态,在启动某个操作后,应该检测R/nB信号以确定该操作是否完成、是否成功。

2.下面讲解这些寄存器的功能和用法:

1)NFCONF:NAND Flash配置寄存器

这个寄存器在S3C2410、S3C2440上功能有所不同。

S3C2410的NFCONF寄存器被用来使能禁止NAND Flash控制器、使能禁止控制引脚信号nFCE、初始化ECC,设置NAND Flash的时序参数等。

(2)NFCONT:NAND Flash控制寄存器,S3C2410没有这个寄存器。

被用来使能/禁止NAND Flash控制寄存器,使能/禁止控制引脚信号nFCE、初始化ECC。它还有其它功能,在一般的应用中用不到,比如锁定NAND Flash。

(3)NFCMD:NAND Flash命令寄存器

对于不同型号的Flash,操作命令一般不一样。对于本板使用的K9F1208U0M,可参考表8.2。

(4)NFADDR:NAND Flash地址寄存器。

当写这个寄存器时,它将对Flash发出地址信号。

(5)NFDATA:NAND Flash数据寄存器。

只用到低8位,读、写此寄存器将启动对NAND Flash的读数据、写数据操作。

(6)NFSTAT:NAND Flash状态寄存器

只用到位0,0:busy,1:ready

读NandFlash的步骤:

①设置NFCONF

在HCLK=100Mhz的情况下,TACLS=0,TWRPH0=3,TWRPH1=0,则

NFCONF = 0x300

使能NAND Flash控制器、禁止控制引脚信号nFCE,初始化ECC

NFCONT = (1<<4) | (1<<1) | (1<<0)

②操作NAND Flash前,复位

NFCONT &= ~(1<<1) 发出片选信号

NFCMD = 0xff reset命令

然后循环查询NFSTAT位0,直到等于1,处于就绪态

最后禁止片选信号,在实际使用时再使能

NFCONT |= 0x2 禁止NAND Flash

③发出读命令

NFCONT &= ~(1<<1) 发出片选信号

NFCMD = 0 读命令

④发出地址信号

⑤循环查询NFSTAT,直到等于1

⑥连续读NFDATA寄存器,得到一页数据

⑦最后禁止NAND Flash片选信号

NFCONT |= (1<<1)

阅读(1467) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~