2440的儲存控制器有個8個bank:bank0~bank7,對外引出27根位址線(addr0~addr26),訪問範圍是128m,有8個片選訊號(ngcs0~ngcs7)與之對應,所有可以訪問1g的位址空間。bank6和bank7的可訪問位址空間是可以設定的。
只有bank6和bank7可以外接sdram或sram。
cpu提供了一組用於sdram的訊號(具體內容在datasheet的signal description):
nsras o sdram 行位址選通
nscas o sdram 列位址選通
nscs[1:0] o sdram 片選
dqm[3:0] o sdram 資料遮蔽
sclk[1:0] o sdram 時鐘
scke o sdram 時鐘使能
nbe[3:0] o 高位位元組/低位位元組使能(16 位 sram 情況時)
nwbe[3:0] o 寫位元組使能
mini2440使用的sdram晶元是32m的hy57v561620,這是乙個4banks*4m*16bit的sdram,也就是由4個邏輯塊(logical bank,簡稱l-bank)組成,每個l-bank有4m儲存單元,每個單元是16bit。所有它的資料線是16根(dq[15:0]);位址線有13根(a[12:0]),其中行位址13根(a[12:0]),列位址9根(a[8:0]);還有兩根訊號線(ba[1:0])用於選擇l-bank。
兩個晶元(u6和u7)並接,就可以組成位寬32位的sdram,空間為64m,對映到ngcs6(bank6),訪問的位址空間為0x30000000~0x33ffffff。
管腳連線方式如下:
位址線:
addr[14:2]同時連線u6和u7的a[12:0];(位址線的連線方法可以依據s3c2440a的datasheet,儲存器控制器一節中的「儲存器(sram/sdram)的位址引腳連線」)
資料線:
data[15:0]連線u6的dq[15:0];
data[31:16]連線u7的dq[15:0];
l-bank選擇:
使用addr[25:24]同時連線u6和u7的ba[1:0];(這個連線依據s3c2440a的datasheet,儲存器控制器一節中的「sdram bank位址引腳連線例子」)
sdram控制訊號:
scke連線u6和u7的時鐘使能訊號cke;
sclk0和sclk1分別連線u6和u7的時鐘訊號clk;
nscs0(d2管腳,與ngcs6同一引腳)同時連線u6和u7的片選訊號cs,低電平有效;
nsras同時連線u6和u7的行位址訊號ras,低電平有效;
nscas同時連線u6和u7的列位址訊號cas,低電平有效;
nwe(e6管腳)是匯流排控制訊號,同時連線u6和u7的寫使能訊號,低電平有效。
1. bwscon:0x48000000(位寬和等待控制暫存器)
每四位控制乙個bank,bank6對應[27:24]位;
st6 [27]:使能/禁止資料掩碼引腳,對於sdram,此位應該設為0,禁止。
ws6 [26]:使能/禁止wait訊號,設為0,禁止。
dw6 [25:24]:位寬,0b10表示32位。
2. bankcon6:0x4800001c(bank6的控制暫存器)
mt[16:15]:sram - 0b00,sdram - 0b11。
tcrd[3:2]:ras到cas的延遲,0b00,兩個時鐘;0b01,三個時鐘。
scan[1:0]:列位址數,0b01,9位。
當bank6或bank7外接sdram時,還需要設定如下暫存器:
3. refresh:0x48000024(重新整理控制暫存器)
refen[23]:sdram重新整理使能,設為1。
trefmd[22]:重新整理模式,設為0,自動重新整理。
trp[21:20]:ras預充電時間,0b00,兩個時鐘。
tscr[19:18]:半行週期時間,0b11,7個時鐘。
refresh counter[10:0]:重新整理計數器,計算公式如下:
2^11 + 1 - sdram時鐘頻率(hclk)(mhz) * 重新整理周期(μs)
在未使用pll時,hclk等於晶振頻率;
在hy57v561620的資料手冊裡有寫:8192 refresh cycles / 64ms,據此可以計算重新整理周期。
注:trp、trcd等設定,參照2440資料手冊裡的sdram時序圖。
4. banksize:0x48000028(bank大小暫存器)
burst_en[7]:設為1,arm核支援突發傳輸。
scke_en[5]:設為1,使用scke訊號使sdram進入省電模式。
sclk_en[4]:設為1,僅在訪問sdram時發出sclk訊號。
bk76map[2:0]:設定bank6/7的大小,0b001,64m。
5.mrsrb6:0x4800002c(sdram模式設定)
cl[6:4]:cas等待時間,0b010或0b011,2或3個時鐘。
在資料手冊裡有寫:promgrammable cas latency:2、3 clocks
hy57v561620資料手冊
s3c2440a資料手冊
s3c2440-sdram連線分析
Mini2440學習筆記(三) SDRAM(續)
從 nand flash 啟動cpu 時,cpu 會自動將 nand flash 開始的4k 資料複製到 4kb的內部 ram中 起始位址 0 然後位址 0開始執行。本例程先用彙編設定好 sdram 將程式從內部 ram複製到 sdram 然後跳轉到 sdram 執行。源 包括 sdram.s gp...
Mini2440學習筆記(一) Start
win7 openocd openjtag mini2440 按照 eclipse,openocd,openjtagv3嵌入式開發教程 將軟硬體安裝好。然後執行openocd ftd2xx。這個程式會作為乙個守護程序執行,等待客戶端 telnet或gdb 的連線,可以使用 h引數檢視該程式的一些可選...
(三)MINI2440的時鐘配置
時鐘源 om 3 2 選擇時鐘源 mpll main pll 主鎖相環 在mini2440開發板中,1 nreset為低時復位晶元,延時一段時間等待電壓穩定後,nreset才輸出高電平,cpu才可以工作。2 根據om 3 2 的值,選擇輸入時鐘源,在mini2440中,輸入時鐘源是12mhz的晶振 ...