1,時(shí)鐘系統(tǒng)
任何嵌入式系統(tǒng)要正常運(yùn)行都必須需要一個(gè)穩(wěn)定的時(shí)鐘系統(tǒng)。下面簡單介紹一下xmega的時(shí)鐘系統(tǒng)及初始化過程。
Xmega時(shí)鐘系統(tǒng)時(shí)鐘源包括內(nèi)部時(shí)鐘源和外部時(shí)鐘源。
內(nèi)部時(shí)鐘源有:
32MHz內(nèi)部RC振蕩器;
2MHZ內(nèi)部RC振蕩器;
32768kHz內(nèi)部RC振蕩器;
32Khz內(nèi)部ULP低功耗振蕩器;
外部時(shí)鐘源:
0.4~16MHZ晶體振蕩器;引腳XTAL1和XTAL2;
32.768kHZ晶體振蕩器;引腳為TOSC1和TOSC2;
還可以從外部直接接入時(shí)鐘。
通過上述時(shí)鐘源通過鎖相環(huán)(PLL)可以倍頻到32MHz。
時(shí)鐘分系統(tǒng)時(shí)鐘、CPU時(shí)鐘、外設(shè)時(shí)鐘、外設(shè)分頻時(shí)鐘,同步時(shí)鐘。
系統(tǒng)時(shí)鐘選擇與分頻:所有時(shí)鐘源及PLL都可以作為系統(tǒng)時(shí)鐘CLK(sys),選擇時(shí)鐘源后,進(jìn)入分頻器進(jìn)行分頻。分頻后作為各種外設(shè)時(shí)鐘頻率。
下面說一下PLL的倍頻配置:
F(pll)=F(in)*PLL_FAC
下面4個(gè)時(shí)鐘源可以作為鎖相環(huán)的輸入時(shí)鐘:
MHz internal oscillator ,
32 MHz internal oscillator divided by 4
0.4 - 16 MHz Crystal Oscillator
External clock
要使用PLL,必須遵循下面幾個(gè)步驟:
1,使能輸入時(shí)鐘源;
2,選擇輸入時(shí)鐘源和設(shè)置倍頻因子;
3,等待時(shí)鐘源穩(wěn)定;
4,使能PLL;
相關(guān)操作參見相關(guān)寄存器操作。具體的寄存器請到官網(wǎng)下載數(shù)據(jù)手冊和用戶手冊查閱。下面我在Atmel Studio 6.2的基礎(chǔ)上舉例初始化時(shí)鐘,初始化使用PLL到32MHz。參照上一章節(jié)的介紹在項(xiàng)目中添加時(shí)鐘系統(tǒng)的驅(qū)動(dòng)模塊。
在系統(tǒng)時(shí)鐘模塊中的配置文件conf_clock.h中定義宏定義:
初始化后可以通過sysclk_get_main_hz這個(gè)函數(shù)讀取系統(tǒng)時(shí)鐘,該函數(shù)返回的就是系統(tǒng)時(shí)鐘頻率,看是否與初始化是否成功。
-
時(shí)鐘
+關(guān)注
關(guān)注
11文章
1746瀏覽量
131719 -
GPIO
+關(guān)注
關(guān)注
16文章
1216瀏覽量
52306
發(fā)布評論請先 登錄
相關(guān)推薦
評論