航順芯片HK32F03X系列采用的是Cortex-M0內核架構,該系列產品均支持內部高速時鐘HSI,即設計上把內部8M時鐘直接作為倍頻基準。這是國外S**32F03X所不具備的功能,因為其只有HSI/2,也就是4M時鐘,作為倍頻基準,然后通過最大16倍的PLL鎖相環倍頻到64MHz。而很多客戶應用對主頻有要求,即希望使用內部晶振讓系統跑72MHz,就沒辦法實現。今天對航順HK32F03X系列如何實現系統主頻升級到72M做一個簡單介紹。
//HK32F0X系列的內部時鐘樹
首先我們來看下HK32F0X系列的內部時鐘樹
圖1 內部時鐘樹
從上面的時鐘內部圖我們可以看到內部產生的56MHz的時鐘可以直接作為系統時鐘,或者經過4分頻成14MHz之后作為系統時鐘和ADC時鐘。本文重點介紹56M時鐘經過7分頻成8MHz作為HSI,然后倍頻到72M的方法,這樣可以省掉外部晶振,方便PCB布板,降低BOM成本。通過以下圖示我們可以清晰地看到HK32F03X增加了寄存器RCC_CFGR4,其中PPSS位作為HSE和HIS的開關選擇,所以我們通過設置此位為1以選擇內部HSI時鐘作為倍頻的基準時鐘。
圖2 局部放大圖
圖3 CFGR4 說明
//下面以MDK5(Keil5.0以上版本)編譯軟件來做講解
首先我們來看下HK32F0X系列的內部時鐘樹
◆首先我們找到系統時鐘初始化代碼
我們可以看到系統時鐘在void SystemInit (void) 里面初始化,而工程的啟動文件startup_stm32f0xx.s里面已經調用了此函數,如下圖:
所以我們只要修改SetSysClock函數里面的配置就可以了,這樣不用在Main函數里面去做系統時鐘的配置
◆其次定義寄存器RCC_CFGR4以及PPSS位
可以直接在system_stm32f0xx.c 文件開頭定義
0x400210e8 是寄存器地址 0x00000100是位8為1 PPSS位為1
◆最后修改SetSysClock函數
增加以下一行代碼 選擇HSI作為基準
修改倍頻基準RCC_CFGR_PLLSRC 這個是選擇來自RCC_CFGR4.PPSS
HSI作為基準時鐘配置代碼如下:
來源:航順芯片
審核編輯:湯梓紅
-
mcu
+關注
關注
146文章
17171瀏覽量
351478 -
時鐘樹
+關注
關注
0文章
55瀏覽量
10771 -
航順芯片
+關注
關注
1文章
109瀏覽量
22819 -
HK32MCU
+關注
關注
0文章
29瀏覽量
210
發布評論請先 登錄
相關推薦
評論