STM32 時(shí)鐘分析
01 前言
在嵌入式系統(tǒng)中時(shí)鐘是其脈搏,處理器內(nèi)核在時(shí)鐘驅(qū)動(dòng)下完成指令執(zhí)行,狀態(tài)變換等動(dòng)作。外設(shè)部件在時(shí)鐘的驅(qū)動(dòng)下完成各種工作,比如串口數(shù)據(jù)的發(fā)送、A/D轉(zhuǎn)換、定時(shí)器計(jì)數(shù)等等。
02 STM32時(shí)鐘源
-
HSI是高速內(nèi)部時(shí)鐘,RC振蕩器,頻率為8MHz。
-
HSE是高速外部時(shí)鐘,可接石英/陶瓷諧振器,或者接外部時(shí)鐘源,比較常用的8MHz 12MHz 25MHz。
-
LSI是低速內(nèi)部時(shí)鐘,RC振蕩器,頻率為40kHz。
-
LSE是低速外部時(shí)鐘,接頻率為32.768kHz的石英晶體。
在STM32中每個(gè)外設(shè)都有其單獨(dú)的時(shí)鐘,在使用某個(gè)外設(shè)之前必須打開(kāi)該外設(shè)的時(shí)鐘 ,為什么要這么麻煩來(lái)設(shè)置每一個(gè)外設(shè)的時(shí)鐘而不是將所有外設(shè)的時(shí)鐘統(tǒng)一打開(kāi)?因?yàn)镾TM32的外設(shè)繁多,外設(shè)的運(yùn)作所需要的最佳時(shí)鐘各不相同,如果所有時(shí)鐘同時(shí)運(yùn)行會(huì)給MCU帶來(lái)極大的負(fù)載,所以STM32為了實(shí)現(xiàn)低功耗,而設(shè)計(jì)的功能完善構(gòu)成復(fù)雜的時(shí)鐘系統(tǒng),稱之時(shí)鐘樹(shù)。使外設(shè)功能的時(shí)鐘可自配置。
03 STM32 時(shí)鐘樹(shù)
▲ 圖源網(wǎng)絡(luò)
-
上圖下紅框中LSE和LSI是提供給系統(tǒng)看門狗和RTC(實(shí)時(shí)時(shí)鐘)使用的。如果需要精度較高的RTC時(shí)鐘,需要使用LSE,頻率為32.768K提供一個(gè)精確的時(shí)鐘源。
-
HSI為8M,和HSE相比精度較差,對(duì)于性能無(wú)要求場(chǎng)景又要節(jié)省成本使用HSI。
-
在時(shí)鐘樹(shù)系統(tǒng)中,主時(shí)鐘選擇由PLL生成,PLL為鎖相環(huán)倍頻輸出,其時(shí)鐘輸入源可選擇為HSI/2、HSE或者HSE/2。倍頻可選擇為2~16倍,但是其輸出頻率最大不得超過(guò)72MHz。
-
css時(shí)鐘監(jiān)視系統(tǒng)但HSE失效時(shí)自動(dòng)切換至HSI5、外設(shè)有獨(dú)立的時(shí)鐘分頻配置,主要有USB、SDIO、FSMC、APB1、APB2、ADC等。APB1和APB2是倆個(gè)總線橋:APB1和APB2,其中APB1是低速總線,APB2是全速總線。
具體哪些外設(shè)掛在那條總線上可參考下圖:
** 使用STM32CubeMX配置時(shí)鐘**
以STM32F105為例打開(kāi)工程選擇HSE,選擇外部晶振作為輸入。
點(diǎn)擊Clock Configuration如下圖:
04 結(jié)尾
本篇主要分析STM32的時(shí)鐘,并以stm32f105為例使用STM32CubeMX配置時(shí)鐘演示。如有疑問(wèn),歡迎留言討論。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!