Nand Flash介绍和Nand Flash控制器使用

一、Flash介绍

    常用的flash类型有NOR Flash 和Nand Flash 两种;

    (1)Nor Flash

    1、Nor Flash的接口和RAM完全相同,可以随机访问任意地址的数据,在其上进行读操作的效率非常高,但是擦除和写操作的效率很低,另外,Nor Flash的容量一般比较小,通常,Nor Flash用于存储程序
    2、Nor Flash的块大小范围为64KB—128KB;
    3、擦写一个Nor Flash块需要4s,
    4、市场上Nor Flash 的容量通常为1MB—4MB

    (2)Nand Flash
    1、Nand Flash的接口仅仅包含几个I/O引脚,需要串行地访问,Nand Flash进行擦除和写操作的效率很高,容量较大,

通常Nand Flash用于存储数据
    2、Nand Flash的块大小范围为8KB—64KB;
    3、擦写一个Nand Flash块需要2ms;
    4、Nand Flash 一般以512字节为单位进行读写
    5、 市场上 Nand Flash 的容量一般为 8M—512M

 

二、Nand  Flash的物理结构

    以三星公司生产的 K9F1208U0M  为例:

    1、容量:64MB,

                      一共4个层

                      每层1024个块(block);

                      1块包含32页

                      1页包含 512 + 16  = 528个字节

 

 

    2、外部接口:8个I/O口,5个使能信号(ALE、CLE、nWE、nRE、nCE),1个状态引脚(RDY/B),1个写保护引脚(nWE);            

    3、命令、地址、数据都通过8个I/O口输入输出;

    4、写入命令、地址、数据时,都需要将nWE、nCE信号同时拉低;数据在WE上升沿被锁存;

    5、CLE、ALE用来区分I/O引脚上传输的是数据还是地址;

    6、64MB的空间需要26位地址,因此以字节为单位访问Flash时需要4个地址序列

    7、读/写页在发出命令后,需要4个地址序列,而擦除块在发出擦除命令后仅需要3个地址序列

 

三、Nand Flash访问方法

 1 特殊功能寄存器定义 


#define rNFCONF  (*(volatile unsigned int *)0x4e000000) 
#define rNFCMD   (*(volatile unsigned char *)0x4e000004) 
#define rNFADDR  (*(volatile unsigned char *)0x4e000008) 


#define rNFDATA  (*(volatile unsigned char *)0x4e00000c) 
#define rNFSTAT  (*(volatile unsigned int *)0x4e000010) 
#define rNFECC   (*(volatile unsigned int *)0x4e000014) 
#define rNFECC0 (*(volatile unsigned char  *)0x4e000014) 
#define rNFECC 1 (*(volatile unsigned char *)0x4e000015) 
#define rNFECC2 (*(volatile unsigned char *)0x4e000016) 

2 操作的函数实现 


1. 发送命令 
#define NF_CMD(cmd)    {rNFCMD=cmd; } 

2. 写入地址 
#define NF_ADDR(addr)  {rNFADDR=addr;} 

3. Nand Flash 芯片选中 
#define NF_nFCE_L()    {rNFCONF&=~(1<<11);} 
  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值