本公司目前MCU系列,到目前為止, SWM34x 支持外接8M16M SDRAM,SWD34S系列已經(jīng)把SDRAM合封入芯片,合封的SDRAM大小根據(jù)芯片型號不同,具體見官方手冊。
在SDRAM使用過程中,需要對SDRAMC控制的各個參數(shù)進(jìn)行配置,具體參數(shù)如下表格,不同系列芯片參數(shù)稍微有點(diǎn)區(qū)別,但是配置原理一樣。下面以SWM34x SDRAM_CTRL控制器外接Winbond W9812G6KH-6為例進(jìn)行參數(shù)配置說明。
表一 MCU端需要配置的參數(shù)
參數(shù)名字 | |
MCU端需要用到的參數(shù) | |
Bank | |
RowAddr |
ColAddr | |
CASLatency | |
RR | |
RFC |
RP | |
RCD | |
WR | |
RAS |
RC | |
RRD | |
XS | |
RD_Delay |
以SWM34x 為例
分別說明表一中各項參數(shù)的計算方法
1、Bank:指的是SDRAM分了幾個塊,這個在SDRAM芯片手冊里面有說明,如W9812G6KH-6文檔中列明Bank等于4
如下圖
2. RowAddr:SDRAM中每個bank單元每一頁的地址,如W9812G6KH-6 一個Bank有4096個頁,所以頁地址占用12bit,故RowAddr=12。
3.ColAddr:SDRAM中每個Bank單元每一頁中每一行的地址,如W9812G6KH-6 一個Bank有4096個頁,每頁有512行,所以行地址暫用9bit,故ColAddr=9,根據(jù)寄存器規(guī)范,PageSize需設(shè)置為0x001
圖下圖
4. RR: SDRAM的REFRESH_RATE,即刷新頻率,根據(jù)W9812G6KH-6芯片手冊,刷新周期為64mS,在150M時鐘下,則一個clk=6.67nS, RR的計算公式為64000000(nS)/4096(頁數(shù)量)/6.67nS(每一個clk的時間)=需要的clk數(shù)量。所以RR=0x926.
5. RFC(從刷新或加載模式到刷新或激活的最小CLK周期數(shù)): SDRAM的手冊有列明參數(shù)最小值,以W9812G6KH-6芯片手冊為例,RFC最小值為60nS(圖3), 在MCU工作在150M時鐘下,轉(zhuǎn)換成寄存器值:RFC=60ns/6.67=8,即可得SDRAM需要的最小值8(圖4)。
(圖3)
(圖4)
6.RP(從預(yù)充電到激活或刷新的最小CLK周期數(shù)):SDRAM手冊會有寫明,如W9812G6KH-6芯片RP=15nS,MCU端計算RP方法為RP=15nS/6.67=2.
7. RCD(從激活到讀取或?qū)懭氲淖钚LK周期數(shù)):SDRAM手冊會有寫明,如W9812G6KH-6芯片RCD=15nS, MCU端計算RCD方法為RCD=15nS/6.67=2.
8.WR(從上次寫入傳輸?shù)筋A(yù)充電的最小CLK周期數(shù)): 固定為2.
9.RAS(從激活到預(yù)充電的最小CLK周期數(shù)): SDRAM手冊會有寫明,如W9812G6KH-6芯片RCD=42nS, MCU端計算RAS方法為RAS=42nS/6.67=6.
10.RC(從激活到激活的最小CLK周期數(shù)): SDRAM手冊會有寫明,如W9812G6KH-6芯片RC=60nS, MCU端計算RC方法為RC=60nS/6.67=8. 如下圖
11.RRD(對于不同的bank,從激活到激活的最小CLK周期數(shù)):SDRAM手冊會有寫明,如W9812G6KH-6芯片RRD=12nS, MCU端計算RRD方法為RRD=12nS/6.67=1.
12.XS(從自刷新退出到發(fā)出任何命令的最小CLK周期數(shù)減1): SDRAM手冊會有寫明,如W9812G6KH-6芯片RRD=72nS, MCU端計算XS方法為XS=72nS/6.67=10.
13.CASLatency:等于3或者2.
14.RD_Delay: 等于CASLatency、或等于CASLatency+1.
實際應(yīng)用
如果SWM34x 系統(tǒng)頻率為150M,則SDRAM控制器讀寫W9812G6KH-6(16M SDRAM),各項參數(shù)配置如下:
SDRAM_InitStruct.ClkDiv = SDRAM_CLKDIV_1;
SDRAM_InitStruct.NbrBank = 2;//SDRAM_BANK_4
SDRAM_InitStruct.NbrRowAddr = 12;//SDRAM_ROW_12
SDRAM_InitStruct.NbrColAddr = 1;//SDRAM_COLUMN_9
SDRAM_InitStruct.CASLatency =3;//SDRAM_CASLATENCY_3
SDRAM_InitStruct.TimeTRC =8 ;
SDRAM_InitStruct.TimeTRRD = 1;
SDRAM_InitStruct.TimeTRCD = 2;
SDRAM_InitStruct.TimeTRAS = 6;
SDRAM_InitStruct.TimeTRP = 2;
SDRAM_InitStruct.TimeRFC =8;
SDRAM_InitStruct.TimeTXS=10;
SDRAMC->T64 = 0x926;
SDRAMC->RDDELAY = SDRAM_InitStruct.CASLatency+1;
(以上只介紹了配置方法,部分參數(shù)并沒有完全配對,需要修改驗證)
審核編輯:劉清
-
mcu
+關(guān)注
關(guān)注
146文章
16885瀏覽量
349919 -
寄存器
+關(guān)注
關(guān)注
31文章
5294瀏覽量
119816 -
RFC
+關(guān)注
關(guān)注
0文章
16瀏覽量
10090 -
SDRAM控制器
+關(guān)注
關(guān)注
0文章
28瀏覽量
8125
原文標(biāo)題:華芯微特 | MCU之SDRAM參數(shù)配置
文章出處:【微信號:gh_ed4f95bde4df,微信公眾號:華芯微特32位MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論