
今天來總結(jié)一下stm32單片機(jī)的時鐘系統(tǒng),也就是時鐘樹的相關(guān)知識點(diǎn)。單片機(jī)正常工作的三要素是電源、時鐘、復(fù)位電路。由此可以說,時鐘的正常工作是單片機(jī)正常工作的必要不充分條件。我們常常會把時鐘比喻為單片機(jī)的心臟,其重要性不言而喻。
就是這個“心臟”心跳的頻率,決定著單片機(jī)這個“人“各個”器官“的工作頻率。我們系統(tǒng)時鐘來源于它,各個外設(shè)的工作頻率也是經(jīng)過它分頻或者倍頻得出來的,任何外設(shè)要想工作,必須打開相對應(yīng)的時鐘。頻率設(shè)置得高,那么單片機(jī)處理指令的速度也就會越快,越高效。同時,頻率設(shè)置得越高,單片機(jī)的功耗也就會相應(yīng)地提高。如果在一些對功耗有要求的產(chǎn)品上,都會把不用的外設(shè)時鐘關(guān)掉。
(資料圖)
還有眾所周知的是,如果單片機(jī)的時鐘頻率越高,那么高低電平的上升沿或者下降沿所需要的時間就會越短。這樣整個系統(tǒng)的抗干擾能力就會隨著時鐘頻率的增加而下降。所以如果遇到系統(tǒng)EMS相關(guān)問題,可以從這個方向進(jìn)行驗(yàn)證考慮。
那么結(jié)合下面stm32f1 與stm32f4的兩幅時鐘樹的block diagram,以及我自己對時鐘的理解,來做一個總結(jié)。
stm32f1時鐘樹
stm32f4時鐘樹
1、無論是stm32f1,還是stm32f4,都有五個時鐘源:為HSI、HSE、LSI、LSE、PLL。其中PLL鎖相環(huán)倍頻時鐘源,是將HSI和HSE倍頻后輸出的。
HSI:High Speed Internal 是高速內(nèi)部時鐘,RC振蕩器,stm32f1頻率為8MHz,stm32f4頻率為16MHz。
HSE: High Speed External 是高速外部時鐘,可接石英/陶瓷諧振器,或者接外部時鐘源,stm32f1的頻率范圍為4MHz~16MHz,stm32f4的頻率為4~26MHz。
LSI:Low Speed Internal 是低速內(nèi)部時鐘,RC振蕩器,stm32f1的頻率為40kHz,stm32f4的頻率為32kHz。
LSE:Low Speed External是低速外部時鐘,stm32f1與stm32f4均是接頻率為32.768kHz的石英晶體。
PLL:Phase Lock Loop 為鎖相環(huán)倍頻輸出,其時鐘輸入均由HSE或HSI提供。stm32f1的輸出頻率最大不得超過72MHz,stm32f4的輸出頻率最大不得超過168MHz。
2、PLLCLK - PLL時鐘
stm32f1:
其時鐘輸入源可選擇為HSI/2、HSE或者HSE/2。倍頻可選擇為2~16倍,但是其輸出頻率最大不得超過72MHz。可以為SYSCLK提供時鐘源,也可以經(jīng)過分頻器為USBCLK提供時鐘的輸入源。
stm32f4:
主PLL時鐘:由HSE或HSI提供。可以為SYSCLK提供時鐘的輸入源。
PLL I2S時鐘:由HSE或HSI提供。輸出可以為I2S提供時鐘的輸入源。
3、系統(tǒng)時鐘SYSCLK是供STM32中絕大部分部件工作的時鐘源。從兩幅圖中可以看出,stm32f1與stm32f4的系統(tǒng)時鐘SYSCLK均有三個來源,分別是:HSI、HSE和PLL。大部分時候,STM32的系統(tǒng)時鐘是通過PLL經(jīng)過倍頻來完成。其中,stm32f1經(jīng)過PLL倍頻后,可以達(dá)到的最大的系統(tǒng)時鐘頻率是72MHZ,stm32f4經(jīng)過PLL倍頻后,可以達(dá)到最大的系統(tǒng)時鐘頻率是168MHZ。
關(guān)于stm32時鐘樹就先總結(jié)到這里。更加詳細(xì)的就不講了,結(jié)合ST官方的時鐘樹框圖,可以很明了地了解到各個系統(tǒng)外設(shè)的時鐘來源及走向。實(shí)際開發(fā)中,在編寫代碼的時候結(jié)合時鐘樹的框圖,相信就可以做到更深入的理解。
標(biāo)簽: