IT技術互動交(jiao)流平台

彩龙网官网

來(lai)源︰IT165收集  發布日期︰2020-02-24 12:16:12

彩龙网官网

0.1 時(shi)鐘源自哪里

所謂的時(shi)鐘,就是(shi)電壓(ya)高(gao)低的變化,只有不斷的0,1交(jiao)替變化,CPU才能(neng)被驅動運行。S3C2440支持(chi)多種時(shi)鐘源,這通過CPU針腳OM3和OM3來(lai)選擇。對于QT2440板(ban)子來(lai)說,OM3和OM2均直接(jie)接(jie)地(di),這就意(yi)味著(zhou)時(shi)鐘源來(lai)自針腳XTIpll和XTOpll,這兩個針腳在(zai)TQ2440的核心(xin)板(ban)上被連接(jie)上了一個12MHz的晶振。

0.2 S3C2440的時(shi)鐘原理與設置

CPU、RAM、UART等(deng)不同的設備運行時(shi)需(xu)要不同的時(shi)鐘頻率(lv),這些不同的頻率(lv)需(xu)要通過變頻電路來(lai)提供,在(zai)電子行業這個變頻電路fang)jiao)做(zuo)PLL(Phase Locked Loop)。作(zuo)為軟件(jian)出(chu)身的程序員,不太可能(neng)精通電路設計,只需(xu)要知道這個PLL可以(yi)yuan)咽shu)入的時(shi)鐘轉換為很多其他不同的時(shi)鐘供系統使(shi)用(yong)。

Fin(12MHz)——>(PLL變頻)——–>FCLK、HCLK、PCLK

而輸(shu)出(chu)頻率(lv)和輸(shu)入頻率(lv)的關系則(ze)通過響應(ying)的寄(ji)存器進行控制。控制參數的設置在(zai)s3c2440數據手冊上有詳細說明。這里只列出(chu)特別需(xu)要注(zhu)意(yi)的地(di)方(fang)。

If HDIVN is not 0, the CPU bus mode has to be changed from the fast bus mode to the asynchronous
bus mode using following instructions(S3C2440 does not support synchronous bus mode).
MMU_SetAsyncBusMode
mrc p15,0,r0,c1,c0,0
orr r0,r0,#R1_nF:OR:R1_iA
mcr p15,0,r0,c1,c0,0
If HDIVN is not 0 and the CPU bus mode is the fast bus mode, the CPU will operate by the HCLK.
This feature can be used to change the CPU frequency as a half or more without affecting the HCLK
and PCLK.
也就是(shi)說,S3C2440不支持(chi)異步總線(xian)模(mo)式(S3C2440A支持(chi))。所以(yi)只能(neng)工作(zuo)在(zai)fast bus模(mo)式下,此時(shi)如果HDIVN不是(shi)0的的話(hua),驅動CPU工作(zuo)的將不是(shi)FCLK,而是(shi)HCLK。

FCLKOUT must be bigger than 200MHz (It does not mean that the ARM core has to run more than 200MHz).因為CPU可能(neng)以(yi)HCLK工作(zuo),如第一條所示。

When you set MPLL&UPLL values, you have to set the UPLL value first and then the MPLL value. (Needs intervals
approximately 7 NOP。即ci)撬擔PLL設置要在(zai)MPLL設置之前,切之間間隔至少7個NOP。

如果沒有設置MPLL,那麼CPU會一直以(yi)Fin的頻率(lv)時(shi)鐘運行。 MPLL和UPLL的計算公式並不完(wan)全相同。
MPLL Control RegisterMpll = (2 * m * Fin) / (p * 2S)m = (MDIV + 8), p = (PDIV + 2), s = SDIVUPLL Control RegisterUpll = (m * Fin) / (p * 2S)m = (MDIV + 8), p = (PDIV + 2), s = SDIV

彩龙网官网

盡管理論稍顯(xian)復雜,實際設置代碼(ma)非常簡單。我們qie) 柚玫淖zui)終(zhong)結果是(shi)︰FCLK=200MHz,並且(qie)CPU以(yi)此來(lai)運行。當然可以(yi)根據手冊上的數據,設置成更高(gao)的頻率(lv),只不過嘗試後發現高(gao)頻率(lv)下CPU發熱rang)饗xian),為保護好(hao)測試yuan)遄櫻 捎yong)了一個較低的FCLK。

/* Fin=12MHz, FCLK=200MHz */.equ MPLLCON, 0x4c000004.equ M_MDIV, 92.equ M_PDIV, 4.equ M_SDIV, 1/* Fin=12MHz, UPLLCLK = 48MHz */.equ UPLLCON, 0x4c000008.equ U_MDIV, 56.equ U_PDIV, 2.equ U_SDIV, 2/* HCLK=FCLK, PCLK=FCLK, UCLK=UPLLCLK */.equ CLKDIVN, 0x4c000014/* if If HDIVN is not 0 and the CPU bus mode is the fast bus mode, the CPU will operate by the HCLK*/.equ HDIVN, 0.equ DIVN_UPLL, 0.equ PDIVN, 0 ldr r0, =CLKDIVN ldr r1, =(DIVN_UPLL<<3) + (HDIVN<<1) + PDIVN str r1, [r0] ldr r0, =UPLLCON ldr r1, =(U_MDIV<<12) + (U_PDIV<<4) + U_SDIV str r1, [r0] nop nop nop nop nop nop nop ldr r0, =MPLLCON ldr r1, =(M_MDIV<<12) + (M_PDIV<<4) + M_SDIV str r1, [r0]

彩龙网官网

我們還是(shi)使(shi)用(yong)了與上一篇(pian)博文同樣的一個LED流水燈C程序,不過由于CPU工作(zuo)頻率(lv)由12MHz提高(gao)到了200MHz,流水燈的速(su)度較上一hua)奼ben)變化非常明顯(xian),這也直觀上驗證了我們設置CPU時(shi)鐘成功了。

彩龙网官网

版本(ben)v0.4。

Tag標簽︰時(shi)鐘  紀(ji)實  更快  
  • 彩龙网官网

About IT165 - 廣告(gao)服(fu)務(wu) - 隱私聲明 - 版權申明 - 免責條款 - 網(wang)站(zhan)地(di)圖 - 網(wang)友投稿 - 聯系方(fang)式
本(ben)站(zhan)內容來(lai)自于互聯網(wang),僅供用(yong)于網(wang)絡技術學習,學習中(zhong)請(qing)遵循相關法(fa)律法(fa)規
彩龙网官网 | 下一页