2.1 時鐘樹結構圖
STM32屬于Cortex-M3內核的單片機,時鐘結構比之前的51單片機較復雜的多,根據數據手冊,STM32F103的時鐘結構如下圖所示。
根據上圖可以看到,STM32F103系列單片機具有4個時鐘源,內部的8MHz時鐘發(fā)生器,外部的晶體振蕩器接口,最高支持16MHz,外部的32.768kHz晶體振蕩器接口和內部的40kHz時鐘發(fā)生器,其中32.768kHz和40kHz主要用于內部RTC時鐘脈沖,8MHz的晶振通過PLL時鐘倍乘器,將系統(tǒng)總線時鐘提高為72MHz。
STM32F103系列內部具有2條外設時鐘總線,APB1和APB2,其中APB2的時鐘最高可達72MHz,APB1的時鐘最高可達36MHz,通過配置對應的寄存器,就可以將CPU內核時鐘提高到最大速度。
通過最小系統(tǒng)可以看到,我們使用外部高速晶體振蕩器接口,外接8MHz晶振,RTC則是使用32.768kHz晶振,現(xiàn)在我們來通過數據手冊來配置對應的寄存器位來配置APB2時鐘達到72MHz,APB1時鐘達到36MHz。
2.2 時鐘配置
上圖是ST公司推出的一款軟件,這款軟件可以自動生成寄存器代碼,但是我們在這里只用到其中提供的時鐘配置功能,通過上面的時鐘結構,我們可以得到配置時鐘的大概流程。
2.2.1 時鐘配置流程
(1)開啟HSE時鐘接口,這個接口用于使能晶體振蕩器輸入端;
(2)設置PLL倍頻系數為9,因為外接8MHz時鐘,所以設置系數為9就可以輕松達到8×9=72MHz的時鐘頻率;
(3)設置時鐘源為PLLCLK,因為HSE使用的時候可以發(fā)現(xiàn)最終的輸出就是PLL時鐘脈沖;
(4)設置APB1時鐘總線的分頻系數為2,因為APB1時鐘總線最高頻率只有36MHz;
(5)設置APB2時鐘總線的分頻系數為1。
2.2.2 相關寄存器
(1) 時鐘控制寄存器 :RCC_CR
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
- | PLLRDY | PLLON | - | CSSON | HSEBYP | HSERDY | HSEON | ||||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
HSICAL[7:0] | HSITRIM[4:0] | - | HISRDY | HISON |
Bit 25:PLL準備狀態(tài)
0:PLL解鎖
1:PLL鎖定
Bit 24:PLL使能
0:PLL關閉
1:PLL打開
Bit 19:時鐘安全系統(tǒng)開關
0:時鐘保護關閉
1:時鐘保護打開
Bit 18:HSE旁路(禁用HSE振蕩器時才能寫入)
0:HSE禁止旁路
1:HSE打開旁路
Bit 17:HSE準備狀態(tài)
0:HSE未準備好
1:HSE準備完畢
Bit 16:HSE時鐘使能
0:HSE時鐘關閉
1:HSE時鐘打開
Bit 15~ Bit 8:HSI校準值(這個值在啟動的時候自動初始化)
Bit 7~ Bit 3:HSI微調(對其進行編程以適應電壓和溫度的變化影響內部HSI的頻率。初始值16,步長約為40kHz)
Bit 1:HSI準備狀態(tài)
0:HIS未準備好
1:HSI準備完畢
Bit 0:HSI時鐘使能
0:HIS時鐘關閉
1:HSI時鐘開啟
-
單片機
+關注
關注
6037文章
44564瀏覽量
635927 -
STM32
+關注
關注
2270文章
10904瀏覽量
356373 -
時鐘
+關注
關注
11文章
1735瀏覽量
131541
發(fā)布評論請先 登錄
相關推薦
評論