Nand flash編程技術

        一、nand flash容量與接口

        1.容量

        nand flash按照面、塊、頁、字節進行存儲空間的管理,以我接觸過的兩款芯片來說:

        K9K8G08U0A的存儲容量爲1024MB = 4(planes) * 2K(blocks) * 64(pages) * 2K(Bytes)

        oob區的大小爲32MB = 256Mbit = 512K(pages) * 64(Bytes)

        (注:該flash中每一頁包括2KB存儲空間和64B的oob區信息)

        K9F2G08U0A的存儲容量爲2Gbit = 256MB = 2(planes) * 1K(blocks) * 64(pages) * 2K(Bytes)

        oob區的大小爲8MB = 64Mbit = 128K(pages) * 64(Bytes)

        (注:該flash中每一頁包括2KB存儲空間和64B的oob區信息)

        2. 接口

        I/O[0-7]:數據、地址、狀態和命令共同複用的輸入輸出口

        CLE:命令鎖存使能

        ALE:地址鎖存使能

        CE:芯片片選使能

        RE:讀使能

        WE:寫使能

        WP:寫保護使能

        R/B:芯片“就緒/忙”信號

        Vcc:電源

        Vss:地

        N.C:懸空

        二、K9F2G08U0A功能框圖、組織結構與支持的命令集



        三、操作步驟

        Nand flash相關寄存器初始化
        給出頁地址,發送塊擦除命令(0x60/0xd0),按塊(128K)擦除
        給出將要寫入數據的起始地址,發送寫命令(0x80/0x10),數據被寫入nand flash指定地址
        給出將要讀取數據的起始地址,發送讀命令(0x00/0x30),將從nand flash讀取指定長度的數據

        四、說明
        通過給定列地址值,我們可以不按頁對齊開始,而是從給定地址開始讀取數據
        循環讀取數據的長度也不必是整頁的長度大小,而是根據實際長度來讀取,如len = 100
        寫入也是同理,不必整頁對齊,但這樣會降低讀寫效率
        擦除必須是從整數頁開始擦,擦除空間必須是一個block的大小,比如128KB

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章