1. 程式人生 > >SDRAM調試總結

SDRAM調試總結

period 總結 進行 數量 bank rec 時序 用戶 屏蔽

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

行(Row)有效

確定要操作的行,使之處於激活(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調試總結