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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

表6.5列出了CMU_CPU模塊中,用于選擇時(shí)鐘源的4個(gè)多路開(kāi)關(guān)的控制位。為了使用24MHz的外部時(shí)鐘進(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í)間,讓其設(shè)置成功。第6章時(shí)鐘管理單元表6.5時(shí)鐘源選擇寄存器CLK_SRC_CPU第6章時(shí)鐘管理單元上表中各寄存器各位的作用:①BIT[0]控制第1個(gè)多路復(fù)用開(kāi)關(guān)MUXAPLL,用于選擇是使用FINPLL還是APLL的輸出時(shí)鐘MOUTAPLL。②BIT[16]控制第2個(gè)多路復(fù)用開(kāi)關(guān)MUXCORE,通過(guò)設(shè)置0或1,選擇MOUTAPLL或者SCLKMPLL,以確定該級(jí)多路復(fù)用開(kāi)關(guān)的輸入頻率源。其中SCLKMPLL由MUXMPLL控制。③BIT[20]控制第3個(gè)多路復(fù)用開(kāi)關(guān)MUXHPM,用于選擇MOUTAPLL或者SCLKMPLL,以確定該級(jí)多路復(fù)用開(kāi)關(guān)的輸入頻率源。④BIT[24]控制第4個(gè)多路復(fù)用開(kāi)關(guān)MUXMPLL,用于選擇FINPLL或者M(jìn)OUTMPLL。該級(jí)多路開(kāi)關(guān)的輸出被稱為SCLKMPLL。其中,F(xiàn)OUTMPLL來(lái)自MPLL的輸出。第6章時(shí)鐘管理單元2.設(shè)置APLL/MPLL/EPLL/VPLL鎖相環(huán)的鎖頻時(shí)間

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

×

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

×

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

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

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論