《ARM Cortex-A9多核嵌入式系統(tǒng)開發(fā)教程》課件第六章_第1頁
《ARM Cortex-A9多核嵌入式系統(tǒng)開發(fā)教程》課件第六章_第2頁
《ARM Cortex-A9多核嵌入式系統(tǒng)開發(fā)教程》課件第六章_第3頁
《ARM Cortex-A9多核嵌入式系統(tǒng)開發(fā)教程》課件第六章_第4頁
《ARM Cortex-A9多核嵌入式系統(tǒng)開發(fā)教程》課件第六章_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

時鐘管理單元6Exynos4412時鐘管理單元工作原理時鐘管理單元控制寄存器應(yīng)用實例第6章時鐘管理單元6.1時鐘管理單元工作原理

時鐘管理單元(ClockManagementUnit,CMU)是Cortex-A9用來管理其內(nèi)部各個時鐘模塊的核心單元。Exynos4412的時鐘管理單元通過PLLs(PhaseLockedLoops,鎖相環(huán))產(chǎn)生CPU、總線和外設(shè)所需的各種頻率的時鐘信號。同時,時鐘管理單元也與電能管理單元關(guān)聯(lián),通過在低功耗模式下關(guān)閉時鐘的方法,來降低整個系統(tǒng)的功耗。6.1.1Exynos4412的時鐘體系在一塊ARM芯片里,往往集成有多個不同的功能模塊,這些功能模塊在各自時鐘頻率下表現(xiàn)性能最優(yōu)。為了讓整塊ARM芯片功耗最低,性能最好,只能采取多時鐘頻率的方法,才能達(dá)到要求。第6章時鐘管理單元圖6.1Exynos4412時鐘體系框圖第6章時鐘管理單元Cortex-A9MPCore處理器L2cache控制器CoreSight?CPU時鐘模塊DRAM內(nèi)存控制器安全子系統(tǒng)通用中斷控制器?DMC時鐘模塊12內(nèi)部時鐘:第6章時鐘管理單元DRAM模塊子模塊數(shù)據(jù)RIGHTBUS時鐘模塊

LEFTBUS時鐘模塊其他模塊其他時鐘模塊34第6章時鐘管理單元外部時鐘:外部引腳接入的初始時鐘源有3個,分別是:(1)?XRTCXTI引腳:接32.768?kHz的晶振,用于向?qū)崟r時鐘(RTC)提供初始晶振。(2)?XXTI引腳:接12~50?MHz的晶振,用于向系統(tǒng)提供時鐘。不使用時,應(yīng)該下拉。(3)?XUSBXTI引腳:由引腳XusbXTI引入,為APLL、MPLL、VPLL、EPLL和USB-PHY提供基礎(chǔ)時鐘。第6章時鐘管理單元外部時鐘

APLL:用于CPU時鐘模塊;作為MPLL的補(bǔ)充,它也可以給DMC時鐘模塊、LEFTBUS時鐘模塊、RIGHTBUS時鐘模塊和CMU_TOP時鐘模塊提供時鐘。?MPLL:用于給DMC時鐘模塊、LEFTBUS時鐘模塊、RIGHTBUS時鐘模塊和CMU_TOP時鐘模塊提供時鐘。?EPLL:主要給音頻模塊提供時鐘。VPLL:主要給視頻系統(tǒng)提供54MHz時鐘,給G3D(3D圖形加速器)提供時鐘。?USBPHY:給USB子系統(tǒng)提供30MHz和48MHz時鐘。?HDMIPHY:產(chǎn)生54MHz時鐘。倍頻第6章時鐘管理單元6.1.2Exynos4412時鐘管理單元工作過程1、倍頻由于外部晶振從開始起振到穩(wěn)定的期間,PLL將CPU的頻率鎖定一段時間,在這期間內(nèi),需要將內(nèi)部使用的頻率鎖定抬升以后才能供這些模塊使用。因此,在鎖定頻率后,還需要設(shè)置一個倍頻因子,抬升從外部晶振輸入的時鐘頻率。第6章時鐘管理單元2、分頻

通過設(shè)置分頻相關(guān)寄存器中不同的位即可實現(xiàn)分頻。比如,設(shè)置某位分頻值為4,那么,分頻時,原來頻率假設(shè)為1000MHz,則該頻率就被分為1000/(1?+?4)?=?200MHz。第6章時鐘管理單元在選用倍頻、分頻值時,針對APLL、MPLL、EPLL和VPLL有不同的推薦值,應(yīng)該參考表6.1~表6.3,從推薦值中選擇倍頻、分頻函數(shù)P、M、S相近的組合方式。表6.1APLL和MPLL的P、M、S推薦值第6章時鐘管理單元表6.2EPLL的P、M、S推薦值第6章時鐘管理單元表6.3VPLL的P、M、S推薦值第6章時鐘管理單元3、Exynos4412配置時鐘的方法圖6.2ARMCLK時鐘頻率產(chǎn)生的原理框圖第6章時鐘管理單元設(shè)置PLL的流程如下:(1)設(shè)置PLL的P、M、S值,這是根據(jù)期望得到的頻率用公式計算出來的,一般從推薦表中選擇相近的組合。(2)設(shè)置PLL的其他控制參數(shù)。(3)使能PLL。(4)設(shè)置鎖定時間,PLL等待一段時間,使得時鐘穩(wěn)定。(5)設(shè)置MUX,選擇PLL輸入時鐘。如果當(dāng)前正使用該P(yáng)LL,那么先設(shè)置MUX改用其他時鐘源或禁止使用此PLL,設(shè)置完P(guān)LL后再設(shè)置MUX改回原來PLL所使用的時鐘源。第6章時鐘管理單元6.2時鐘管理單元控制寄存器

