閱讀468 返回首頁    go 阿裏雲 go 技術社區[雲棲]


HI3531的DDR3配置流程

DDR3 初始化配置流程

係統上電之後,必須先完成DDR3 SDRAM 的初始化操作,係統才能訪問DDR3
SDRAM。在進行初始化之前需要注意以下幾點:

對DDR3 SDRAM 進行上電操作時,需要遵循JEDEC 標準。即先提供VDD,然
後提供VDDQ,最後提供VREF 和VTT。
 該初始化過程需要在係統進入NORMAL 模式後進行。
在DDRC 32bit 模式下,假設存儲空間由兩片容量為1Gbit,數據總線位寬為16bit 的
DDR3 SDRAM 構成,DDRC 的初始化步驟如下:
1. 軟件等待200us 以上。
2. 把DDRC_IOCFG 寄存器配置為0x467,配置IO 的工作模式、匹配電阻以及信號驅
動。
3. 根據器件的單片容量配置DDRC_RNKCFG 寄存器為0x122。總線地址映射模式為RB-
C-DW 模式,AP 為A10,列地址寬度為10,行地址寬度為13。
4. 把DDRC_PHYSRST 配置為0x0,把DDRC_CDLLCFG,DDRC_QDLLCFG0~3 寄存器
配置為0x52,複位DDR PHY 和DLL。
5. 軟件等待50ns。
6. 把DDRC_PHYSRST 配置為0x1,把DDRC_CDLLCFG,DDRC_QDLLCFG0~3 寄存器
配置為0x56,撤消DDR PHY 和DLL 複位。
7. 軟件等待3us 以上。
8. 配置DDRC_TIMING2 寄存器[taref]為0x000,禁止自動刷新。
9. 配置DDRC_CTRL 寄存器為0x1,配置DDR3 SDRAM 退出複位狀態。
10. 軟件等待500us 以上。
11. 把DDRC_SREFCTRL 寄存器配置為0x0,退出自刷新狀態。
12. 軟件等待1us 以上。
13. 根據工作頻率和器件要求,配置DDRC_EMRS01 寄存器和DDRC_EMRS23 寄存器,
以設置DDR 的讀延遲(cas latency),寫延遲(cas write latency),寫恢複延遲(write
recovery),突發長度(burst length),DDR 器件的輸出驅動阻抗和輸入ODT 阻抗
等。
cas latency 和必須和DDRC_TIMING1[cl]設置成同一個值。
cas write latency 和必須和DDRC_TIMING1[wl]設置成同一個值。
DDRC_EMRS01 寄存器對應DDR3 SDRAM 的模式寄存器MRS 和擴展模式寄存器1
(EMRS1)。配置該寄存器時,隻需要DDR3 SDRAM 器件手冊的模式寄存器的A15-A0(實際有
效位為:A13~A0),不需要配置模式寄存器的最高3 位A18~A16 寄存器選擇位,即bank 地址。
但是,有些DDRn SDRAM 廠家的bank 地址是:A17~A15。
14. 根據器件的類型和存儲空間配置DDRC_CONFIG0 寄存器為0x8000_0610,
DDRC_CONFIG1 寄存器為0x785,表示DDRC 為32bit DDR3 SDRAM 模式。
低功耗配置的上電複位值是關閉的,初始化過程中必須關閉低功耗自動進入功能以及時鍾自動關
閉功能,但在正常使用中,建議使能低功耗的控製,可以降低功耗。
15. 配置存儲空間基地址寄存器DDRC_BASEADDR 為0x8000_0000。
16. 根據工作頻率和器件要求配置DDRC_TIMING0~DDRC_TIMING3 的值,其中cl 和wl
值必須跟DDRC_EMRS01 和DDRC_EMRS23 模式寄存器中的配置一致。
17. 配置DDRC_DTRCTRL 寄存器為0x0F00_0503,使能初始化自動訓練模式。
18. 配置DDRC_ODTCFG 寄存器DDRC_ODTCFG[wodt0]=0x1,
DDRC_ODTCFG[rodt0]=0x0。
19. 配置DDRC_PHYCFG 寄存器0x2。
20. 將DDRC_INITCTRL 寄存器設置為0x1,啟動初始化過程。
21. 等待DDRC_INITCTRL 寄存器的值變為0,初始化完成。
----結束
完成以上步驟以後,DDR3 SDRAM 就可以正常工作。

 

最後更新:2017-04-03 12:53:45

  上一篇:go 一步一步寫算法(之單向鏈表)
  下一篇:go Android 深入ViewPager補間動畫,實現類京東商城首頁廣告Banner切換效果