SDRAM調試總結
SDRAM的調試總結
1 概述
實驗平臺: JZ2440
CPU: S3C2440
SDRAM型號: EM63A165TS-6G
2 SDRAM的一些基本概念
2.1 引腳分配
2.2 引腳描述
A0-A12 :地址線
DQ0-DQ15 :數據線
LDQM、UDQM :數據屏蔽控制
BA0-BA1 :L-BANK地址線
CLK :時鐘
CKE :時鐘使能
CS# :片選
WE# :寫使能
CAS# :列地址選通脈沖
RAS# :行地址選通脈沖
VSS、VSSQ :地
VDD、VDDQ :電源
2.3 內部框圖
2.4 基本概念
初始化完成之後,想要對一個L-BANK的陣列進行尋址,需要經過片選、選擇L-BANK、激活對應的行,選擇對應的列並發送讀寫命令,完成對應操作。
2.4.1
確定要操作的行,使之處於激活(Active)狀態;行有效操作與片選、L-BANK地址同時進行。
2.4.2 列(Column)尋址
行有效後,經過一定的時間間隔後[Trcd(RAS to CAS Delay)],進行列尋址操作,確定要操作的存儲單元;列尋址與讀寫命令同時進行。
2.4.3 數據輸出(讀)
從CAS與讀取命令發出,到第一筆數據輸出到數據總線上,有一段時間間隔,這個時間間隔成為[Tcl(CAS Latency,CAS潛伏期)];從數據總線上有數據輸出之前的一個上升沿開始,數據已被觸發,經過一定的驅動時間,最終被傳向數據總線上,這段驅動時間,被稱為[Tac(Access Time from CLK,時鐘出發後的訪問時間)],每個數據讀取時,都有Tac,包括連續讀取,只是在第一個數據傳輸的同時,就開始了第二個數據的Tac。
2.4.4 數據輸入(寫)
數據寫入也是在Trcd之後進行,數據與CAS同時發送,即寫入延時為0,但是為了保證數據的寫入可靠,都會留出足夠的寫入、校正時間[Twr(Write Recovery Time)],這個操作也被稱作寫回(Write Back);註意,預充電與寫操作不能同時進行,並且在寫操作完成後,等待Twr的時間間隔,才能執行預充電操作。
2.4.5 突發(Burst)
突發是指同一行中,相鄰的存儲單元連續進行數據傳輸的技術,連續傳輸所涉及的存儲單元(列)的量,就是突發長度(Burst Length, BL);只要起始列地址和突發長度,內存就會依次地自動對後面相應數量的存儲單元進行讀寫操作,而不需要控制器連續地提供列地址。
Full Page突發傳輸:L-BANK裏,對某一行中所有存儲單元按順序連續傳輸。
順序傳輸:從指定起始單元開始,按順序傳輸。
交錯傳輸:按照指定規則,進行數據傳輸。
2.4.6 預充電(Precharge)
L-BANK關閉現有工作行,準備打開新行的操作,就是預充電操作。實際上,預充電就是對工作行中所有存儲單元進行數據重寫,並對行地址進行復位,以準備新行的工作。地址線A10控制著讀寫之後,是否進行自動預充電操作。
在發出預充電命令之後,要經過一定時間才能發送行有效命令打開新的工作行,這段時間為[Trp(Precharge command period),預充電有效周期]。
2.4.7 刷新(Refresh)
刷新的意義在於保存數據。在刷新過程中,所有L-BANK都停止工作,所有的工作命令只能等待而無法執行,刷新完成後,才會重新進入工作狀態。
刷新分為兩種:自動刷新(Auto Refresh, AR)和自刷新(Self Refresh, SR)。
自動刷新:在正常工作狀態下,芯片周而復始地自動刷新,以保存臨時存儲地數據。
自刷新:在休眠狀態下(在發出AR命令後,使CKE置於無效狀態,重新使能CKE可退出),芯片內部自動刷新,以保證數據不丟失。
2.4.8 刷新與預充電地區別
預充電是對一個或所有L-BANK中的一個工作行進行重寫操作,是不定期的;刷新是對所有行進行重寫操作,以保留那些久久未被重寫的存儲單元的數據。
2.4.9 數據掩碼
屏蔽不需要的數據。在讀取數據時,DQM發出,兩個時鐘周期後生效;在數據寫入時,DQM立即生效。
2.4.10 幾種讀取時可能出現的情形
a、頁命中(PH, Page Hit)
要尋址的行與L-BANK是空閑的,直接發送行有效,再發送列尋址,即可完成讀寫操作。
b、頁快速命中(PFH, Page Fast Hit)
要尋址的行正好是前一個操作的工作行,即尋址的行已處於選通有效狀態,可以直接發送列尋址,即可完成讀寫操作。
c、頁錯失(PM, Page Miss)
要尋址的行所在的L-BANK中已經有一個激活的工作行(尋址沖突),這時必須先對激活的工作行進行預充電操作,關閉激活的行,再對新行發送行有效,頁尋址,才能完成讀寫操作。
交錯式內存控制:一個L-BANK進行工作時,對下一個要工作的L-BANK進行預充電操作。
3 EM63A165TS
3.1 時序
模式寄存器位映射關系
3.3 突發訪問規則
3.4 AC特性
4 S3C2440內存控制器配置說明
4.1 原理圖說明
這是一種兩個16位位寬的SDRAM芯片拼接成一個32位位寬的模組接法。
a、A0連接CPU的哪根地址線,是由模組的數據位寬決定的。由於CPU是按字節尋址的,而SDRAM模組是按字尋址的,所以應該進行地址轉換。
b、A0、BA0、BA1連接的地址線可以參考用戶手冊。
4.2 工作原理簡述
S3C2440的內存空間劃分為不同的塊,當CPU向內存控制器發出地址,內存控制器根據地址範圍,發出對應片選信號到片選引腳,實現對不同設備的控制。
4.3 寄存器設置(clocks = 10ns)
4.3.1 BWSCON
說明
[27]
0:把對應的引腳映射為寫字節使能,該位的作用是,對寫入數據,屏蔽不需要寫入的字節,實現單個字節寫操作。
1:把對應的引腳映射為字節使能,該位的作用是,對讀入數據,屏蔽不需要讀取的字節,實現單個字節讀操作。
[26]
如果CPU速度遠遠大於SDRAM速度,當CPU向SDRAM發送讀取命令時,SDRAM未能及時準備好數據,可以使能該位,設置等待,保證能讀到數據。
4.3.2 BANKCON6
4.3.3 REFRESH
4.3.4 BANKSIZE
4.3.5 MRSRB6
5 參考文檔
《S3C2440用戶手冊》
《EM63A165TS Datasheet》
《高手進階——高級內存技術指南》
《嵌入式Linux開發完全手冊》
SDRAM調試總結