天天看點

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 就可以正常工作。

繼續閱讀