Exynos4412中,與時鐘管理單元相關(guān)的寄存器多達(dá)163個。按這些寄存器的映射地址可以分為6個部分,分別稱為:CMU_LEFTBUS、CMU_RIGHTBUS、CMU_TOP、CMU_DMC、CMU_CPU和CMU_ISP。這6個部分各有16KB地址空間容納其相關(guān)的寄存器。這些寄存器在各自16KB地址空間中的分布方式是類似的。第6章時鐘管理單元圖6.3Exynos4412時鐘控制器的地址映射第6章時鐘管理單元下面以CMU_CPU單元的設(shè)置為主線,介紹與其配置相關(guān)的寄存器的使用方法,具體步驟如下:1.初次選擇時鐘輸入源

表6.5列出了CMU_CPU模塊中,用于選擇時鐘源的4個多路開關(guān)的控制位。為了使用24MHz的外部時鐘進(jìn)行倍頻,查看表6.5,需設(shè)置MUX_APLL_SEL為0(選擇FINPLL),MUX_CORE_SEL也需設(shè)置成0,選擇MOUTAPLL。其他的兩位也都設(shè)置為0,分別將MUX_MPLL_USER_SEL_C選擇FINPLL、MUX_HPM_SEL選擇MOUTAPLL。設(shè)置完成后需要等待一定時間,讓其設(shè)置成功。第6章時鐘管理單元表6.5時鐘源選擇寄存器CLK_SRC_CPU第6章時鐘管理單元上表中各寄存器各位的作用:①BIT[0]控制第1個多路復(fù)用開關(guān)MUXAPLL,用于選擇是使用FINPLL還是APLL的輸出時鐘MOUTAPLL。②BIT[16]控制第2個多路復(fù)用開關(guān)MUXCORE,通過設(shè)置0或1,選擇MOUTAPLL或者SCLKMPLL,以確定該級多路復(fù)用開關(guān)的輸入頻率源。其中SCLKMPLL由MUXMPLL控制。③BIT[20]控制第3個多路復(fù)用開關(guān)MUXHPM,用于選擇MOUTAPLL或者SCLKMPLL,以確定該級多路復(fù)用開關(guān)的輸入頻率源。④BIT[24]控制第4個多路復(fù)用開關(guān)MUXMPLL,用于選擇FINPLL或者M(jìn)OUTMPLL。該級多路開關(guān)的輸出被稱為SCLKMPLL。其中,F(xiàn)OUTMPLL來自MPLL的輸出。第6章時鐘管理單元2.設(shè)置APLL/MPLL/EPLL/VPLL鎖相環(huán)的鎖頻時間

設(shè)置APLL的參數(shù)并使能它后,APLL并不能立刻輸出穩(wěn)定的時鐘,它需要經(jīng)歷一個鎖定時間(LockTime)。APLL的最大鎖定時間是(270

×

PDIV)個周期。所以將APLL_LOCK寄存器相關(guān)位域設(shè)置為(270

×

PDIV)就可以了,見表6.6。表6.6APLL鎖定時間設(shè)置寄存器APLL_LOCK寄存器第6章時鐘管理單元3.倍頻APLL/MPLL/EPLL/VPLL的倍頻值需根據(jù)需求參考表6.1~6.3中的推薦值進(jìn)行設(shè)置。根據(jù)M、P、S的值,可以算出APLL的輸出時鐘。比如,當(dāng)選取推薦值M、P、S的組合為175、3、0時,輸出的頻率為:第6章時鐘管理單元表6.7APLL控制寄存器APLL_CON0第6章時鐘管理單元4.重新選擇時鐘源

在分頻之前,必須重新選擇時鐘源。重新選擇時鐘源的寄存器配置方法和前面介紹的一樣,只是這里需根據(jù)新選擇的時鐘源對相應(yīng)的寄存器值進(jìn)行設(shè)置,這一次我們需要選擇倍頻后的時鐘。設(shè)置完成后,同樣讀取相應(yīng)的狀態(tài)寄存器,和其對應(yīng)的值進(jìn)行比較,以確定是否完成設(shè)置。選擇完成時鐘源后,就可以開始進(jìn)行分頻了。分頻值需要根據(jù)表6.8、表6.9列出的分頻寄存器CLK_DIV_CPU0、CLK_DIV_CPU1的相應(yīng)位進(jìn)行配置。第6章時鐘管理單元表6.8CLK_DIV_CPU0控制寄存器第6章時鐘管理單元表6.9CLK_DIV_CPU1控制寄存器第6章時鐘管理單元下面以CPU的工作頻率ARMCLK配置為例,計算ARMCLK的頻率: ARMCLK=MUXCORE的輸出?/?DIVCORE?/?DIVCORE2

=MOUTCORE/(CORE_RATIO+1)/DIVCORE2 =MOUTCORE/(CORE_RATIO+1)/(CORE2_RATIO+1)

其中,MOUTCORE表示MUXCORE的輸出,在MUXAPLL和MUXCORE都設(shè)置為0時,它等于M?×?FIN/(P?×?2S)。第6章時鐘管理單元6.3應(yīng)用實例通過Exynos4412的一段時鐘初始化程序,介紹時鐘管理單元部分的設(shè)置方法。程序的編寫思路按照6.2節(jié)的四個步驟進(jìn)行。在代碼中,我們采用注釋的形式對

溫馨提示

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

評論

0/150

提交評論