三星S5-PV210記憶體初始化

来源:https://www.cnblogs.com/sdd1790175655/archive/2019/04/15/10709464.html
-Advertisement-
Play Games

一、S5PV210時鐘系統 時鐘:一定頻率的電信號。 時鐘系統:基於CMOS工藝的高性能處理器時鐘系統,集成PLL可以從內部觸發,比從外部觸發更快且更準確,能有效地避免一些與信號完整性相關的問題。 S5pv210時鐘系統,參考s5pv210手冊第三章,CLOCK CONTROLLER S5pv210 ...


 

一、S5PV210時鐘系統

 

時鐘:一定頻率的電信號。   時鐘系統:基於CMOS工藝的高性能處理器時鐘系統,集成PLL可以從內部觸發,比從外部觸發更快且更準確,能有效地避免一些與信號完整性相關的問題。

 

S5pv210時鐘系統,參考s5pv210手冊第三章,CLOCK CONTROLLER

 

S5pv210時鐘管理單元(CMU)主要瞭解了以下信息

 

1、時鐘域:s5pv210主要由三個時鐘域組成

 

aMSYS域:Cortex A8處理器、DRAM記憶體控制器(DMC0DMC1)、3D、內部SRAMIRAMIROM)、INTC和配置介面(SPERI)。Cortex A8僅支持同步模式,因此必須與200MHz軸匯流排同步運行。

 

bDSYS域:與顯示相關的模塊,包括FIMCFIMDJPEG和多媒體IPXLT塊中提到的所有其他IP)。都是和視頻顯示、編解碼等有關的模塊

 

cPSY域:安全、I/O外圍設備和低功耗音頻播放。如串口、SD介面、I2CAC97USB

 

每個匯流排系統分別以200兆赫(最大)、166兆赫和133兆赫運行。在兩個不同的域之間有非同步匯流排橋(BRG)。

 

