0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

AT32講堂039 | AT32 MCU SDRAM控制器的使用

雅特力 AT32 MCU ? 2022-12-19 11:46 ? 次閱讀

SDRAM介紹

同步動態(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)d43f53da-7e19-11ed-b116-dac502259ad0.png

SDRAM信號

d4715bdc-7e19-11ed-b116-dac502259ad0.png

SDRAM內(nèi)部框圖

如下以W9825G6KH內(nèi)部框圖舉例:圖2 W9825G6KH框圖d4955ce4-7e19-11ed-b116-dac502259ad0.png

  • 1時(shí)鐘控制
  • 2命令控制
  • 3地址控制
  • 4存儲陣列,4個(gè)BANK
  • 5數(shù)據(jù)

SDRAM常用命令表

SDRAM通過信號線上的不同狀態(tài)來產(chǎn)生各種命令。表1 SDRAM命令表d4ab5896-7e19-11ed-b116-dac502259ad0.png注意: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 registerd4c127f2-7e19-11ed-b116-dac502259ad0.png

SDRAM Power On Sequence

圖4 SDRAM Power On

d4f2db58-7e19-11ed-b116-dac502259ad0.png

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地址映射d50d0aa0-7e19-11ed-b116-dac502259ad0.pngSDRAM Device1起始地址:0xC0000000SDRAM Device2起始地址:0xD0000000

I/O引腳配置

表2 SDRAM IO引腳列表d525d288-7e19-11ed-b116-dac502259ad0.png

使用SDRAM IO引腳初始化如下,可根據(jù)具體使用引腳進(jìn)行修改:

d561e87c-7e19-11ed-b116-dac502259ad0.png

SDRAM讀寫時(shí)序

  • 寫SDRAM時(shí)序

d61730c4-7e19-11ed-b116-dac502259ad0.png

讀SDRAM時(shí)序

d64236ca-7e19-11ed-b116-dac502259ad0.png

SDRAM配置

通過配置寄存器SDRAM_CTRLx來設(shè)置SDRAM設(shè)備的容量,訪問方式等,詳細(xì)信息可參考RM。此寄存器包括如下配置:(W9825G6KH作為示例)

  • 行地址/列地址配置

d67f970e-7e19-11ed-b116-dac502259ad0.png行地址和列地址根據(jù)SDRAM設(shè)備地址位數(shù)進(jìn)行配置,如下示例:d691f246-7e19-11ed-b116-dac502259ad0.png

數(shù)據(jù)總線寬度

d6a80bf8-7e19-11ed-b116-dac502259ad0.png根據(jù)SDRAM設(shè)備支持?jǐn)?shù)據(jù)總線寬度進(jìn)行配置,如下示例支持16bit數(shù)據(jù)寬度:d6ca6e3c-7e19-11ed-b116-dac502259ad0.png

內(nèi)部區(qū)塊個(gè)數(shù)

d702c7aa-7e19-11ed-b116-dac502259ad0.pngSDRAM設(shè)備支持內(nèi)部bank個(gè)數(shù):d714fe2a-7e19-11ed-b116-dac502259ad0.png

列地址選通延遲(CAS)

d73bb1dc-7e19-11ed-b116-dac502259ad0.pngSDRAM設(shè)備支持延遲:d75ad300-7e19-11ed-b116-dac502259ad0.png

寫保護(hù)配置(WRP)

  • 如果配置了寫保護(hù),在寫SDRAM設(shè)備時(shí)會參數(shù)Bus error。
  • XMC_SDCLK時(shí)鐘分頻(CLKDIV)
  • BSTR(連續(xù)讀)
  • RD(讀延時(shí))

配置代碼例程:

d78f88de-7e19-11ed-b116-dac502259ad0.png

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作為示例)

d7b949c6-7e19-11ed-b116-dac502259ad0.png

配置代碼例程:

d7d3ceea-7e19-11ed-b116-dac502259ad0.png

SDRAM啟動序列配置

  • Clock enable時(shí)鐘使能

d7fdbaf2-7e19-11ed-b116-dac502259ad0.png

預(yù)充電

d8276d52-7e19-11ed-b116-dac502259ad0.png

設(shè)置刷新計(jì)數(shù)器

d83a5296-7e19-11ed-b116-dac502259ad0.png

計(jì)算方法:counter=(SDRAM resfresh period / number of rows)-20;

刷新速率=64ms/8K=7.8125us;counter=7.8125us*144MHz–20=1105;d84c2e62-7e19-11ed-b116-dac502259ad0.png

自動刷新

d8606e40-7e19-11ed-b116-dac502259ad0.png

加載模式寄存器

d884b5b6-7e19-11ed-b116-dac502259ad0.png

SDRAM例程

SDRAM Basic此例程配置SDRAM設(shè)備之后,對SDRAM設(shè)備進(jìn)行讀寫操作,并判斷讀寫數(shù)據(jù)是否正確,包括如下步驟:

  • GPIO初始化
  • SDRAM配置

d89662fc-7e19-11ed-b116-dac502259ad0.png

SDRAM啟動序列

d8c30dde-7e19-11ed-b116-dac502259ad0.png

