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

S3C2440 NAND Flash的使用

发布时间:2020-05-16 发布时间:
|

1、基本知识

NAND flash: 速度快,擦写5ms内;位翻转概率较大,为10%左右;容量大,块容量在8K以上,擦写次数较多;接口为IO接口

NOR flash: 速度慢,擦除5S时间;位翻转概率小于NAND flash;容量较小,块容量在64K以上,擦写次数没有NAND flash多;接口为RAM接口,可以直接运行程序

2、注意事项

2.1:在每次写操作之前需要进行擦除操作 

2.1:使用前扫描坏块,不再使用

3、容量关系

1页 = 512 + 16字节 

1块 = 512B * 32页 

= (16K + 512)字节 

1个器件 = 4096块 = 528M

不同的flash有不一样的页块大小,对于K9F2G08U0C来说


1页 = 2K 

1块 = 128K = 64页 

冗余区大小 = 512 * 16 byte 

一个器件两层 

一层 = 1GB = 8块

4、一次传输

4.1:传命令 检查状态 

4.2:传地址 检查状态 

4.3:传数据 检查状态

5、NAND flash interface(基本接口)

RnB : 就绪/忙 输出信号 Busy 

FRE: 读使能 

FCE: 芯片使能 

CLE : 命令锁存使能 

ALE : 地址锁存使能 

FWE: 写使能 

DATA[0~7]: 数据输入输出

扩展 

WP : 写保护


6、关于时间

寄存器NFCONF的 TACLS = setup time 

TWRPH0 = WE High to Busy 

TWRPH1 = Hold time

7、关于位地址操作

由于本板子上的nand flash标写的是八位的,而技术手册上明确表示

8位、2048bit、5 cycle address的取址操作是A0-A7 A8-A11 A12-A19 A20-A27 A28 

16位、2048bit、5 cycle address的取址操作是A0-A7 A8-A10 A11-A18 A19-A26 A27

但是在本板子上实验的结果是按16位的可以正确索引到地址,而按8位的反而不能找到地址了,而韦东山的程序也是按照16位的,并且还多出了A28,暂且在此认为是硬件的问题


8、NAND flash 的操作步骤

8.1、NFCONF寄存器的配置:主要是关于时序的问题,板子上集成的nand flash 模块可以发出特定的时序,只需要简单的配置一下时间, 

具体可以参照NAND flash 对应的技术手册。 

8.2、NFCONT寄存器的配置:主要关注的是使能ECC,关闭片选,类似于LCD1602的配置方式,其中有些位是由外部引脚的状态所决定的, 

具体可以参照S3C2440技术手册的NAND flash控制章节。 

8.3、复位:复位指令0xFF,需要先片选,等待操作成功,取消片选 

指令的下达,有关操作可以参照NAND flash的控制步骤

Tips: 用define的时候一定要在后面加上括号 

例如:#define S3C2440_NAND ((S3C2440_NAND_FLASH *)0x4E000000) 

形如:#define S3C2440_NAND (S3C2440_NAND_FLASH *)0x4E000000 是错误的



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
单片机的电子存包柜的软件设计