STM32時鐘基礎知識

2021-08-21 17:45:44 字數 1214 閱讀 7167

stm32一共有5個時鐘源,分別為外部高速時鐘(hse)、內部高速時鐘(hsi)、外部低速時鐘(lse)、內部低速時鐘(lsi)以及鎖相環時鐘(pll);

從時鐘樹可以看出,系統時鐘主要有三個作用,一是為cotex-m3核心提供執行時鐘,二是直接或經過分頻後為掛載在各種匯流排上的外設提供時鐘,第三則是以後為rtc(實時時鐘)提供時鐘源。

hse 是高速的外部時鐘訊號,可以由有源晶振或者無源晶振提供,頻率從 4-26mhz不等。當使用有源晶振時,時鐘從 osc_in 引腳進入, osc_out 引腳懸空,當選用無源晶振時,時鐘從 osc_in 和 osc_out 進入,並且要配諧振電容。

pll 的主要作用是對時鐘進行倍頻,然後把時鐘輸出到各個功能部件。 pll 有兩個,乙個是主 pll,另外乙個是專用的 plli2s,他們均由 hse 或者 hsi 提供時鐘輸入訊號。

主 pll 有兩路的時鐘輸出,第乙個輸出時鐘 pllclk 用於系統時鐘,第二個輸出用於 usb otg fs 的時鐘、rng 和 sdio 時鐘。專用的 plli2s 用於生成精確時鐘,給 i2s 提供時鐘。

系統時鐘**可以是: hsi、 pllclk、 hse,具體的由時鐘配置暫存器 rcc_cfgr的 sw 位配置。如果系統時鐘是由hse 經過 pll 倍頻之後的 pllclk 得到,當 hse 出現故障的時候,系統時鐘會切換為hsi=16m,直到 hse 恢復正常為止。

系統時鐘 sysclk 經過 ahb 預分頻器分頻之後得到時鐘叫 apb 匯流排時鐘,即 hclk,分頻因子可以是:[1,2,4, 8, 16, 64, 128, 256, 512], 具體的由時鐘配置暫存器rcc_cfgr 的 hpre 位設定。

apb2 匯流排時鐘 pclk2 由 hclk 經過高速 apb2 預分頻器得到,分頻因子可以是:[1,2,4, 8, 16],具體由時鐘配置暫存器 rcc_cfgr 的 ppre2 位設定。 hclk2 屬於高速的匯流排時鐘,片上高速的外設就掛載到這條匯流排上,比如全部的 gpio、 usart1、 spi1等。

apb1 匯流排時鐘 pclk1 由 hclk 經過低速 apb 預分頻器得到,分頻因子可以是:[1,2,4,8, 16],具體由時鐘配置暫存器 rcc_cfgr 的 ppre1 位設定。hclk1 屬於低速的匯流排時鐘,最高為 45m,片上低速的外設就掛載到這條匯流排上,比如usart2/3/4/5、 spi2/3, i2c1/2 等。

STM32時鐘配置

大家都知道在使用微控制器時,時鐘速度決定於外部晶振或內部rc振盪電路的頻率,是不可以改變的。而arm的出現打破了這一傳統的法則,可以通過軟體隨意改變時鐘速度。這一出現讓我們的設計更加靈活,但是也給我們的設計增加了複雜性。為了讓使用者能夠更簡單的使用這一功能,stm32的庫函式已經為我們設計的更加簡單...

STM32時鐘系統

下面我們根據這張圖說說有關stm32時鐘系統的那些事 io uint32 t cr hsi,hse,css,pll等的使能和就緒標誌位 io uint32 t cfgr pll等的時鐘源選擇,分頻係數設定 io uint32 t ahbenr dma,sdio等時鐘使能 io uint32 t ap...

stm32時鐘分割

不太明白 1 tim perscaler來設定預分頻係數 2 tim clockdivision來設定時鐘分割 時鐘分頻因子 3 tim countermode來設定計數器模式 時鐘分割定義的是在定時器時鐘頻率 ck int 與數字濾波器 etr,tix 使用的取樣頻率之間的分頻比例。tim clo...