S3C2440如何設(shè)置系統(tǒng)時(shí)鐘
S3C2440是一款嵌入式處理器,屬于SAMSUNG公司的ARM9系列。系統(tǒng)時(shí)鐘是嵌入式系統(tǒng)中非常重要的一個(gè)參數(shù),它決定了系統(tǒng)的計(jì)算速度和精度,是系統(tǒng)穩(wěn)定性的關(guān)鍵因素之一。對(duì)于S3C2440來(lái)說(shuō),正確設(shè)置系統(tǒng)時(shí)鐘是實(shí)現(xiàn)其高效穩(wěn)定運(yùn)行的前提條件之一。本文將詳細(xì)介紹如何設(shè)置S3C2440的系統(tǒng)時(shí)鐘。
一、 S3C2440的時(shí)鐘系統(tǒng)架構(gòu)
在了解如何設(shè)置S3C2440的系統(tǒng)時(shí)鐘之前,我們需要先了解一下S3C2440的時(shí)鐘系統(tǒng)架構(gòu)。
我們可以看到S3C2440的時(shí)鐘系統(tǒng)主要由一個(gè)PLL鎖相環(huán)和各種分頻器組成。其中,PLL鎖相環(huán)是時(shí)鐘系統(tǒng)的核心,它的作用是將輸入的基準(zhǔn)信號(hào)(XTAL或OSC)通過(guò)分頻器進(jìn)行分頻,然后通過(guò)PLL鎖相環(huán)進(jìn)行倍頻,最終產(chǎn)生所需要的系統(tǒng)時(shí)鐘。在S3C2440中,PLL鎖相環(huán)有兩個(gè),分別為PLL0和PLL1,它們的輸出時(shí)鐘可以通過(guò)寄存器控制。
二、 S3C2440的系統(tǒng)時(shí)鐘設(shè)置流程
了解了S3C2440的時(shí)鐘系統(tǒng)架構(gòu)之后,接下來(lái)我們就可以開(kāi)始設(shè)置S3C2440的系統(tǒng)時(shí)鐘了,下面是系統(tǒng)時(shí)鐘設(shè)置的詳細(xì)步驟:
1、 確定系統(tǒng)時(shí)鐘頻率
在設(shè)置S3C2440的系統(tǒng)時(shí)鐘之前,我們需要先明確所需要的時(shí)鐘頻率。根據(jù)實(shí)際需要,可以選擇不同的時(shí)鐘頻率,如12MHz、13MHz、16MHz等。需要注意的是,時(shí)鐘頻率不能太高或太低,否則會(huì)影響系統(tǒng)的穩(wěn)定性。
2、 設(shè)置PLL0時(shí)鐘
在確定系統(tǒng)時(shí)鐘頻率后,我們可以開(kāi)始設(shè)置PLL0時(shí)鐘。PLL0時(shí)鐘的輸出頻率需要在50MHz~533MHz之間,可以通過(guò)設(shè)置PLL0的分頻器和倍頻器來(lái)實(shí)現(xiàn)。具體的設(shè)置方法如下:
(1) 設(shè)置MPLLCON寄存器
MPLLCON寄存器用于設(shè)置PLL0的參數(shù),包括分頻器和倍頻器。具體的設(shè)置方法如下:
```C
#define FCLK 50000000 // FCLK時(shí)鐘為50MHz
void PLL0_Init(void)
{
// 定義需要設(shè)置的PLL0參數(shù)
unsigned int mdiv, pdiv, sdiv;
unsigned int pllcon, clksrc, clkdivn;
// 設(shè)置PLL0的MPLLCON寄存器
Get_Frequency(&mdiv, &pdiv, &sdiv, FCLK, SCLK);
pllcon = (mdiv << 12) | (pdiv << 4) | (sdiv << 0);
rMPLLCON = pllcon;
// 設(shè)置系統(tǒng)時(shí)鐘的源和分頻器
clksrc = 0x3; // 旁路模式
clkdivn = 0x1; // FCLK = HCLK / 2
rCLKDIVN = (clksrc << 0) | (clkdivn << 4);
}
```
上面的代碼中,我們首先定義了需要設(shè)置的PLL0參數(shù)mdiv、pdiv和sdiv,然后通過(guò)Get_Frequency函數(shù)計(jì)算出具體的參數(shù)值,并將其寫(xiě)入MPLLCON寄存器中。其中,mdiv和pdiv分別為PLL0輸入頻率與PLL0倍頻系數(shù)的商和余數(shù),sdiv為PLL0輸入頻率與PLL0分頻系數(shù)的商。最后,我們通過(guò)設(shè)置CLKDIVN寄存器的值來(lái)設(shè)置系統(tǒng)時(shí)鐘的源和分頻器。
(2) 設(shè)置MPLLCON寄存器
如果需要使用PLL1時(shí)鐘,我們可以按照同樣的方法來(lái)設(shè)置PLL1的參數(shù)并將其寫(xiě)入U(xiǎn)PLLCON寄存器中,具體代碼如下:
```C
void PLL1_Init(void)
{
// 定義需要設(shè)置的PLL1參數(shù)
unsigned int plldivn;
unsigned int pllcon;
// 設(shè)置PLL1的UPLLCON寄存器
plldivn = 0x1;
pllcon = (plldivn << 1);
rUPLLCON = pllcon;
}
```
3、 設(shè)置系統(tǒng)時(shí)鐘
在設(shè)置好PLL0/PLL1之后,我們就可以根據(jù)實(shí)際需要來(lái)設(shè)置系統(tǒng)時(shí)鐘了。系統(tǒng)時(shí)鐘可以通過(guò)設(shè)置CLKDIVN寄存器來(lái)實(shí)現(xiàn)。具體的設(shè)置方法如下:
```C
void System_Init(void)
{
// 設(shè)置PLL0/PLL1參數(shù)和系統(tǒng)時(shí)鐘分頻器
PLL0_Init();
PLL1_Init();
// 設(shè)置系統(tǒng)時(shí)鐘分頻器
rCLKDIVN = 0x5;
}
```
上面的代碼中,我們首先調(diào)用了PLL0_Init()和PLL1_Init()函數(shù)來(lái)設(shè)置PLL0和PLL1的參數(shù),然后設(shè)置了系統(tǒng)時(shí)鐘分頻器為0x5,表示系統(tǒng)時(shí)鐘為PLL0的輸出頻率除以5。需要注意的是,系統(tǒng)時(shí)鐘的分頻器值不能太小或太大,否則會(huì)影響系統(tǒng)的穩(wěn)定性。
4、 配置外設(shè)時(shí)鐘
在設(shè)置好系統(tǒng)時(shí)鐘之后,我們還需要配置外設(shè)時(shí)鐘才能使外設(shè)正常工作。在S3C2440中,外設(shè)時(shí)鐘可以通過(guò)CLKCON寄存器來(lái)配置。具體的設(shè)置方法如下:
```C
void Peripheral_Init(void)
{
// 設(shè)置SDRAM時(shí)鐘和NAND Flash時(shí)鐘
rCLKCON = rCLKCON & (~(1 << 0)) & (~(1 << 1));
// 設(shè)置UART0時(shí)鐘
rCLKCON = rCLKCON & (~(1 << 9));
}
```
上面的代碼中,我們首先關(guān)閉SDRAM時(shí)鐘和NAND Flash時(shí)鐘,并將CLKCON寄存器的第0和第1位清零。然后,我們關(guān)閉UART0時(shí)鐘,并將CLKCON寄存器的第9位清零。根據(jù)實(shí)際需要,我們還可以配置其他外設(shè)的時(shí)鐘。
三、 總結(jié)
本文詳細(xì)介紹了如何設(shè)置S3C2440的系統(tǒng)時(shí)鐘,包括設(shè)置PLL0/PLL1和系統(tǒng)時(shí)鐘分頻器,以及配置外設(shè)時(shí)鐘。通過(guò)正確設(shè)置系統(tǒng)時(shí)鐘,可以提高S3C2440的運(yùn)行效率和穩(wěn)定性,使其更好地適應(yīng)不同的應(yīng)用場(chǎng)景。作為嵌入式開(kāi)發(fā)人員,了解和掌握S3C2440的時(shí)鐘系統(tǒng)架構(gòu)和設(shè)置方法是非常重要的。
-
分頻器
+關(guān)注
關(guān)注
43文章
537瀏覽量
53782 -
S3C2440
+關(guān)注
關(guān)注
4文章
132瀏覽量
40157 -
嵌入式處理器
+關(guān)注
關(guān)注
0文章
266瀏覽量
31807 -
倍頻器
+關(guān)注
關(guān)注
8文章
124瀏覽量
37470 -
系統(tǒng)時(shí)鐘
+關(guān)注
關(guān)注
1文章
32瀏覽量
10241
發(fā)布評(píng)論請(qǐng)先 登錄
探索LM3S1R21微控制器:高性能與多功能的完美結(jié)合
RENESAS 932S890C:AMD 服務(wù)器系統(tǒng)時(shí)鐘解決方案
電力中常用授時(shí)設(shè)備是哪種 #電廠時(shí)鐘同步系統(tǒng) #電力同步時(shí)鐘 #電廠 #同步天下 #電力時(shí)鐘系統(tǒng)
電力時(shí)鐘裝置功能好不好用 #電力同步時(shí)鐘 #電力時(shí)鐘系統(tǒng) #電廠時(shí)鐘同步系統(tǒng) #電廠 #同步天下
CDC3S04:四通道低功耗低抖動(dòng)正弦波時(shí)鐘緩沖器的卓越之選
汽車(chē)級(jí)時(shí)鐘神器:LMK3C0105 - Q1深度剖析
【ESP32-C3系列】WT32C3-S1/S2模組規(guī)格書(shū)
【ESP32-C3系列】WT32C3-S1/S2模組產(chǎn)品介紹
探索P3S0200 I3C開(kāi)關(guān):高性能硬件的卓越選擇
SysClk系統(tǒng)時(shí)鐘的切換
鐵路時(shí)鐘系統(tǒng)介紹、時(shí)鐘系統(tǒng)、授時(shí)服務(wù)器
GT2440嵌入式開(kāi)發(fā)系統(tǒng)用戶(hù)手冊(cè)
?CDCP1803 1:3 LVPECL時(shí)鐘緩沖器技術(shù)文檔總結(jié)
?CDC3S04 四通道正弦波時(shí)鐘緩沖器技術(shù)文檔總結(jié)
TI的ADS129x器件SPI 時(shí)鐘極性CPOL和時(shí)鐘相位 CPHA的正確設(shè)置模式
S3C2440如何設(shè)置系統(tǒng)時(shí)鐘
評(píng)論