S3C2440 NAND Flash的使用

时间:2018-07-24

    基本知识

  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

  \nFRE: 读使能

  \nFCE: 芯片使能

  CLE : 命令锁存使能

  ALE : 地址锁存使能

  \nFWE: 写使能

  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 是错误的


上一篇:STM32 USART 串口 DMA 接收和发送的源码详解
下一篇:一种基于ASIC的高速异步FIFO设计

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料