在電子技術中,脈沖信號是一個按一定電壓幅度,一定時間間隔連續發出的脈沖信號。脈沖信號之間的時間間隔稱為周期;而將在單位時間(如1秒)內所產生的脈沖個數稱為頻率。頻率是描述周期性循環信號(包括脈沖信號)在單位時間內所出現的脈沖數量多少的計量名稱;頻率的標準計量單位是Hz(赫)。本文主要介紹什么是時鐘頻率及編程,具體的跟隨小編一起來了解一下。
什么是時鐘頻率
時鐘頻率即CPU的外部時鐘頻率,由電腦主板提供,以前一般是66MHz,也有主板支持75各83MHz,目前Intel公司最新的芯片組BX以使用100MHz的時鐘頻率。另外VIA公司的MVP3、MVP4等一些非Intel的芯片組也開始支持100MHz的外頻。精英公司的BX主板甚至可以支持133MHz的外頻,這對于超頻者來是首選的。
時鐘頻率就像發動機轉速,以一定頻率在轉,但能跑多塊還要具體分析
頻率越高,對信號質量要求越高,能耗越大,與同樣產品相比,高頻率=高性能不是一輛卡車變兩輛卡車……雖然還是那個速度,但裝的多
木桶能裝多少水取決于最短那塊板,在電腦上有一定道理沒有絕對的好,壞,成本決定性能,同樣的成本可以有不同的側重點,加強某方面的性能,但其他方面相應減弱
時鐘頻率詳解和編程
晶振:其作用是產生原始的時鐘頻率,這個頻率經過頻率發生器的倍頻或分頻后就成了電腦中各種不同的總線頻率;其本身不振蕩但和外電路產生諧振。
一般來講系統都會有2個鎖相環。這里就拿三星的S3C2440來作為例子吧。S3C2440有2個鎖相環(PLL--- phase locked loop),一個是MPLL,一個是UPLL;MPLL用于CPU及其他外圍器件。UPLL用于USB提供48MHz.外部時鐘源,經過MPLL處理后能夠得到三種不同的系統時鐘。他們分別是FCLK,HCLK,PCLK三種頻率,這三種頻率分別有不同的用途。
FCLK是為CPU提供時鐘信號,主頻時鐘,用于ART920T內核。
HCLK是為AHB總線提供的時鐘信號,主要用于高速外設,比如內存控制器,中斷控制器,LCD控制器,DMA以及USB主模塊等。
PCLK是為APB總線提供的時鐘信號,主要用于低速外設,比如看門狗,UART控制器,IIS,I2C,SDI/MMC,GPIO,RTC and SPI。
當系統上電或者復位時后,MPLL就可以工作,但此時MPLL的值并不是系統時鐘,因為此時MPLL寄存器還沒初始化,還是個無效的值,所以系統選擇外部時鐘晶振作為系統時鐘。因此系統上電及復位后,必須向MPLL寄存器寫入一個值,盡管這個值可能就是寄存器中的舊值。
LOCKTIME寄存器:用于設置MPLL啟動后穩定前所需等待的時間(Lock time),一般使用默認值。
MPLLCON/UPLLCON寄存器設置:MDIV 主頻控制位,PDIV 預分頻控制位,SDIV 后分頻控制位
Mpll(FCLK) = (2 * m * Fin)/(p*2s)
Upll = (m * Fin)/(p*2s)
其中:m = (MDIV+8), p = (PDIV+2), s = SDIV
FCLK、PCLK、HCLK 這三個系統時鐘具有一地定的比例關系,這種關系是通過寄存器CLKDIVN中的HDIVN位和PDIVN位來控制的,因此我們知道了FCLK,再通過這2位的控制就能確定HCLK,PCLK.而FCLK則是通過外部晶振頻率Fin由上面公式可以得到。
說了這么多,還是來理理順序:
下面的例子網上好多,先貼出來,然后再分析其本質是什么。
mpll_val = (92《《12)|(1《《4)|(1);//至于為什么mpll_val這個值是(92《《12)|(1《《4)|(1),沒有找到說明,個人分析有可能是大家的經驗,或者是從后面逆推計算出來的。在Fin為12MHz情況下,要讓主頻達到400MHz,可以從后面開始逆推出來。
定義mpll_val這個值實際是為了讓倍頻因子控制寄存器設定下面的值:
MDIV=92 PDIV=1 SDIV=1
ChangeMPllValue((mpll_val》》12)&0xff, (mpll_val》》4)&0x3f, mpll_val&3);
函數原型:
void ChangeMPllValue(int mdiv,int pdiv,int sdiv)
{
rMPLLCON = (mdiv《《12) | (pdiv《《4) | sdiv;
}
函數功能:輸入參數設定MPLLCON寄存器的值,即倍頻因子寄存器的值。
再根據公式:
Mpll(FCLK) = (2 * m * Fin)/(p*2s),m = MDIV + 8 =100;Fin 外部晶振頻率為12MHz,p = PDIV+2 = 3,S = SDIV =1;
所以得到:FCLK = Mpll = 400MHz
得到了FCLK,要計算出PCLK和HCLK就比較容易了。設置下分頻系數寄存器CLKDIVN中的HDIVN位和PDIVN位就可以了。下面是常用的分頻系統。
其實分頻系數寄存器中HDIVN位要設置為10或者11時,還要設置下CAMDIVN寄存器:
最后,再補上一個總結的圖上去。
評論
查看更多