下面就以STM32開發板中最常見的STM32F103系列芯片的時鐘為例,介紹一下STM32中的時鐘。
時鐘作用
說到時鐘,你一定會問,這是用來計時的嗎?沒錯,是用來計時的,但這只是它在STM32中的一項功能而已,下面就為你列出了時鐘的具體功能。
計時作用(供給某些計數器統計時間);
控制時序(串口數據的傳輸,只能一位一位的傳輸);
控制信號(將時鐘的上升下降沿作為獨特的控制標志)。
STM32時鐘模型
STM32內部時鐘樹
時鐘源
時鐘源就是產生時鐘的電路啦,我們來一起看一下,什么樣的電路可以產生時鐘。
STM32中的時鐘源分為以下五種:
低速內部時鐘LSI:頻率為40kHz ;
高速內部時鐘HSI :頻率為8MHz ;
低速外部時鐘OSC_32:頻率為32.7678kHz ;
高速外部時鐘OSC:頻率范圍4-16MHz ;
時鐘輸出MCO:為其他設備提供時鐘源。
在對時鐘頻率要求不高的情況下,我們可以選擇內部RC振蕩器時鐘作為單片機工作的時鐘源。如果對時鐘精度要求較高,我們要選擇外部石英晶體振蕩器(晶振),作為單片機的時鐘源,因為內部時鐘用的是模擬電路組成的振蕩器,誤差較大,在實時性要求比較高的場合(串口通信、IIC通信等)容易造成不可預知的錯誤。
時鐘相對復雜的意義主要是為不同外設提供合適的時鐘頻率,主要目的是為了節能、低功耗。
高速時鐘:用于高速外設I/O、串口通信、SPI等等;
低速時鐘:用于低速外設RTC看門狗 ;
倍頻器:時鐘與外設進行時鐘適配。
相關寄存器講解
PLLSRC鎖相環倍頻器時鐘源選擇內部高速時鐘2分頻外部高速時鐘
PLLMUL鎖相環時鐘倍頻器將PLLSRC選擇的時鐘進行倍頻,最大不能超過72MHz
PLLXTPRE鎖相環時鐘選擇選擇外部時鐘作為鎖相環倍頻器時鐘源選擇外部時鐘2分頻后作為鎖相環倍頻器時鐘源
SW系統時鐘選擇選擇內部高速時鐘作為系統時鐘選擇鎖相環倍頻時鐘作為系統時鐘選擇外部高速時鐘作為系統時鐘
AHB系統時鐘分頻器
CSS時鐘安全監測單元當外部時鐘意外故障,CSS在短時間內切換到內部高速時鐘使單片機工作不中斷
RTCCLK實時時鐘時鐘源選擇選擇鎖相環倍頻器時鐘源128分頻作為實時時鐘時鐘源選擇外部低速時鐘作為實時時鐘時鐘源選擇內部低俗時鐘作為實時時鐘時鐘源
MCO時鐘輸出控制鎖相環時鐘2分頻輸出內部低俗時鐘輸出內部高速時鐘輸出系統時鐘輸出
關于APB1、APB2時鐘
STM32單片機外設掛接在APB1、APB2兩個橋上,但兩個橋允許的始終最大頻率不相同,APB2最大允許72MHz,APB1最大只允許36MHz,在使用外設時應格外注意時鐘,例如串口一掛接在APB2上,其余串口掛接在APB1上,在串口配置時應注意失蹤頻率的不同造成的波特率配置問題(庫函數開發忽略此項內容)。
外部時鐘晶體振蕩器最好選擇8MHz晶振,無論是庫函數,還是Keil默認配置啟動文件時鐘配置均是按照外部晶體振蕩器8MHz來進行的配置,系統時鐘72MHz,如果采用其他型號的晶體震蕩器振還需要自己配置時鐘樹,對于新手來說可能存在一定的困難。
-
數據
+關注
關注
8文章
7081瀏覽量
89196 -
STM32
+關注
關注
2270文章
10910瀏覽量
356591 -
時鐘
+關注
關注
11文章
1736瀏覽量
131585
原文標題:STM32中的時鐘
文章出處:【微信號:mcugeek,微信公眾號:MCU開發加油站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論