nandflash的操作方法
寫nand flash驅動程序須知:
問1. 原理圖上NAND FLASH和S3C2440之間只有數據線,
怎麼傳輸地址?
答1.在DATA0~DATA7上既傳輸數據,又傳輸地址
當ALE爲高電平時傳輸的是地址。
問2. 從NAND FLASH芯片手冊可知,要操作NAND FLASH需要先發出命令
怎麼傳入命令?
答2.在DATA0~DATA7上既傳輸數據,又傳輸地址,也傳輸命令
當ALE爲高電平時傳輸的是地址,
當CLE爲高電平時傳輸的是命令
當ALE和CLE都爲低電平時傳輸的是數據
問3. 數據線既接到NAND FLASH,也接到NOR FLASH,還接到SDRAM、DM9000等等
那麼怎麼避免干擾?
答3. 這些設備,要訪問之必須"選中",
沒有選中的芯片不會工作,相當於沒接一樣
問4. 假設燒寫NAND FLASH,把命令、地址、數據發給它之後,
NAND FLASH肯定不可能瞬間完成燒寫的,
怎麼判斷燒寫完成?
答4. 通過狀態引腳RnB來判斷:它爲高電平表示就緒,它爲低電平表示正忙
問5. 怎麼操作NAND FLASH呢?
答5. 根據NAND FLASH的芯片手冊,一般的過程是:
發出命令
發出地址
發出數據/讀數據
NAND FLASH S3C2440
發命令 選中芯片
CLE設爲高電平 NFCMMD=命令值
在DATA0~DATA7上輸出命令值
發出一個寫脈衝
發地址 選中芯片 NFADDR=地址值
ALE設爲高電平
在DATA0~DATA7上輸出地址值
發出一個寫脈衝
發數據 選中芯片 NFDATA=數據值
ALE,CLE設爲低電平
在DATA0~DATA7上輸出數據值
發出一個寫脈衝
讀數據 選中芯片 val=NFDATA
發出讀脈衝
讀DATA0~DATA7的數據