# HW 學習例子
- S3C2440 Chip -> Nand flash控制器
- K9F2G08U0A Nand Flash芯片
# K9F2G08U0A - Nand Flash 原理圖理解

上圖的左邊為K9F2G08U0A與2440的連接圖,右邊的部分是S3C2440的Nand控制器的配置。

- IO0 - IO7 傳地址也傳數據
- CLE 低電平表示傳命令
- ALE 低電平表示傳地址
- CE 片選,當2440要操作訪問Nand的時候,首先必須選中。
- RE 讀狀態,當RE為低的時候,表示數據由Nand流向2240;
- WE 寫狀態,當RE為低的時候,表示數據由2240流向Nand;
- WP 寫保護,只能寫,不能擦除。
- R/B 工作狀態,工作中拉低,Done拉高表燒寫完成
# 寫命令時序圖

首先CE發出片選信號,CLE發出高電平,IO 0-7將命令驅動出去,WE寫脈沖,在寫脈沖的上升沿,Nand flash在上升沿,將IO 0-7中數據讀取出來。

# 寫地址時序圖

CE片選, ALE由低變高,IO 0-7驅動 數據,WE發出寫脈沖。

# 寫數據時序圖

CE選中,ALE、CLE低電平,2440 IO 0-7驅動 數據,WE寫信號,Nand flash根據ALE、CLE低電平,讀取數據。

# 讀數據時序圖

CE低電平選中,RE由高變為低(Nand flash收到RE由高變低時,馬上准備數據,然后在RE的上升沿將數據發送出去),Nand flash 驅動數據到IO 0-7,在上升沿,2440取數據。

# 如何設置時序
- 看2440手冊,確定能設置哪些參數。
- 看外設(如Nand flash)手冊,確定取值
- 計算
# 2440-Chip中Nand FLASH控制器的特性:
- 一個引導啟動單元
- Nand Flash存儲器接口,支持8位或16位的每頁大小為256字,512字節,1K字和2K字節的Nand flash
- 軟件模式:用戶可以直接訪問Nand Flash存儲器,此特性可以用於Nand Flash存儲器的讀、擦除和編程。
- S3C2440支持8/16位的Nand Flash存儲器接口總線
- 硬件ECC生成,檢測和指示(軟件糾錯)。
- Steppingstone接口,支持大/小端模式的按字節/半字/字訪問。
# 具體操作簡述
配置引腳NCON,GPG13,GPG14和GPG15用來設置Nand Flash的基本信息,Nand控制器通過讀取配置引腳的狀態獲取外接的Nand Flash的配置信息。

2440這些引腳發出的數據,必須滿足Nand flash的時序要求。需要查看2440芯片手冊,查看設備哪個寄存器的某些位來控制時序。
