上一篇博客主要講解了一下SDRAM整體結構以及PCB方面的注意事項。接下來講解一下需要用到的一些命令。
1.常用命令的縮寫
上述是常用到的一些指令集。
2.模式寄存器
(1)突發長度
通過對A0~A11的控制來實現SDRAM的常用配置。首先A0~A2是突發長度的控制。突發長度的控制如下圖,有突發長度1,2,4,8,還有全頁長度。
突發讀寫方式,突發指的是在同一行中相鄰的存儲單元連續進行數據傳輸的方式,連續傳輸 的周期數就是突發長度,只要指定起始列地址與突發長度,尋址與數據的讀取將自動進行,只需控制好兩端突發讀取命令的間隔周期就能做到連續的突發傳輸。突發長度在模式寄存器的配置中有1.2.4.8,以及256個數據的操作模式。
突發讀寫實現的是連續的讀寫操作,在結束完一次突發讀寫前,不需要進行地址的索引,但需要注意的是,這個連續的讀寫操作是操作的連續,不是地址的連續。
SDRAM的讀寫方式,既可以通過地址的索引實現單個邏輯單元數據的讀/寫,也可以通過 突發連續讀/寫實現最多256個數據的連續操作,為了實現更高的帶寬,可以采用突發連續讀/寫方式來實現海量數據的高速讀/寫。
(2)突發類型和讀寫方式
在模式寄存器配置中還可以設定SDRAM突發讀寫方式為順序讀寫或者交錯讀寫。
為了實現海量數據的傳輸,這里選擇突發讀寫,突發類型選擇連續。
3.SDRAM初始化時序
有嚴格的流程:
板卡上電初始化---200us等待SDRAM啟動(手冊中至少需要100us)----所有L-BANK預充電(給所有L-BANK的電容充電,准備預刷新)-----8個預先刷新周期(手冊規定至少2個周期來刷新邏輯塊,在設計中一般直接給8個周期)----模式寄存器的配置(寄存器配置完畢后,輸出SDRAM_init_done信號 ,標志初始化完畢)。
4.數據手冊相關內容
筆者之前使用過的一款SDRAM芯片,驅動時鍾133MHz,CAS潛伏周期時間為3,這個參數決定了SDRAM的最高運行速率。
總容量 = 行數 x 列數 x bank 數 x 位寬 = 1 bank單元數 x bank 數 x 位寬 ;
DQM的位寬 = 數據寬度/8,如32bit的SDRAM,DQM[2]對應DQ[23:16].
關於DQM的作用是起到掩膜作用,就是指定輸出時候,某一段是不輸出的。下圖是DQM的時序圖。
5.SDRAM讀寫時序圖
在上述模式寄存器控制中,A10控制着讀寫當前L-Bank自動進行預充電,再發出預充電命令之后,要經過一段時間才能允許發送RAS行有效命令打開新的工作行,這個間隔稱為預充電有效周期,tRP。
刷新
SDRAM刷新包括自刷新(self refresh)和自動刷新(auto refresh),不論是何種方式,不用提供外部行地址信息,這是一個內部自動操作。
預充電是對一個 或所有的L-Bank中的工作行操作,不是定期的。刷新是固定的周期,依次對所有行進行操作,以保留那些久久沒經過重寫的存儲體中的數據。
由於SDRAM內部是電容結構,需要不斷刷新才能夠保存數值,存儲體中電容的數據有效保存期上限是64ms,刷新速度就是 4096/64ms。也就是64ms必須刷新完所有的行。
6.行有效時序圖
8.tCL 數據輸出延時時間
9.tWR 數據寫入延時時間
10.突發長度
full page (全頁)突發傳輸是指L-Bank里的一行中所有存儲單元從頭至尾進行連續傳輸,具體的突發長度要看芯片的內容情況。
針對芯片的頁是狹義的,常用的是廣義上的頁。
//========================================================
對於上述的方法進行總結,SDRAM的驅動方式如下:
首先器件上電----對SDRAM進行初始化(因為內部有邏輯電路部分,狀態機部分)----對SDRAM進行200us的穩定期(參數INIT_PER)----預充電,對所有的L-Bank進行預充電(預充電時間間隔tRP)----8個預先刷新周期(手冊規定至少2個周期來刷新邏輯塊,在設計中一般直接給8個周期,參數REF_PER)----模式寄存器的配置(行選通周期參數tRCD,由於SDRAM內部結構導致更新存儲陣列需要時間---數據輸出延時時間tCL---突發長度BL設置)
//========================================================
//=======================================================================
更多詳細的資料下載可以登錄筆者百度網盤:
網址:http://pan.baidu.com/s/1bnwLaqF
密碼:fgtb
//=======================================================================