Exynos4412時鐘體系分析_第1頁
Exynos4412時鐘體系分析_第2頁
Exynos4412時鐘體系分析_第3頁
Exynos4412時鐘體系分析_第4頁
Exynos4412時鐘體系分析_第5頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Exynos4412時鐘體系分析2014年10月26日 裸機程序 共 3927字 字號 小 中 大 評論 3 條 閱讀 1,322 次 在芯片手冊里,“時鐘管理單元 (Clock Management Unit)“的簡稱為 CMU 。CMU_ XXX 表示“XXX 模塊內的 CMU ”,比如CMU_CPU等。對于PC來說, CPU 、內存、主板、聲卡、顯卡等,這些功能部件由不同的芯片組成, 在實體上是相互獨立的 。在嵌入式系統里,一塊芯片內往往集成了多種功能比如Exynos 4412 上面既有CPU,還有音頻 /視頻接口、 LCD 接口、 GPS 等模塊 這類芯片被稱為 SoC,即 Syste

2、m on Chip,譯為芯片級系統或片上系統。一、Exynos4412的時鐘體系不同的模塊往往工作在不同的頻率下,一個芯片上采用單時鐘設計基本是不可能實現的 ,在 SoC設計中采取多時鐘域設計 。4412的時鐘域有5個, 如下圖所示:這 5個時鐘域名如下 (下文中的 BLK 表示 block ,模塊 ):CPU_BLK :內含 Cortex-A9 MPCore處理器、 L2 cache 控制器、CoreSight (調試用 )。CMU_CPU用于給這些部件產生時鐘 。 DMC_BLK :內含 DRAM 內存控制器 (DMC)、安裝子系統 (Security sub system )、通用中斷控

3、制器 (Generic Interrupt Controller,GIC) 。CMU_DMC 用于給這些部件產生時鐘。 LEFTBUS_BLK 和 RIGHTBUS_BLK:它們是全局的數據總線,用于在 DRAM 和和其他子模塊之間傳輸數據。 其他BLK : 在上圖中,用畫筆圈起來的模塊 。CMU_TOP用于給這些模塊產生時鐘。Exynos4412有3個初始時鐘源: XRTCXTI引腳 :接 32KHz的晶振,用于實時鐘 (RTC) 。 XXTI引腳 :接12M 50 MHz的晶振, 用于向系統提供時鐘,也可以不接。 XUSBXTI引腳 :接24MHz的晶振 ,用于向系統提供時鐘。在友善之臂的

4、開發板中, XRTCXTI 上沒有外接晶振,系統時鐘來源是XUSBXTI引腳上接的24MH 晶振,如下圖所示:從原理圖上可知, 4412開發板外接24MHz的晶振;但是4412的CPU頻率可達1.4GHz。 可以想象,一定有硬件部件把24MHZ的頻率提升為1.4GHZ,這個部件被稱為PLL(鎖相環) 。4412內部其他部件也要工作于一定頻率,比 UART 、DDR等,也應該有PLL把24MHZ的頻率提高后供給它們。4412有4個PLL :APLL 、MPLL 、EPLL 和 VPLL ;2個 PHY :USB PHY 和 HDMI PHY (PHY:物理層, 一般指與外部信號接口的芯片 ):

5、APLL:用于 CPU_BLK ;作為 MPLL 的補充,它也可以給 DMC_BLK 、LEFTBUS_BLK 、RIGHTBUS_BLK 和 CMU_TOP 提供時鐘。 MPLL:用于DMC_BLK 、LEFTBUS_BLK 、RIGHTBUS_BLK 和 CMU_TOP EPLL :主要給音頻模塊提供時鐘 VPLL :主要給視頻系統提供54MHz時鐘, 給 G3D(3D圖形加速器 )提供時鐘。 USB PHY :給 USB 子系統提供 30MHz 和 48MHz 時鐘 。 HDMI PHY :產生 54MHz 時鐘 。二、Exynos4412中設置PLL的方法(以APLL為例)APLL時鐘

