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