加入收藏 | 设为首页 | 会员中心 | RSS
您当前的位置:首页 > 硬件产品 > 技术文章

Samsung K9F1208U0B Nand flash学习笔记

时间:2008-06-10 09:51:45  来源:  作者:

一、简介

    K9F1208U0B是Samsung生产的64M ×8 Bit,备用位为16Mbit  Nand flash。工作电压为2.7~3.6V。内部存储结构为528Byte * 32page *4096block。8bit的I/O引脚作为命令、地址、数据复用脚。Nand flash只能按page写,按block擦写;写操作只能在空或已擦除的单元内进行;block擦除时间与page读写时间相比要长;并且出厂时可能存在坏块,使用过程中也会出现坏块。

二、 引脚简介

I/O0 ~ I/O7 : 命令、地址输入,数据输出复用;
CLE:  COMMAND LATCH ENABLE命令锁存使能
ALE:  ADDRESS LATCH ENABLE 地址锁存使能
nCE:  CHIP ENABLE芯片使能
nRE:  READ ENABLE 读使能
nWE:  WRITE ENABLE 写使能
nWP:  WRITE PROTECT 写保护
R/nB:  就绪/忙

  8 bit I/O为地址数据复用引脚。nCE为低电平,nWE为低时,命令、地址、数据全部通过I/O引脚写入。数据在nWE上升沿时锁存。64MB的存储空间需要26根地址线来寻址,而只有8 bit的I/O口,所以需要四个周期来传送26bit的地址。Page读取和Page编程同样需要四个周期传送,但Block的擦写操作只需要三个周期。

三、 存储结构

Device, Block, Page 之间的关系:
         1 Device = 4,096 Blocks = 4096*32 Pages = 128K Pages
         1 Block = 32 Page
         1 Page = 528 Byte = 512 Byte + 16 Byte


         其中1 Page中包含有数据寄存器512 Byte 和 16 Byte的备用位用于ECC校验存储。所以有528 columns * 128K rows(Pages) 。1 Page中的512 Byte的数据寄存器又分为两个部分1st 256 Bytes和 2nd 256 Bytes 。

         用于数据存储的单元有 512 Bytes * 32 Pages * 4096 Blocks = 64 MB,用于ECC校验单元有16 Bytes * 32 Pages * 4096 Blocks = 2MB 。

四、nand flash寻址

          由于寻址需要26bit的地址,该26bit地址通过四个周期发送到nand flash,如下图所示:




Read 1操作:该操作是对512 Bytes * 32 Pages * 4096 Blocks = 64 M的数据寄存器进行寻址。

        第一个周期发送A7~A0 的8bit Column地址,8bit的寻址范围是0 ~ 255,只能对1st 256 Bytes部分进行寻址。00h命令是1st 256 Bytes部分寻址。当发送01h命令时,A8将会被置1,此时寻址范围变成了256 ~ 511了,所以01h命令是对2nd 256 Bytes部分进行寻址。

     (*注意:A8在发送00h命令后被清0,在发送01h命令后被置1,并且在发送01h对2nd寻址完毕后,A8会自动清0,指针会自动地指向1st

        第二个周期的A9 ~ A13的5bit是对 Page进行寻址(因为1 Block = 32 Pages ,5bit的寻址范围是0~31,可以对1 Block里面的所有Page进行寻址)。

       A14 ~ A25的12bit则是对Block进行寻址,12bit的寻址范围是0 ~ 4095,对整个Device的4096个Blocks进行寻址。

Read 2操作:该操作是对 16 Bytes * 32 Pages * 4096 Blocks =2MB的备用位(ECC)进行寻址。

       50h命令为 Read2操作,对1 Page里面的后16 Byte寻址。

这样,通过四个周期的发送即可对整个Device的所有存储单元进行寻址。

 


五、关于坏块
 
        由于nand flash有擦写寿命限制,所以在使用中不可避免地会出现坏块。但nand flash的前4K会由厂商保证不是坏块,不需要进行ECC校正。这同时保证了ARM从nand flash启动时把nand flash的前4K代码自动复制到ARM的内部的4K RAM中的正确性。

         坏块的识别:
芯片的擦除操作是把所有的位变成1。而坏块的状态标记位由page内的第261个Byte进行标记。

来顶一下
近回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
相关文章
    无相关信息
栏目更新
栏目热门