勵志

勵志人生知識庫

sdram初始化

SDRAM的初始化過程包括以下步驟:

上電延時:上電後,首先延時至少100微秒(通常取200微秒),在此期間傳送空操作命令NOP

預充電:延時結束後,寫入預充電命令P_CHARGE,對所有Bank進行預充電。然後等待tRP(預充電時間)周期,期間繼續傳送NOP。

自動刷新:tRP等待時間結束後,寫入自動刷新命令AUTO_REF,然後等待tRC(行周期)周期,期間同樣傳送NOP。

再次自動刷新:tRC等待時間結束後,再次寫入自動刷新命令AUTO_REF,再次等待tRC周期,期間繼續傳送NOP。

配置模式暫存器:tRC等待時間結束後,寫入配置模式暫存器命令M_ERG_SET,然後等待tMRD(模式暫存器延遲)周期,期間傳送NOP。

配置EMC暫存器:在系統啟動後,配置EMC(Extended Mode Register)暫存器,設定SDRAM的時鐘頻率、位元組順序和時序參數,如刷新周期、預充電命令周期、自刷新退出時間、寫恢復時間等。這些參數通常需要查閱相關SDRAM晶片的手冊。

傳送正常運行命令:在完成以上步驟後,SDRAM即可進入正常運行狀態。

需要注意的是,SDRAM初始化必須在系統資源(如堆疊或全局變數所在的物理記憶體)初始化完成後再進行。在程式跳轉到主程式啟動之前,如果全局變數未清零或初始化,開發者必須手動初始化變數。