本文檔描述在 STM32MP1 系列 MPU 上配置 DDR 子系統(tǒng)(DDRSS)所需的流程和步驟。
通過設(shè)定 DDR 控制器(DDRCTRL)、PHY 接口(DDRPHYC)和 SDRAM 模式寄存器的多個參數(shù)和設(shè)置完成 DDRSS 配置。
根據(jù) DDR 類型、DDR 大小、DRAM 拓撲、運行時間頻率和 SDRAM 器件數(shù)據(jù)手冊參數(shù)確定這些參數(shù)。所有這些參數(shù)必須在初始化序列期間設(shè)定。
STM32CubeMX DDR 測試套件使用直觀的面板和菜單隱藏了與確定正確參數(shù)和初始化啟動相關(guān)的復雜性。為了快速設(shè)置要運行的 DDRSS,用戶只需提供很少幾個輸入即可完成配置。可以使用一些高級用戶模式和特殊功能(當它們對于應用
而言十分重要時)。
在系統(tǒng)啟動階段,為了優(yōu)化時序裕量,支持多種 PHY 調(diào)諧??梢允褂?STM32CubeMX 啟動這些調(diào)諧。PHY 調(diào)諧結(jié)果可以保存并在后續(xù)冷復位時恢復。
在啟動階段,用戶可以運行大量測試套件。這些測試可以使用 STM32CubeMX 啟動,并用于確認 DDR 配置的穩(wěn)健性。
本文檔適用于 STM32MP1 系列基于 Arm?的 MPU。
DDR 子系統(tǒng)初始化和配置
DDR 子系統(tǒng)包括 DDRCTRL 和 DDRPHYC。
DDRCTRL 支持在正常操作期間通過命令和刷新調(diào)度進行 DDR 命令調(diào)度。
DDRPHYC 是一種 DDR PHY 接口,具有連接 DDRCTL 的 DFI 接口[7]和字節(jié)通道架構(gòu),適合連接頻率不超過 533MHz 的 DDR3/3L 和 LPDDR2/3。
DDRPHYC 完全支持具有多個 PHY 調(diào)諧選項(內(nèi)置)的 DDR 初始化。DDRPYC 包含 BIST 引擎,用于支持軟件驅(qū)動的調(diào)諧。
DDRSS 和 SDRAM 初始化
器件根據(jù) SDRAM 啟動序列對電源、時鐘和復位進行內(nèi)部排序。
PHY 初始化序列由 DDRPHYC 物理實用模塊(PUB)控制。這一基于 PUB 的初始化序列在
DDRPHYC 從復位狀態(tài)釋放后啟動,并根據(jù) DDRPHYC.PIR 寄存器進行排序。
初始化序列包括以下步驟:
- DDRCTRL 和 DDRPHYC 初始化包括內(nèi)部時序模塊(ITM)復位以及 DLL 復位和鎖定
- DDRPHYC I/O 初始校準(ZCAL),與 DLL 鎖定同時啟動
- 通過模式寄存器寫入和校準命令執(zhí)行 SDRAM 初始化
- 內(nèi)置 DQS 門控訓練(DQSTRN)
DDRCTRL 配置
大多數(shù) DDRCTRL 寄存器是靜態(tài)的,并在 DDRCTRL 從復位狀態(tài)釋放和 AXI 端口使能前加載。這是在 DDR 軟件驅(qū)動器的支持下實現(xiàn)的。
在 DDRPHYC 和 DDCTRL 完成初始化后,DDR 子系統(tǒng)就緒,使能 AXI 端口是最后一個步驟。
通過從 STM32CubeMX DDR 面板選擇的菜單/選項提供的極少信息確定 DDRCTRL 和 DDRPHYC 寄存器的配置。
然后,DDRSS 配置被保存并恢復到 DDRCTRL 和 DDRPHYC 寄存器,用于后續(xù)的復位和正常操作。