同步動態(tài)隨機(jī)存儲器(SDRAM)特點(diǎn):
- 同步:memory工作時(shí)需要同步時(shí)鐘
- 動態(tài):存儲陣列需要不斷刷新
- 隨機(jī):自由指定地址讀寫數(shù)據(jù)
- 容量大價(jià)格便宜
SDRAM存儲結(jié)構(gòu)
SDRAM支持多BANK,通過指定BANK號,行地址,列地址找到目標(biāo)存儲單元。
圖1 存儲結(jié)構(gòu)
SDRAM信號線
SDRAM內(nèi)部框圖
如下以W9825G6KH內(nèi)部框圖舉例:圖2 W9825G6KH框圖
- 1時(shí)鐘控制
- 2命令控制
- 3地址控制
- 4存儲陣列,4個(gè)BANK
- 5數(shù)據(jù)
SDRAM常用命令表
SDRAM通過信號線上的不同狀態(tài)來產(chǎn)生各種命令。表1 SDRAM命令表注意:L=Low Level H=High Level X=don't CareA10=H表示Precharge all bank,A10=L表示Precharge選擇的BANK
- No-Operation表示選中當(dāng)前設(shè)備,當(dāng)前沒有操作。
- Bank/Row active在對SDRAM進(jìn)行讀寫時(shí),需要先激活對應(yīng)的bank和行,該命令用于選擇一個(gè)bank的一行進(jìn)行激活,以便接下來進(jìn)行讀寫訪問。
- Read激活的行有效之后,對列地址進(jìn)行尋址,讀出數(shù)據(jù)。
- Write激活的行有效之后,對列地址進(jìn)行尋址,寫入數(shù)據(jù)。
- Precharge預(yù)充電命令,在某一行上的讀寫完成之后,關(guān)閉現(xiàn)有的行,準(zhǔn)備激活新行。
- Refresh刷新命令,SDRAM需要不斷的刷新操作才能保存數(shù)據(jù),根據(jù)SDRAM設(shè)備參數(shù)按照固定周期進(jìn)行刷新。
- Load Mode Register加載模式寄存器,修改SDRAM設(shè)備的功能參數(shù),burst模式,latency等。
圖3 mode register
SDRAM Power On Sequence
圖4 SDRAM Power On
AT32 SDRAM控制器
SDRAM控制器主要特點(diǎn)如下:
- 同時(shí)支持兩個(gè)SDRAM設(shè)備
- 支持8位/16位數(shù)據(jù)總線寬度
- 支持13位行地址,11位列地址(最大可以支持4x16Mx16bit=128MB)
- 支持4個(gè)內(nèi)部Bank
- 支持word/half word/byte訪問
- 支持Burst Read,有6x32bit讀FIFO緩存
- SDRAM時(shí)鐘支持HCLK/2, HCLK/3, HCLK/4
- 支持低功耗模式(自刷新模式,掉電模式)
地址映射
圖5 SDRAM地址映射SDRAM Device1起始地址:0xC0000000SDRAM Device2起始地址:0xD0000000
I/O引腳配置
表2 SDRAM IO引腳列表
使用SDRAM IO引腳初始化如下,可根據(jù)具體使用引腳進(jìn)行修改:
SDRAM讀寫時(shí)序
- 寫SDRAM時(shí)序
讀SDRAM時(shí)序
SDRAM配置
通過配置寄存器SDRAM_CTRLx來設(shè)置SDRAM設(shè)備的容量,訪問方式等,詳細(xì)信息可參考RM。此寄存器包括如下配置:(W9825G6KH作為示例)
- 行地址/列地址配置
行地址和列地址根據(jù)SDRAM設(shè)備地址位數(shù)進(jìn)行配置,如下示例:
數(shù)據(jù)總線寬度
根據(jù)SDRAM設(shè)備支持?jǐn)?shù)據(jù)總線寬度進(jìn)行配置,如下示例支持16bit數(shù)據(jù)寬度:
內(nèi)部區(qū)塊個(gè)數(shù)
SDRAM設(shè)備支持內(nèi)部bank個(gè)數(shù):
列地址選通延遲(CAS)
SDRAM設(shè)備支持延遲:
寫保護(hù)配置(WRP)
- 如果配置了寫保護(hù),在寫SDRAM設(shè)備時(shí)會參數(shù)Bus error。
- XMC_SDCLK時(shí)鐘分頻(CLKDIV)
- BSTR(連續(xù)讀)
- RD(讀延時(shí))
配置代碼例程:
SDRAM時(shí)序參數(shù)配置
要正常使用SDRAM設(shè)備,需要正確配置此部分的實(shí)現(xiàn)參數(shù),此參數(shù)可在SDRAM設(shè)備的datasheet中找到對應(yīng)值。
配置寄存器SDRAM_TMx:
- TMRD(加載模式寄存器到激活延遲)
- TXSR(退出自刷新延遲)
- TRAS(自刷新周期)
- TRC(刷新命令到激活命令延遲)
- TWR(寫命令到預(yù)充電命令延遲)
- TRP(預(yù)充電到激活命令延遲)
- TRCD(行激活到列延遲)
例TRCD:最小18ns,SDRAM時(shí)鐘144MHz,一個(gè)SDRAM時(shí)鐘大約為7ns,因此TRCD至少要配置為延遲3個(gè)SDRAM時(shí)鐘周期。例TWR:SDRAM設(shè)備要求2個(gè)SDRAM時(shí)鐘,因此配置為2
SDRAM設(shè)備對時(shí)序要求:(W9825G6KH作為示例)
配置代碼例程:
SDRAM啟動序列配置
- Clock enable時(shí)鐘使能
預(yù)充電
設(shè)置刷新計(jì)數(shù)器
計(jì)算方法:counter=(SDRAM resfresh period / number of rows)-20;
刷新速率=64ms/8K=7.8125us;counter=7.8125us*144MHz–20=1105;
自動刷新
加載模式寄存器
SDRAM例程
SDRAM Basic此例程配置SDRAM設(shè)備之后,對SDRAM設(shè)備進(jìn)行讀寫操作,并判斷讀寫數(shù)據(jù)是否正確,包括如下步驟:
- GPIO初始化
- SDRAM配置
SDRAM啟動序列
SDRAM讀寫訪問
SDRAM DMA此例程配置SDRAM設(shè)備之后,使用對SDRAM設(shè)備進(jìn)行讀寫操作,并判斷讀寫數(shù)據(jù)是否正確,包括如下步驟:
- GPIO初始化(同SDRAM Basic)
- SDRAM配置(同SDRAM Basic)
- SDRAM啟動序列(同SDRAM Basic)
- SDRAN DMA讀寫
關(guān)于雅特力雅特力科技于2016年成立,是一家致力于推動全球市場32位微控制器(MCU)創(chuàng)新趨勢的芯片設(shè)計(jì)公司,專注于ARM Cortex-M4/M0+的32位微控制器研發(fā)與創(chuàng)新,全系列采用55nm先進(jìn)工藝及ARM Cortex-M4高效能或M0+低功耗內(nèi)核,締造M4業(yè)界最高主頻288MHz運(yùn)算效能,并支持工業(yè)級別芯片工作溫度范圍(-40°~105°)。雅特力目前已累積相當(dāng)多元的終端產(chǎn)品成功案例:如微型打印機(jī)、掃地機(jī)、光流無人機(jī)、熱成像儀、激光雷達(dá)、工業(yè)縫紉機(jī)、伺服驅(qū)控、電競周邊市場、斷路器、ADAS、T-BOX、數(shù)字電源、電動工具等終端設(shè)備應(yīng)用,廣泛地覆蓋5G、物聯(lián)網(wǎng)、消費(fèi)、商務(wù)及工控等領(lǐng)域。
-
mcu
+關(guān)注
關(guān)注
146文章
16802瀏覽量
349375 -
控制器
+關(guān)注
關(guān)注
112文章
16037瀏覽量
176678
發(fā)布評論請先 登錄
相關(guān)推薦
評論