系統時鐘
華芯微特科技有限公司SWM系列芯片可通過軟件配置改變時鐘的速度,可以讓我們的設計更加靈活,頻率可選空間也更加廣泛,用戶可以根據自己的實際需求配置需要的系統時鐘。為了讓用戶能夠更簡單的使用這一功能,下面小編將以SWM190為例,給大家展示如何配置SWM系列產品的系統時鐘。
SWM190最大時鐘頻率可達 60MHz
有5個時鐘源可供使用:
01、內部高頻振蕩器(RCHF):內部高頻振蕩器為片內時鐘源,無需連接任何外部器件。頻率為24MHz或48MHz,通過HRCCR寄存器進行切換,精度為百分之一,可提供較精確的固定頻率時鐘.
02、內部低頻振蕩器(RCLF):內部低頻振蕩器為片內時鐘源,無需連接任何外部器件。頻率為32KHz。
03、外部振蕩器(XTAH):外部振蕩器可接4~32MHz頻率.
04、外部低頻振蕩器(XTAL):外部低頻振蕩器,支持32.768KHz時鐘接入
05、PLL:支持RCHF或XTAH作為輸入源
我們來看一下時鐘系統框圖
如圖所示:
SWM190時鐘框圖
SWM190時鐘配置方法
在SWM190固件庫中對時鐘頻率的選擇進行了簡化,原先的很多操作都在后臺進行。系統給出的函數為SystemInit(void),可直接調用配置系統時鐘,但在調用前還需要進行一些宏定義的設置,具體的設置在system_SWM190.c文件中。
如下:
/* 系統時鐘設定 */
#define SYS_CLK_24MHz 0 //0 內部高頻24MHz RC振蕩器 #define SYS_CLK_3MHz 1 //1 內部高頻 3MHz RC振蕩器 #define SYS_CLK_48MHz 2 //2 內部高頻48MHz RC振蕩器 #define SYS_CLK_6MHz 3 //3 內部高頻 6MHz RC振蕩器 #define SYS_CLK_XTAL 4 //4 外部晶體振蕩器(2-30MHz) #define SYS_CLK_XTAL_DIV8 5 //5 外部晶體振蕩器(2-30MHz) 8分頻 #define SYS_CLK_PLL 6 //6 鎖相環輸出 #define SYS_CLK_PLL_DIV8 7 //7 鎖相環輸出 8分頻 #define SYS_CLK_32KHz 8 //8 內部低頻32KHz RC 振蕩器 #define SYS_CLK_XTAL_32K 9 //9 外部低頻32KHz 晶體振蕩器 #define SYS_CLK SYS_CLK_48MHz
//您只需要修改此處SYSCLK宏定義來修改系統時鐘。
SWM190PLL 設定
PLL的輸入參考時鐘源可設置為內部高頻時鐘或外部高頻晶振輸入,最大輸出時鐘可設置為60MHz。
當系統時鐘配置為PLL時鐘時,可通過配置以下幾處寄存器來配置PLL時鐘,其配置公式為:VCO輸出頻率=PLL輸入時鐘/INDIV*4*FBDIV
PLL輸出頻率=PLL輸入時鐘/INDIV*4*FBDIV/OUTDIV=VCO輸出頻率/OUTDIV
具體宏定義如下:
#define SYS_PLL_SR SYS_CLK_24MHz //可取值SYS_CLK_24MHz、SYS_CLK_48MHz、SYS_CLK_XTAL #define PLL_IN_DIV 6 //SYS_PLL_SRC = SYS_CLK_24MHz 時用6,SYS_PLL_SRC= SYS_CLK_48MHz 時用 12 #define PLL_FB_DIV 30 #define PLL_OUT_DIV8 0 #define PLL_OUT_DIV4 1 #define PLL_OUT_DIV2 2 #define PLL_OUT_DIV PLL_OUT_DIV8
//此外,在system_SWM190.c文件中還定義了運行過程中更改時鐘函數
SystemCoreClockUpdate()
switchTo24MHz()
switchTo3MHz()
switchTo48MHz()
switchTo6MHz()
switchToXTAL()
switchToPLL()
switchTo32KHz()
switchToXTAL_32K()
等一系列的函數方便用戶在系統運行過程中修改系統時鐘時使用。
審核編輯:彭菁
-
寄存器
+關注
關注
31文章
5336瀏覽量
120232 -
時鐘
+關注
關注
10文章
1733瀏覽量
131451 -
函數
+關注
關注
3文章
4327瀏覽量
62573 -
系統時鐘
+關注
關注
1文章
30瀏覽量
9306
發布評論請先 登錄
相關推薦
評論