SDRAM讀寫訪問

d8eb1fc2-7e19-11ed-b116-dac502259ad0.pngSDRAM DMA此例程配置SDRAM設(shè)備之后,使用對SDRAM設(shè)備進(jìn)行讀寫操作,并判斷讀寫數(shù)據(jù)是否正確,包括如下步驟:

  • GPIO初始化(同SDRAM Basic)
  • SDRAM配置(同SDRAM Basic)
  • SDRAM啟動序列(同SDRAM Basic)
  • SDRAN DMA讀寫

d901ef22-7e19-11ed-b116-dac502259ad0.png關(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)域。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16667

    瀏覽量

    347800
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    15885

    瀏覽量

    175379
收藏 人收藏

    評論

    相關(guān)推薦

    如何使用AT32 MCU WDT和WWDT?

    如何使用AT32 MCU WDT和WWDT?
    的頭像 發(fā)表于 11-10 18:26 ?1493次閱讀
    如何使用<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b> WDT和WWDT?

    Segger Jscope波形軟件在AT32 MCU的使用

    Segger Jscope波形軟件在AT32 MCU的使用
    的頭像 發(fā)表于 11-10 18:24 ?1751次閱讀
    Segger Jscope波形軟件在<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>的使用

    如何在AT32 MCU上使用FPU功能

    如何在AT32 MCU上使用FPU功能
    的頭像 發(fā)表于 11-01 17:18 ?3866次閱讀
    如何在<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>上使用FPU功能

    關(guān)于AT32 MCU溫度傳感的應(yīng)用

    關(guān)于AT32 MCU溫度傳感的應(yīng)用
    的頭像 發(fā)表于 10-27 09:44 ?569次閱讀
    關(guān)于<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>溫度傳感<b class='flag-5'>器</b>的應(yīng)用

    AT32 MCU Printf的功能使用方法

    AT32 MCU Printf的功能使用方法
    的頭像 發(fā)表于 10-27 09:27 ?835次閱讀
    <b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b> Printf的功能使用方法

    AT32 MCU如何使用USB MSD 進(jìn)行IAP升級?

    AT32 MCU如何使用USB MSD 進(jìn)行IAP升級?
    的頭像 發(fā)表于 10-27 09:23 ?952次閱讀
    <b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>如何使用USB MSD 進(jìn)行IAP升級?

    AT32 MCU DMA通道的靈活配置

    AT32 MCU DMA通道的靈活配置
    的頭像 發(fā)表于 10-26 17:51 ?876次閱讀
    <b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b> DMA通道的靈活配置

    使用CAN的AT32 IAP

    AT32控制器上創(chuàng)建IAP應(yīng)用程序的一般準(zhǔn)則。AT32控制器可以運(yùn)行用戶特定的固件來對微控制器中嵌入的閃存執(zhí)行IAP。此功能可以使用產(chǎn)
    發(fā)表于 10-26 06:39

    AT32 MCU USART應(yīng)用說明

    AT32 MCU USART Application Note介紹了AT32 的USART 功能,并對BSP 例程的軟件設(shè)計(jì)加以說明,同時(shí)演示使用方法并展示實(shí)驗(yàn)效果,供用戶參考。
    發(fā)表于 10-25 08:11

    AT32控制器硬件設(shè)計(jì)指南及抗EMC設(shè)計(jì)要點(diǎn)

    本應(yīng)用筆記為使用AT32系列微控制器芯片的硬件設(shè)計(jì)人員提供參考設(shè)計(jì),包括供電電源要求、時(shí)鐘管理、復(fù)位管理、調(diào)試接口的管理。它說明了使用AT32系列微控制器芯片所需的最低硬件資源。文中介
    發(fā)表于 10-25 07:54

    AT32 MCU ACC使用指南

    AT32 MCU ACC使用指南AT32 MCU 擁有HICK 自動時(shí)鐘校準(zhǔn),其作用是當(dāng)系統(tǒng)內(nèi)部使用HICK 作為時(shí)鐘源時(shí),若外界環(huán)境改變
    發(fā)表于 10-25 07:24

    AT32控制器上移植ThreadX操作系統(tǒng)

    AT32控制器上移植ThreadX操作系統(tǒng)主要演示ThreadX操作系統(tǒng)移植到AT32 MCU的過程和方法。
    發(fā)表于 10-25 06:46

    AT32 MCU SDRAM應(yīng)用說明

    AT32 MCU SDRAM Application Note本文主要講解AT32 SDRAM 控制器
    發(fā)表于 10-25 06:37

    識別AT32 MCU的應(yīng)用筆記

    本應(yīng)用筆記介紹了在AT32控制器上如何實(shí)現(xiàn)當(dāng)前使用內(nèi)核版本、MCU廠商及型號的識別
    發(fā)表于 10-24 06:37

    AT32 MCU如何設(shè)定啟動存儲為主存擴(kuò)展

    AT32 MCU如何設(shè)定啟動存儲為主存擴(kuò)展
    的頭像 發(fā)表于 10-18 17:50 ?474次閱讀
    <b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>如何設(shè)定啟動存儲<b class='flag-5'>器</b>為主存擴(kuò)展