NAND FLASH MT29F4G08

1 簡介

我們通過stm32f429的fmc接口實現對MT29F4G08的訪問,實現讀寫數據功能

  • NAND FLASH信號線
    在這裏插入圖片描述
    在這裏插入圖片描述

  • NAND FLASH 框圖
    在這裏插入圖片描述

  • NAND FLASH 存儲陣列
    在這裏插入圖片描述
    以上可以得知:(MT29F4G08)
    每個這樣的芯片有兩個plane
    每個plane有2048個block,一個包含偶數塊,一個包含奇數塊
    每個block有64個pege
    每個page有2K+64字節
    所以這個芯片的總容量爲512M
    page有兩個區
    數據存儲區:一般用於存放用戶數據
    備份區:存放ECC校驗值,實現壞塊管理和磨損均衡

  • 陣列尋址
    在這裏插入圖片描述
    訪問存儲單元需要通過三個地址告訴芯片是哪個位置,
    CAx:column address也就是列地址,就是一個page內的地址,MT29F4G08page大小爲2112Bytes, 需要12根地址線表示,所以CA0~CA11
    PAx:page address 頁地址,每個block有64個頁,可以用6個地址線表示
    BAx:block address塊地址,此芯片總共有4096個塊,可以用12個地址線表示
    尋址需要五個週期數據:
    1~2 週期表示發送列地址,3 ~ 5週期表示塊和頁地址,可以用過一個參數被傳遞

2 命令定義

  • 命令定義
    在這裏插入圖片描述
    在這裏插入圖片描述
  1. 0x90 讀取設備ID,非常重要,首先讀取ID驗證讀寫操作是否有問題
    在這裏插入圖片描述

  2. READ PAGE
    這個指令用於讀取一個page,不能直接跨頁讀取
    在這裏插入圖片描述
    首先發送一個字節命令00h,然後發送五個字節要讀取內容的地址,然後發送30h等待

  3. WRITE PAGE.在這裏插入圖片描述
    首先發送08h表示寫數據命令,然後發送五個字節的地址,告訴芯片要寫哪個位置,等待tADL時間後,可以連續讀出數據內容,不能跨頁,然後發送10h,表示加載到存儲位置,最後發送70h讀取狀態,等待芯片狀態爲READY後,一次寫操作完成。

  4. ERASE BLOCK
    NAND FLASH最小的擦除單位是一個block
    在這裏插入圖片描述
    首先發送60h,然後發送三個字節地址表示要擦除哪一個塊,然後發送DOh,等待READY後,一次擦除塊操作完成。

  • ECC 校驗
    ECC,英文全稱爲: Error checking and Correction,是一種對傳輸數據的錯誤檢測和修正的
    算法。 STM32 的 FMC 模塊就支持硬件 ECC 計算,使用的就是漢明碼,

3. STM32 FMC接口

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