6、流程圖以上圖為例,里面涉及3個概念: MUX:多路復用,即從多個輸入源中選擇一個 PLL:把低頻率的輸入時鐘提高后輸出 DIV:分頻器,把高頻率的輸入時鐘降頻后輸出由APLL的時鐘流程圖可知, 它的時鐘來源可以是 XXTI引腳上接的晶振,也可以是 XUSBXTI 引腳上接的晶振,通過上圖左邊的MUX來選擇,這個MUX的輸出被稱為FINPLL。通過設置APLL的寄存器 (根據公式選擇參數值 ),可以把FINPLL提高為某個頻率輸出,假設為1.4GHz ,在圖上它被命名為FOUTAPLL。繼續往右看圖,里面有多個DIV ,可以設置對應的寄存器把頻率降下來。 CPU可以工作于1.4GHz,但是其他模

7、塊不能工作于這么高的頻率所以要把頻率降下來。設置 PLL 的流程如下: 的流程如下: 設置PLL的 P、M、S值,這是根據期望得到的頻率用公式計算出來 設置PLL的其他控制參數 使能PLL PLL會等待一段時間使時鐘穩定 設置MUX ,選擇PL 所輸出的時鐘簡單地說就是: 先設置,再啟動,后使用。第 5點意味著:如果當前正使用該PLL,那么先設置 MUX 改用其他時鐘源或禁止使用此 PLL,設置完PLL后再設置MUX改回原來所使用的PLL時鐘。三、PLL寄存器4個PLL的寄存器功能是相似的,這些寄存器可以分為6類,如下圖所示:PLL的寄存器分類以APLL為例:(1) APLL_LOCK (地址

8、 : 0x10044000 )APLL_LOCK說明:設置APLL的參數并使能它后, APLL 并不能立刻輸出穩定的時鐘 ,它需要經歷一個鎖定的時間 (lock time) 。APLL的最大鎖定時間是: (270 x PDIV) 個周期。 所以 APLL_LOCK 設置為 (270 x PDIV) 就可以了。PDIV在后面的APLL_CON1寄存器中介紹(2) APLL_CON0 (地址 : 0x10044100 )(這里只列出了有用的幾位)APLL_CON0根據 M、P、S的值,可以算出APLL的輸出時鐘:FOUT = MDIV x FIN / (PDIV x 2 SDIV)M、P、S的值不

9、能亂取,需要滿足一些限制條件(請參考芯片手冊 ),芯片手冊里給出了推薦的取值。(3) APLL_CON1( 地址 : 0x10044104)(這里只列出了有用的位)APLL_CON1該寄存器用于設置 BYPASS 模式,即APLL是直接輸出FIN時鐘,還是提升頻率后再輸出時鐘;也用于設置AFC(自動頻率控制 )功能,暫時無需理會。該寄存器取默認值即可。(4) CLK_SRC_CPU (地址 : 0x10044200)CLK_SRC_CPU參考上面的APLL時鐘流程圖: BIT0 控制第1個MUX (即 MUXAPLL) ,用 于選擇是使FIN還是 APLL 的輸出時鐘,這個輸出被稱為 MOUT

10、APLL 。 BIT16控制 第2個 MUX( 即 MUXCORE) ,用于選擇 MOUTAPLL 還是 SCLKMPLL 。其中 SCLKMPLL 由下面的 MUXMPLL 控制。 BIT24控制第3個MUX( 即 MUXMPLL) ,用于選擇 FINPLL 還是 FOUTMPLL ,這個輸出被稱為SCLKMPLL 。其中, FOUTMPLL來自MPLL 的輸出。 BIT20控制第4個 MUX( 即 MUXHPM) ,用于選擇 MOUTAPLL還是 SCLKMPLL 。(5) CLK_MUX_STAT_CPU (地址 : 0x10044400) :CLK_MUX_STAT_CPU用于讀取 C

11、LK_SRC_CPU寄存器里所設置的MUX 狀態。(6) CLK_DIV_CPU0 (地址 : 0x10044500),CLK_DIV_CPU1( 地址 : 0x10044504)CLK_DIV_CPU參考上面的APLL時鐘流程圖,以 CPU 的工作頻率 ARMCLK 為例,根據上圖計算ARMCLK的頻率:ARMCLK = MUXCORE的輸出 / DIVCORE / DIVCORE2 = MOUTCORE / (CORE_RATIO + 1) / DIVCORE2 = MOUTCORE / (CORE_RATIO + 1) / (CORE2_RATIO + 1) MOUTCORE表示MUXCORE的輸出,在MUXAPLL為1、MUXCORE為0時,它等于“MDIV x FIN / (PDIV x 2 SDIV),即APLL的輸出FOUT”(7) CLK_DIV_STAT_CPU0 (地址 : 0x1004

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論