STM32F7系列時鐘相關問題:HSE模式配置(旁路模式、非旁路模式

來源:互聯網
上載者:User

標籤:角度   調整   穩定性   之一   導致   系統   https   博文   多個   

從時鐘源的角度,分為兩類外部時鐘(E)和內部時鐘(I)。

從時脈速率的角度,分為兩類高速時鐘(HS)和低速時鐘(LS)。
而把它們組合起來就有四種時鐘:HSE、HIS、LSE、LSI。至於為什麼會有這麼複雜的時鐘配置,主要是考慮到系統的效能和功耗兩個方面的因素吧。單一時鐘的話可能會導致效能過剩並且功耗過高。多個時鐘的話可以平衡功耗和效能之間的平衡。
特此說明一下,系統複位後,預設初始化的是HIS時鐘提供sysclock。也就是16MHZ。為了提示系統效能,我們需要使能外部時鐘晶振(板載25MHz)。使能後也明顯可以看出來晶片的溫度升高了(使用內部的溫度感應器測試,在後續有圖片為證)。
這四類時鐘在晶片內部通過配置,完成對各個外設的驅動。到了晶片內部,對應到那麼多的外設,時鐘的分類就更多了,但是主要考慮到橋的存在,分為五類:AHB3、AHB2、AHB1、APB2、APB1。晶片內的所有外設都分別掛載在這五個匯流排上,至於哪個外設掛歪在哪個匯流排上,我們就需要查看晶片的RM0410 Reference manual(Page74)了。
今天為了測試時鐘的配置,我就用通用定時器TIM2做下示範操作:
首先查看TIM2掛載在哪條匯流排:
可知掛載在APB1匯流排上。

接著就可以查看TIM的時鐘迴路

不論STM8還是STM32系列的MCU,晶片複位後預設時鐘源都是內部HSI,要使用外部時鐘源HSE的話,得通過軟體對相關控制寄存器進行使能配置才行。

    如果使用外部HSE的話,一般有兩種模式:


 

1、外部晶體/陶瓷諧振器(HSE晶體)模式

    這種模式用得比較常見,HSE晶體可以為系統提供較為精確的時鐘源。在時鐘控制寄存器RCC_CR中的HSERDY位用來指示高速外部振蕩器是否穩定。在啟動時,直到這一位被硬體置’1’,時鐘才被釋放出來。HSE晶體可以通過設定時鐘控制寄存器裡RCC_CR中的HSEON位被啟動和關閉。

    該時鐘源是由外部無源晶體與MCU內部時鐘驅動電路共同配合形成,有一定的啟動時間,精度較高。為了減少時鐘輸出的失真和縮短啟動穩定時間,晶體/陶瓷諧振器和負載電容必須儘可能地靠近振蕩器引腳。負載電容值必鬚根據所選擇的晶體來具體調整。手冊裡明確地寫明了這句,很多時候似乎被無視了。關於這點,ST官方有專門出了個應用筆記,編號為AN2867。可以去www.stmcu.com.cn 或者www.st.com 搜尋下載。

    整體上講,陶瓷晶體和石英晶體的主要區別就在於精度和溫度穩定性上。石英晶體比陶瓷晶體精度要高,溫度穩定性要好。


2、外部時鐘源(HSE旁路)模式

    該模式下必須提供外部時鐘。使用者通過設定時鐘控制寄存器中的HSEBYP和HSEON位來選擇這一模式。外部時鐘訊號(50%占空比的方波、正弦波或三角波)必須連到SOC_IN引腳,此時OSC_OUT引腳對外呈高阻態。

    所謂HSE旁路模式,是指無需上面提到的使用外部晶體時所需的晶片內部時鐘驅動組件,直接從外界匯入時鐘訊號。猶如晶片內部的驅動組件被旁路了。

    不過,在使用該模式時,經常有人出現配置錯誤,即使用跟HSE晶體模式一樣的配置。這點在STM8/STM32應用中都有人發生。 所幸的是使用這個旁路模式的情形不像使用外部晶體模式那麼多,不然可能更多人在這裡遇到麻煩。

    我們不妨以STM3F4系列晶片為例。

    關於寄存器位上面已經提到了,旁路模式除了配置HSEON還得配置HSEBYP位。

    對於標準庫函數voidRCC_HSEConfig(uint32_t RCC_HSE)

    或CUBE庫函數__HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState)裡的相關參數可能是:RCC_HSE_ON、 RCC_HSE_Bypass或RCC_HSE_OFF的其中之一。


    如果使用STM32CUBEMX圖形配置介面的話可以看到3個選項:



    在ST MCU應用開發中,常有人會用到有源晶振作為時鐘源。如果用它該選擇哪種工作模式呢?



    有源晶振一般是四腳封裝,電源、地線、振蕩輸出和一個控制端【或者懸空端】。相比無源晶體,有源晶振本身就是個完整的振蕩器件,只需要供給適當的電源就能輸出時鐘,無須額外的振蕩驅動匹配電路。其時鐘輸出不依賴於外部器件振蕩電路,相對更不容易受外部線路不穩定性的影響。自然其價格往往要高於無源晶體,不過其輸出電平幅度往往不能像無源晶體那樣隨著應用電路的變化而變化。

    不難看出,如果使用有源晶振作為外部時鐘源的話,我們應該配置為HSE旁路模式,而不是HSE晶體模式。將有源晶振的輸出腳接到MCU的OSC_IN腳。
---------------------
無語僧314
來源:CSDN
原文:78947096
著作權聲明:本文為博主原創文章,轉載請附上博文連結!

STM32F7系列時鐘相關問題:HSE模式配置(旁路模式、非旁路模式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.