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