新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > nandflash(K9F2G08U0A)的復習--APPLE的學習筆記

        nandflash(K9F2G08U0A)的復習--APPLE的學習筆記

        作者: 時間:2016-11-10 來源:網絡 收藏
        1,Nandflash的關鍵接口引腳 (要求:記住)

        2,容量計算: (要求:理解如何計算)
        3,讀寫最基本時序 (要求:記住)
        4,會配置讀寫時序timing (要求:理解如何計算)
        5,MCU的nandflash配置時,主要使用的寄存器 (要求:記住)
        6,常用操作 (要求:記住)
        7,nandflash的boot模式 (要求:記住)
        8,ecc工作原理 (待做)
        9,壞塊基本處理方式 (要求:記住)
        10,nandflash和norflash的基本區別 (要求:記住)

        本文引用地址:http://www.104case.com/article/201611/317311.htm

        基于2440+nandflash(K9F2G08U0A)的復習

        1,Nandflash的關鍵接口引腳(要求:記住)
        CE(片選),nWE(使能寫),nWE(使能讀),ALE(地址/數據鎖存),CLE(命令鎖存),RnB(忙標志),nWP(使能寫

        保護)

        2,容量計算:(要求:理解如何計算)
        1 Page = (2K + 64)Bytes
        1 Block = (2K + 64)B x 64 Pages
        = (128K + 4K) Bytes
        1 Device = (2K+64)B x 64Pages x 2,048 Blocks
        = 2,112 Mbits
        注意單位為Mbits=264Mbyte

        另外,列地址A0-A11共12根線,為2^12=4K,其實要么2K,比(2K + 64)大,那么就是4K,需要12根線。 行地址17根

        線,即2^17=131072,也就是64Pages x 2,048 Blocks。

        3,讀寫基本最時序如下(要求:記住)

        4,會配置讀寫時序timing。(要求:理解如何計算)
        對比如下圖后得知TACLS=tcls-twp=0;TWRPH0=twp;TWRPH1=tclh,接著根據公式自己算寄存器值等等。
        TACLS [13:12] CLE & ALE duration setting value (0~3)
        Duration = HCLK x TACLS

        2440nandflash接口延時命名如下:

        nandflash時序及延時命名如下:

        5,MCU的nandflash配置時,主要使用的寄存器(要求:記住)
        a,配置寄存器:主要是配置timing。
        b,控制寄存器:主要是控制nandflash使能等。
        c,命令基礎器:向寄存器寫入命令數據后。則接口會自動產生一個寫命令的時序。
        d,地址寄存器:向寄存器寫入地址數據后。則接口會自動產生一個寫地址的時序。
        e,數據寄存器:向寄存器讀出數據后。則接口會自動產生一個讀數據的時序。
        f,狀態寄存器:顯示RnB的狀態。

        6,常用操作(要求:記住)
        1,reset流程
        當然先要片選使能,然后發生reset命令,檢測通過狀態寄存器檢測RnB腳從低到高。就算reset成功了。
        2,read ID
        使能片選,檢測RnB為閑后,寫readid命令,延時后,讀取data寄存器中的數據,讀5次后,則讓片選失效。
        3,讀操作
        使能片選,檢測RnB為閑后,寫第一個讀命令,然后寫地址(列+行),再寫第二個讀命令,等待RnB由忙到閑,則

        讀取data寄存器中的數據。最后讓片選失效。
        注:其中有Read Operation with CE don’t-care,即CE連接在MCU的一個普通IO口上。可以不用管。
        4,寫操作
        使能片選,檢測RnB為閑后,寫第一個寫命令,然后寫地址(列+行),再寫第二個寫命令,等待RnB由忙到閑后,

        再讀I/O bit0是否為0,為0則說明編程沒錯誤。即完成對nandflash的編程操作。
        5,擦除操作
        使能片選,檢測RnB為閑后,寫第一個擦除命令,然后寫地址(列+行),再寫第二個擦除命令,等待RnB由忙到閑

        后,再讀I/O bit0是否為0,為0則說明擦除沒錯誤。即完成對nandflash的擦除操作。

        7,nandflash的boot模式(要求:記住)
        MCU可以控制外部nandflash的boot方式。OM【1:0】=0時,則選擇從外部nandflash啟動程序。
        nandflash的啟動機制:
        a,前提:程序已經燒錄到nandflash的0地址開始處。可以用jlink間接燒錄法等。
        b,2440MCU上電后,會自動讀取nandflash的前4K到它的內部sarm(該區域名稱為SteppingStone),然后在

        SteppingStone中運行程序。那么假設nandflash中的數據大于4K,而自動復制大小僅為4K,怎么辦呢?所以,在這4K

        代碼中需要加入copynand2ram。然后,拷貝完后,接著PC跳到下一個標志位置繼續執行。(解釋一下標志位置,如何

        一開始在內部sarm中,可能地址為0x100,但是當copynand2ram函數運行完后,此標志位置就會變成

        0x30000000+0x100。那么就可以繼續執行,而不是重復執行了)

        8,ecc工作原理(待做)

        9,壞塊基本處理方式(要求:記住)
        當檢測到壞塊后,nandflash會自動使用預留的block來代替。并且為此壞塊做標記。
        * Step1
        When an error happens in the nth page of the Block ’A’ during erase or program operation.
        * Step2
        Copy the data in the 1st ~ (n-1)th page to the same location of another free block. (Block ’B’)
        * Step3
        Then, copy the nth page data of the Block ’A’ in the buffer memory to the nth page of the Block ’B

        ’.
        * Step4
        Do not erase or program to Block ’A’ by creating an ’invalid block’ table or other appropriate

        scheme.

        10,nandflash和norflash的基本區別(要求:記住)
        a,接口不同,nandflash是地址命令線共用的。norflash是分開的。
        b,速度不同,nandflash的寫入是擦除速度比norflash快很多,norflash的讀取速度比nandflash快。
        c,可靠性不同,nandflash容易出現壞塊
        d,壽命不同,nandflash可擦除一百萬次,norflash可擦除十萬次。
        e,文件系統不同。nandflash選用yaffs文件系統,norflash選用jffs文件系統
        f,價格容量不同。nandflash容量大,價格偏低。norflash容量小,價格偏高。



        關鍵詞: nandflashK9F2G08U0

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 昌图县| 区。| 南岸区| 金昌市| 通江县| 娄底市| 莲花县| 塔河县| 永善县| 淮北市| 博湖县| 宁海县| 兴和县| 万载县| 峨眉山市| 阳曲县| 分宜县| 恩平市| 泸水县| 塔城市| 香河县| 肥西县| 江山市| 荔浦县| 保靖县| 饶平县| 沂南县| 乐清市| 辛集市| 贵德县| 云龙县| 如东县| 丰原市| 石渠县| 鹰潭市| 新郑市| 开鲁县| 阳东县| 景洪市| 叶城县| 阜阳市|