你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 编程语言
s3c2410处理器平台下Nandflash的读写(二)
 

2.3 编程原理

Nandflah接口控制器提供了一系列的擦除、编程、读取等命令,正是这些命令应用程序为控制Nandflash芯片部件提供了接口。

24 操作步骤

    对一个Nandflash的操作,总体上,可以分为4个周期。

 

3  无操作系统下的编程

 

由图1可以看出,命令地址数据信号分时复用I/O0~I/O7,而且32的地址也要分时输入,因此32位的地址需要4个时间周期,k9f1208芯片容量为64MB,地址空间为[025],地址空间被分为[07][916][1724][25]4个部分分时输入。第8位地址[8]halfpagepointer(半页指针),表示在整页中的位置,即:是0~255地址空间还是256~511地址空间。通过命令由硬件完成设置,具体实现如下: 

// rNFCONF定义为Nandflash 的配置寄存器

#define rNFCONF     (*(volatile unsigned *)0x4e000000)

//将rNFCMD定义为Nandflash的命令寄存器

#define rNFCMD      (*(volatile unsigned char *)0x4e000004)

//将rNFADDR定义为Nandflash的地址寄存器

#define rNFADDR     (*(volatile unsigned char *)0x4e000008)

//将rNFDATA定义为Nandflash的数据寄存器

#define rNFDATA     (*(volatile unsigned char *)0x4e00000c)

将rNFSTAT定义为Nandflash的状态寄存器

#define rNFSTAT     (*(volatile unsigned char *)0x4e000010)

#define NFChipEn()      (rNFCONF &= ~0x800)// 通过设置配置寄存器让芯片使能

#define NFChipDs()      (rNFCONF |= 0x800)//解除芯片使能

#define WrNFCmd(cmd)    (rNFCMD = (cmd))//通过命令寄存器送出命令

#define WrNFAddr(addr)  (rNFADDR = (addr))//通过地址寄存器送出地址

#define WrNFDat(dat)    (rNFDATA = (dat))//通过数据寄存器送出数据

#define RdNFDat()       (rNFDATA)//读取数据寄存器

#define RdNFStat()      (rNFSTAT)//读取状态寄存器

void InitNandCfg(void)

{//通过配置寄存器进行初始化配置 

    rNFCONF = (1<<15)|(1<<12)|(1<<11)|(7<<8)|(7<<4)|(7);   

}

unsigned int WaitNFBusy(void)  

{//用于等待硬件操作完成,若返回值为1则表明硬件操作过程中出错

    unsigned char stat;

    WrNFCmd(QUERYCMD);//送出查询命令

    do {

        stat = RdNFDat();//从数据寄存器中,读出数据

    }while(!(stat&0x40));//在查询时序下,数据寄存器的第5位,若为1则表示硬件操作完成

  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089