1. 程式人生 > >stm32f103時鐘樹講解

stm32f103時鐘樹講解

時鐘簡介

時序在數位電路中的作用,就像通訊中用到的載波,載波並不起眼,但是很重要。時鐘也一樣,現象上只是某種頻率波峰波谷跳動,一成不變。但是有了它,就像人類的歷史有了時間軸一樣,什麼時候該幹什麼事才有了可能。程式中發生的事件,能夠按照自己的意願發生。

時鐘作用

  • [ ] 計時作用(供給某些計數器統計時間)
  • [ ] 控制時序(串列埠資料的傳輸,只能一位一位的傳輸)
  • [ ] 控制訊號(將時鐘的上升下降沿作為獨特的控制標誌)

stm32時鐘模型

Created with Raphaël 2.1.0時鐘源倍頻器高速時鐘高速外設低速時鐘低速外設yesno

stm32內部時鐘樹

shihzongshu

時鐘源

stm32時鐘源分為以下:
低速內部時鐘LSI:頻率為40kHz
高速內部時鐘HSI :頻率為8Mhz
低速外部時鐘OSC_32:頻率為32.7678khz
高速外部時鐘OSC:頻率範圍4-16Mhz
時鐘輸出MCO:為其他裝置提供時鐘源

在對時鐘頻率要求不高的情況下,我們可以選擇內部RC振盪器時鐘作為微控制器工作的時鐘源。如果對時鐘精度要求較高,我們要選擇外部石英晶體振盪器(晶振),作為微控制器的時鐘源,因為內部時鐘用的是類比電路組成的振盪器,誤差較大,在實時性要求比較高的場合(串列埠通訊、IIC通訊等)容易造成不可預知的錯誤。
時鐘相對複雜的意義主要是為不同外設提供合適的時鐘頻率,主要目的是為了節能、低功耗。
高速時鐘:用於高速外設IO 串列埠通訊 SPI等等
低速時鐘:用於低速外設 RTC 看門狗
倍頻器:時鐘與外設進行時鐘適配

時鐘樹講解

相關暫存器講解
PLLSRC
鎖相環倍頻器時鐘源選擇
內部高速時鐘2分頻
外部高速時鐘

PLLMUL
鎖相環時鐘倍頻器
PLLSRC選擇的時鐘進行倍頻,最大不能超過72MHz

PLLXTPRE
鎖相環時鐘選擇
選擇外部時鐘作為鎖相環倍頻器時鐘源
選擇外部時鐘2分頻後作為鎖相環倍頻器時鐘源

SW
系統時鐘選擇
選擇內部高速時鐘作為系統時鐘
選擇鎖相環倍頻時鐘作為系統時鐘
選擇外部高速時鐘作為系統時鐘

AHB
系統時鐘分頻器

CSS
時鐘安全監測單元
當外部時鐘意外故障,CSS在短時間內切換到內部高速時鐘使微控制器工作不中斷

RTCCLK
實時時鐘時鐘源選擇
選擇鎖相環倍頻器時鐘源128分頻作為實時時鐘時鐘源
選擇外部低速時鐘作為實時時鐘時鐘源
選擇內部低俗時鐘作為實時時鐘時鐘源

MCO
時鐘輸出控制
鎖相環時鐘2分頻輸出
內部低俗時鐘輸出
內部高速時鐘輸出
系統時鐘輸出

關於APB1 APB2時鐘重點
stn32微控制器外設掛接在APB1、APB2兩個橋上,但兩個橋允許的始終最大頻率不相同,APB2最大允許72MHz,APB1最大隻允許36Mhz,在使用外設時應格外注意時鐘,例如串列埠一掛接在APB2上,其餘串列埠掛接在APB1上,在串列埠配置時應注意失蹤頻率的不同造成的波特率配置問題(庫函式開發忽略此項內容)。

外部時鐘晶振最好選擇8M晶振,無論是庫函式,還是keil預設配置啟動檔案時鐘配置均是按照外部晶振8Mhz來進行的配置,系統時鐘72Mhz,如果採用其餘晶振還需要自己配置時鐘樹,對於新手來講可能存在一定的困難