STM32學習筆記 時鐘樹與RCC

2022-02-18 17:35:28 字數 1611 閱讀 8446

如果學過微控制器的同學應該不會陌生,學習51微控制器時最經常聽到的就是「最小系統」。

最小系統裡面少不了晶振,否則微控制器無法工作。

微控制器需要晶振(時鐘源)來工作,那麼對於stm32晶元同樣如此

此外,同乙個電路,時鐘越快功耗越大,抗電磁干擾能力也隨之變弱。

所以對於較為複雜的mcu一般都是採取多時鐘源的方法來解決這些問題。

stm32是一塊對於功耗可控的晶元,所以需要我們手動開啟有關的時鐘樹,以方便後續的開發。

在stm32f4中,有5個最重要的時鐘源,按**分為內外部兩種;按速率也可以分為高低速兩種。

時鐘源含義

時鐘速率

用途hsi

高速內部時鐘

16mhz

可以直接作為系統時鐘或者pll輸入

hse高速外部時鐘

4~26mhz

可以直接作為系統時鐘

lsi低速內部時鐘

32khz

供給獨立看門口和自動喚醒單元使用

lse低速內部時鐘

32.768khz

主要是rtc(實時時鐘)的時鐘源

pll鎖相環

(內部倍頻器)

可以是hsi的二分頻

hse的一分頻

或hse的二分頻

鎖相環倍頻輸出,分為主pll和專用pll:

1)主pll由hse或hsi提供時鐘訊號,並且具有兩個不同的輸出時鐘:

①pllp:生成高速的系統時鐘,最高180mhz;(stm32f429)

②pllq:生成usb otg fs的時鐘(48mhz)、隨機數發生器和sdio的時鐘。

2)專用時鐘pll(plli2s),用於生成精確時鐘,在i2s介面實現高品質音訊輸出。

由於stm32複雜的時鐘體系,有人形象地稱下圖為時鐘樹。

當初學習到這個地方的時候,本人也覺得混亂。

但其實只要抓準5個時鐘源,「順藤摸瓜」就可以捋清關係了。

下圖是筆者根據自己開發板的情況畫的簡單線路圖。

了解完以上的關係就不難理解為什麼任何片內外設在使用之前,必須使能相應的時鐘

附時鐘頻率的計算:

sysclk = fvco/pllp = fs*(plln/(pllm*pllp));

fvco:vco頻率

sysclk:系統時鐘頻率

fusb:usb,sdio,rng等的時鐘頻率

fs:pll輸入時鐘頻率,可以是hsi,hse等. 

plln:主pll倍頻係數(pll倍頻),取值範圍:64~432.

pllm:主pll和音訊pll分頻係數(pll之前的分頻),取值範圍:2~63.

pllp:系統時鐘的主pll分頻係數(pll之後的分頻),取值範圍:2,4,6,8

pllq:usb/sdio/隨機數產生器等的主pll分頻係數(pll之後的分頻),取值範圍:2~15.

STM32學習 時鐘系統

眾所周知,時鐘系統是 cpu 的脈搏,就像人的心跳一樣。所以時鐘系統的重要性就不言而 喻了。stm32 的時鐘系統 stm32 的時鐘系統比較複雜,不像簡單的 51 微控制器乙個系統時鐘就可以解決一切。於 是有人要問,採用乙個系統時鐘不是很簡單嗎?為什麼 stm32 要有多個時鐘源呢?因為首先 st...

STM32 學習筆記(4)系統時鐘

cortex m3中,有個systick 系統時鐘,systick 是cm3核心的外設,相關定義在core cm3.h中。系統定時器內嵌在nvic中,是24位的向下遞減的計數器,每記一次數的時間是1 sysclk。一般設定sysclk 72m。而系統時鐘一般用於作業系統產生時基。與systick相關...

STM32學習筆記

剛到公司實習,要學習stm32開發,boss給了一塊戰艦開發板,讓我自己寫乙個功能要用在公司的產品上。難啊。以前根本沒接觸過stm32,只能一步一步慢慢來,利用晚上利用週末惡補一下。哎,算是為了大學前兩年還債吧。一 跑馬燈實驗 gpio輸出 實驗環境 keil4 實驗平台 戰艦stm32開發板 gp...