<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > [ARM筆記]存儲控制器的寄存器使用方法

          [ARM筆記]存儲控制器的寄存器使用方法

          作者: 時間:2016-12-01 來源:網(wǎng)絡 收藏

            存儲器共有13個寄存器,BANK0~BANK5只需要設置BWSCON和BANKCONx(x為0~5)兩個寄存器;BANK6、BANK7外接時,除了BWSCON和BANKCONx(x為6、7)外,還要設置REFRESH、BANKSIZE、MRSRB6、MRSRB7等4個寄存器。下面分類說明(“[y:x]”表示占據(jù)了寄存器的位x、x+1、……、y):

          本文引用地址:http://www.ex-cimer.com/article/201612/340974.htm

            1. 位寬和等待控制寄存器BWSCON(Bus Width & Wait Status Control Register)

            BWSCON中每4位控制一個BANK,最高4位對應BANK7、接下來4位對應BANK6,依此類推。

            (1)STx:啟動/禁止的數(shù)據(jù)掩碼引腳,對于,此位為0;對于SRAM,此位為1。Determine SRAM for using UB/LB for bank x, 0 = Not using UB/LB (The pins are dedicated nWBE[3:0])1 = Using UB/LB (The pins are dedicated nBE[3:0])。

            (2)WSx:是否使用存儲器的WAIT信號,通常設為0。Determine WAIT status for bank x, 0 = WAIT disable 1 = WAIT enable。

            (3)DWx:使用兩位來設置相應BANK的位寬,0b00對應8位,0b01對應16位,0b10對應32位,0b11表示保留。

            比較特殊的是BANK0,它沒有ST0和WS0,DW0([2:1])只讀——由硬件跳線來決定:0b01表示16位,0b10表示32位,BANK0只支持16、32兩種位寬。The states are selected by OM[1:0] pins。

            2. BANK控制寄存器BANKCONx(BANK CONTROL REGISTER,x為0~5,(BANKCONx: nGCS0-nGCS5))

            這幾個寄存器用來控制BANK0~BANK5外接設備的訪問時序,一般使用默認的0x0700即可。

            3. BANK控制寄存器BANKCONx(BANK CONTROL REGISTER,x為6~7,(BANKCONx: nGCS6-nGCS7))

            在8個BANK中,只有BANK6和BANK7可以外接SRAM和SDRAM,所以BANKCON6~BANKCON7與BANKCON0~BANKCON5有點不同。

            MT([16:15])Determine the memory type for bank6 and bank7。00 = ROM or SRAM,01 = Reserved (Do not use),10 = Reserved(Do not use),11 = Sync. DRAM。

            當MT=0b00時,此寄存器與BANKCON0~BANKCON5類似,不再贅述。

            當MT=0b11時,此寄存器其他值設置如下。

            Trcd([3:2]):RAS to CAS delay,設為推薦值0b01。

            SCAN([1:0]):SDRAM的列地址位數(shù),00 = 8-bit;01 = 9-bit;10= 10-bit

            4. 刷新控制寄存器REFRESH(REFRESH CONTROL REGISTER):設為0x008C0000+R_CNT

            (1)REFEN([23]):0=禁止SDRAM的刷新功能,1=開啟SDRAM的刷新功能。

            (2)TREFMD([22]):SDRAM的刷新模式,0=Auto Refresh,1=Self Refresh(一般在系統(tǒng)休眠時使用)。

            (3)Trp([21:20]):設為0即可。

            (4)Tsrc([19:18]):設為默認值0b11即可。

            (5)Refresh Counter([10:0]):即上述的R_CNT,可按如下方式計算(SDRAM時鐘頻率就是HCLK):

            R_CNT=2^11+1-SDRAM時鐘頻率(MHz)*SDRAM刷新頻率(us)

            Refresh period = (211-refresh_count+1)/HCLK

            SDRAM的刷新周期在SDRAM的數(shù)據(jù)手冊上有標明,例如HY57V561620B的數(shù)據(jù)手冊上有這么一句話“8192 refresh cycles / 64ms”。所以,刷新周期=64ms/8192=7.8125us。

            在未使用PLL時,SDRAM時鐘頻率等于晶振的12MHz。

            現(xiàn)在可以計算:R_CNT=2^11+1-12*7.8125=1955

            所以,在未使用PLL時,REFRESH=0x008C0000+1955=0x008C07A3。

            5. BANKSIZE寄存器REFRESH(BANKSIZE REGISTER)

            (1)BURST_EN([7])

            0=核禁止突發(fā)傳輸,1=核支持突發(fā)傳輸。

            (2)SCKE_EN([5])

            0=不使用SCKE信號SDRAM進入省電模式,1=使用SCKE信號令SDRAM進入省電模式。

            (3)SCLK_EN([4])

            0=時刻發(fā)出SCLK信號,1=僅在訪問SDRAM期間發(fā)出SCLK信號(推薦)。

            (4)BK76MAP([2:0])

            設置BANK7/6的大小。BANK0~5的地址空間大小都是固定的128MB,地址范圍是(x*128M)到(x+1)*128-1,x表示0到5。BANK6/7的大小是可變的,以保持這兩個地址的連續(xù),即BANK7的起始地址會隨它們的大小變化。BK76MAP的取值意義如下:

            010 = 128MB/128MB;001 = 64MB/64MB;000 = 32M/32M;111 = 16M/16M;110 = 8M/8M;101 = 4M/4M;100 = 2M/2M

            6. SDRAM模式設置寄存器MRSRBx(SDRAM MODE REGISTER SET REGISTER,x為6~7)

            能修改的只有位CL([6:4]),這是SDRAM時序的一個時間參數(shù):

            CAS latency 000 = 1 clock, 010 = 2 clocks, 011=3 clocks



          關鍵詞: ARM SDRAM

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();