S5Pv210由三個時鐘域組成,即主系統(MSY)、顯示系統(DSY)和外圍系統(PSY

 

 

 

2、時鐘的聲明

 

S5pv210的時鐘包括兩種:來自clock pads的時鐘,來自CMU的時鐘,跟來自USB PHY的時鐘

 

       a:來自CLOCK PADS的時鐘包括幾個晶振介面

 

       xrtcxti:使用xrtcxtixrtcxto管腳指定32.768 kHz晶體板的時鐘

 

       xxti:指定從帶xxtixxto針的水晶板的時鐘

 

       xusbxti:指定帶有xusbxtixusbxto引腳的水晶板上的時鐘

 

       xhdmixti:使用xhdmixtixhdmixto管腳指定27MHz晶體板的時鐘

 

       b:來自時鐘管理系統(CMU)的時鐘

 

       主要分為不同頻段的控制輸入,在典型的S5Pv210應用中,•Cortex A8MSys時鐘域使用APLL(即,ARMCLKHCLK-MSYPCLK-MSY)。

 

 

 

3、時鐘的關係

 

三個時鐘域(MSYS時鐘域、DSY時鐘域、PSY時鐘域)對應都有不同對應的取值範圍,每個高性能操作的值都對應不同的頻率

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4、時鐘的生成

 

s5pv210時鐘生成的邏輯框圖如下

 

時鐘生成器塊還包括內置邏輯,用於在每次系統重置後穩定時鐘頻率,因為時鐘在穩定之前需要時間。

 

s5pv210的兩種類型MUX時鐘開關:灰色時鐘mux表示無故障時鐘mux,如果更改時鐘選擇,則無故障時鐘mux。白色的時鐘mux代表非無故障時鐘mux,在改變時鐘源時可能會出現故障。

 

對於無故障多路復用器,應確保當時鐘選擇從一個更改為另一個時,兩個時鐘源都在運行。如果沒有同時使用,對於非無故障時鐘MUX,在更改時鐘時可能會出現故障。時鐘更改完成後,用戶可以重新啟用非無故障時鐘MUX的輸出,這樣就不會因時鐘更改而出現故障。非無故障多路復用器的屏蔽輸出由時鐘源控制寄存器處理。(下麵還有時鐘源控制寄存器的一些瞭解)

 

 

 

 

 

 

5、時鐘配置程式

 

基本SFR配置流程:

 

打開PLLAMEVPLL U CON[31]=1//打開PLL(參考(AMEVPLL U CON SFR             

 

wait_lock_time//等待PLL鎖定

 

amevpll_sel=1//pll輸出時鐘穩定後,選擇pll輸出時鐘而不是輸入參考時鐘。

 

更改系統時鐘分頻器值clk_div0[31:0]=目標值0

 

更改特殊時鐘的除法器值clk_div1[31:0]=目標值1

 

clk_div2[31:0]=目標值2

 

6、S5PV210時鐘設置寄存器

 

    -xPLL_LOCK:控制PLL鎖定頻率的周期,譬如24MHZ變為1GHZ這段是需要一段時間的,通過一個鎖相環使得把24MHZ鎖定為1GHZ,所以就需要鎖定頻率的周期了。(鎖定頻率)

 

    -xPLL_CON:打開/關閉PLL電路,設置PLL的倍頻參數,查看PLL鎖定狀態等。(決定倍頻到多少)

 

    -CLK_SRCn(n:0~6):用來設置時鐘來源的,對應時鐘框圖中的mux開關。(決定時鐘來源)

 

    -CLK_SRC_MASKn:打開關閉時鐘源。(開頭部分)

 

    -CLK_DIV_STATn:各模塊的分頻參數配製。(決定分頻多少)

 

    -CLK_SRC_GATE_x:打開關閉時鐘門。(結尾部分)

 

    -CLK_DIV_STATn:分頻狀態寄存器,確保是否已經分頻完成。

 

-CLK_MUX_STATn:選擇開關狀態寄存器,確保是否已經選擇開關完畢。

 

 

 

 

 

 

7、時鐘源控制寄存器

 

S5Pv210有許多時鐘源,包括四個PLL輸出、外部振蕩器、外部時鐘和來自GPIO的其他時鐘源。CLK U SRCN寄存器控制每個時鐘分頻器的源時鐘。

 

以此來設置時鐘開關

 

時鐘源寄存器(CLK U SRC0R/W,地址=0XE010 U 0200

 

 

 

 

 

 

 

 

 

s5pv210手冊中可以看到,所有的寄存器都是按塊分的。我們可以找到一個寄存器的基地址,再通過基址加編址定址的方式在找到寄存器。

 

8、後面還有s5pv210時鐘的MUX狀態SFR 以及各種時鐘源開關太多了還沒看完

 

二、s5pv210的記憶體初始化

 

1SDRAM定義和特性

 

 

 

SDRAMSyncronized Dynamic Ramdam Access Memory,同步動態隨機存儲器

 

DDRDDR就是DDR SDRAM,是SDRAM的升級版。(DDRdouble rate,雙倍速度的SDRAM

 

DDR有好多代:DDR1 DDR2 DDR3 DDR4 LPDDR

 

SDRAM的特性:容量大、價格低、掉電易失性、隨機讀寫、匯流排式訪問。

 

SDRAM在整個硬體系統中是屬於外部設備,通過地址匯流排和數據匯流排介面與SoC通信

 

 

 

2、記憶體地址詳解

 

 

 

 

3:定址詳解

 

 

 

 

在數據手冊《NT5TU64M16GG-DDR2-1G-G-R18-Consumer》第10頁的block diagram中,詳解如上。

 

採用128Mb * 8 結構,每個Bank可定址的大小是16MBBA0-BA2用來選擇8Bank,定址的方式:Row-Address+Column-Address

 

故單記憶體晶元可定址的大小為:16MB * 8 = 128MB

 

兩片單晶元記憶體並聯組合成32位數據匯流排,可與SoC進行匯流排通信,可定址的記憶體大小便為:128MB+128MB= 256MB,在九鼎的開發板上採用了DRAM0+DRAM1分配記憶體地址,所以DRAM0DRAM1都是256MB記憶體大小,合起來就是512MB記憶體大小。

 

所以開發板上DRAM0DRAM1可定址的有效範圍分別為:

 

DRAM00x20000000 - 0x2FFFFFFF  (256MB)

 

DRAM10x40000000 - 0x4FFFFFFF  (256MB)

 

其他地址為非法地址,比如:0x30000000

 

4SDRAM初始化詳解

 

初始化過程包括phy dll初始化、設置控制器寄存器和記憶體初始化。記憶體初始化請參考JEDEC規範和記憶體設備數據表。有三種不同的記憶體類型,即lpddrlpddr2ddr2。根據記憶體類型,初始化順序如下

 

1)、Lpddr記憶體初始化順序:

 

1、為了給控制器和存儲設備提供穩定的電源,控制器必須斷言和保持CKE到邏輯的高水平。然後應用穩定時鐘。註:xddr2sel應為低電平,以將CKE保持在高電平。

 

2、根據時鐘頻率將phycontrol0.ctrl_start_pointphycontrol0.ctrl_inc位欄位設置為正確的值。將phycontrol0.ctrl_dll_on位欄位設置為“1”以激活phy dll

 

3DQS清洗:根據時鐘頻率和記憶體TAC參數,將phycontrol1.ctrl_shiftcphycontrol1.ctrl_offsetc位欄位設置為正確的值。

 

4、將phycontrol0.ctrl_開始位欄位設置為“1”

 

5、設置控制器。此時,應關閉自動刷新計數器。

 

6、設置memcontrol。此時,所有斷電模式都應關閉。

 

7、設置memconfig0寄存器。如果有兩個外部記憶體晶元,也可以設置memconfig1寄存器。

 

8、設置prechconfigpwrdconfig寄存器。

 

9、根據存儲器交流參數設置正時參考、正時行、正時數據和正時功率寄存器。

 

10、如果需要QoS方案,請設置QosControl0~15QosConfig0~15寄存器。

 

11、等待phystatus0.ctrl_locked位欄位更改為“1”。檢查phy dll是否被鎖定。

 

12phy dll可以補償在記憶體操作過程中由進程、電壓和溫度(pvt)變化引起的延遲量的變化。因此,不應為可靠運行而關閉。如果頻率低,phy dll可以關閉。如果使用關閉模式,請根據phystatus0phycontrol0.ctrl_force位欄位設置為正確的值。ctrl_lock_value[9:2]位欄位用於固定延遲量。清除phycontrol0.ctrl_dll_on bit-欄位以關閉phy dll

 

13、確認

 

14、通電後穩定時鐘是否至少發出200us。使用directCmd寄存器發出pall命令。

 

15、使用directCmd寄存器發出兩個自動刷新命令。

 

16、使用directcmd寄存器發出mrs命令以編程操作參數。1-3 S5Pv210_M 1 DRAM控制器             

 

17、使用directcmd寄存器發出emrs命令以編程操作參數。

 

18、如果有兩個外部存儲晶元,則對Chip1存儲設備執行步驟14~17

 

19、將控制器設置為打開自動刷新計數器。

 

20、如果需要斷電模式,請設置MEMControl寄存器。

 

 

 

2lpddr2記憶體類型的初始化順序:

 

1、為了給控制器和存儲設備提供穩定的電源,控制器必須斷言並將CKE保持在邏輯低水平。然後應用穩定時鐘。註:xddr2sel應為高電平,以將CKE保持在低電平。

 

2、根據時鐘頻率將phycontrol0.ctrl_start_pointphycontrol0.ctrl_inc位欄位設置為正確的值。將phycontrol0.ctrl_dll_on位欄位設置為“1”以激活phy dll

 

3DQS清洗:根據時鐘頻率和記憶體TAC參數,將phycontrol1.ctrl_shiftcphycontrol1.ctrl_offsetc位欄位設置為正確值。

 

4、將phycontrol0.ctrl_開始位欄位設置為“1”

 

5、設置控制器。此時,應關閉自動刷新計數器。

 

6、設置memcontrol。此時,所有斷電模式都應關閉。

 

7、設置memconfig0寄存器。如果有兩個外部存儲器晶元,則設置memconfig1寄存器。

 

8、設置prechconfigpwrdconfig寄存器。

 

9、根據存儲器交流參數設置正時參考、正時行、正時數據和正時功率寄存器。

 

10、如果需要QoS方案,請設置QosControl0~15QosConfig0~15寄存器。

 

11、等待phystatus0.ctrl_locked位欄位更改為“1”。檢查phy dll是否被鎖定。

 

12phy dll可以補償在記憶體操作過程中由進程、電壓和溫度(pvt)變化引起的延遲量的變化。因此,phy dll不應關閉以實現可靠的操作。除低頻運行外,它可以關閉。如果使用關閉模式,請根據phystatus0phycontrol0.ctrl_force位欄位設置為正確的值。ctrl_lock_value[9:2]位欄位用於固定延遲量。清除phycontrol0.ctrl_dll_on位欄位以關閉phy dll

 

13、將phycontrol1.fp_resync位欄位設置為“1”以更新dll信息。

 

14、確認在通電後,CKE仍保持邏輯低電平至少100ns

 

15、發出一個nop命令,使用directcmd寄存器斷言和保持CKE到一個邏輯高級。

 

16、至少等待200us              1-4              S5Pv210_M 1 DRAM控制器             

 

17、使用directCmd寄存器發出mrs命令以重置記憶體設備並編程操作參數。

 

18、等待至少1us

 

19

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 什麼是版本庫?什麼是版本庫呢?版本庫又名倉庫,英文名repository,你可以簡單理解成一個目錄,這個目錄裡面的所有文件都可以被Git管理起來,每個文件的修改、刪除,Git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻可以“還原” 創建一個版本庫 添加文件到git倉庫 ...
  • 本篇文章作為Linux 入門的必備篇,主要簡述Linux系統目錄結構和Linux 基本Shell命令,大致內容如下: ​ ​ 一 Linux目錄及其概述 如下目錄為CentOS 7目錄結構 ​ 1.建立目錄 mkdir 該命令用來創建目錄。 (1)一次性創建一個目錄 mkdir mydir ​ (2 ...
  • 一、Docker的安裝和啟動 使用環境centos7 1. yum包更新到最新 2. 安裝需要的軟體包,yum util提供yum config manager功能 3. 設置yum源為阿裡雲 4. 安裝docker 5. 安裝查看docker版本 6. 設置 docker鏡象拉取提供者 7. 啟動 ...
  • 前提補充:linux下只要能夠mount存儲盤到目錄,則這個存儲盤必定是格式化過了的 NAS1、客戶端通過TCP/IP協議連接存儲伺服器的存儲捲。2、客戶端 網路交換機 存儲伺服器3、存儲伺服器可以實時看到每個存儲捲的使用率4、傳輸速度受限於網路以及存儲伺服器的文件系統處理速度5、文件系統在存儲短, ...
  • systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall開機啟動 ...
  • 所需器材有:樹莓派及其電源,usb攝像頭,路由器,兩台伺服舵機及其外殼,一臺筆記本,一根網線 樹莓派的基本操作及學習網站與資料 "樹莓派實驗室" "樹莓派3代入門資料及安裝教程" 按照以上操作初始化樹莓派 樹莓派控制攝像頭進行視頻流傳輸,併在pc端接收視頻 推薦使用 "MJPG streamer" ...
  • --正則-- 基礎正則 註:egrep,grep –E或sed –r 過濾一般特殊字元可以不轉義 擴展正則(egrep或grep -E) --grep-- 語法:grep [選項] [條件表達式] 目標文件 --sed-- 語法:sed [options] 'command' file(s) 選項: ...
  • 在IIS6下,經常出現w3wp的記憶體占用不能及時釋放,從而導致伺服器響應速度很慢。 可以做以下配置:1、在IIS中對每個網站進行單獨的應用程式池配置。即互相之間不影響。2、設置應用程式池的回收時間,預設為1720小時,可以根據情況修改。同時,設置同時運行的w3wp進程數目為1。再設置當記憶體或者cpu ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...