s3c2440硬件篇之四:nandflash(1)介绍-u球体育app下载

单片机 > 单片机程序设计 > 详情

s3c2440硬件篇之四:nandflash(1)介绍

发布时间:2025-06-30 发布时间:
|

如上图所示:小页nand容量=528b * 32页 * 4096块 = 528m bits.可用512m bits.即64m.

下图为英文原文pdf资料截图。

注:nandflash的命令,数据,地址都通过8个i/o口输出。

(1)小页nand。

 

,一页大小为(512 16)528字节(byte).将一页分为3个区:a区为0~255字节,b区为256~511字节,c区为512~527字节。访问某页时,需要选定特定的区:命令00h让地址指针指向a区,01h指向b区,50h指向c区。

 

nand flash的写操作是以页为单位的,但是可以写一页中的一部分。发出命令80h后,紧接着发出4个地址序列,然后向flash发送数据,然后发出命令10h启动写操作。

(2)大页nand

 

 

 

 

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)


『本文转载自网络,u球体育app下载的版权归原作者所有,如有侵权请联系删除』

热门文章 更多
stm32cubemx新建工程 基本io配置过程
网站地图