長見識了:STM8、STM32可以超頻嗎?
開篇問大家一個問題:STM32F103默認(rèn)最高主頻為72M,那么,其主頻可以達(dá)到80M嗎? 假如達(dá)到80M,程序能正常運行嗎?
1關(guān)于MCU主頻
首先,還是簡單介紹一下MCU主頻。一般我們講的電腦CPU主頻,對于MCU來說,其實道理一樣,都是指的CPU內(nèi)核工作的時鐘頻率。
對于STM8,或者STM32來說,MCU的主頻由硬件(晶振)和軟件編程決定。
在STM32中,MCU主頻一般是通過倍頻來實現(xiàn)的。比如72M,等于8M時鐘,9倍頻(8 x 9 = 72)。
在STM8、32中,我們說的主頻時鐘和外設(shè)時鐘,其實是兩種不同時鐘。
查看MCU「參考手冊」STM8的CLK時鐘控制章節(jié),STM32的RCC復(fù)位和時鐘控制章節(jié)的時鐘樹一目了然。
2
STM8主頻時鐘在STM8「參考手冊」Clock control(CLK)時鐘控制章節(jié),詳細(xì)描述了STM8時鐘相關(guān)的內(nèi)容。
從時鐘樹可以清晰看的出STM8時鐘大概有哪些內(nèi)容。比如STM8S的時鐘樹:
從時鐘樹可以看的出,可以得出一些重要信息,如:
內(nèi)部高速晶振HSI默認(rèn)16M,外部晶振可選擇1 - 24M。
STM8主頻只能分頻,不能倍頻。
外設(shè)時鐘是由主頻時鐘而來,可單獨開啟。
時鐘頻率可選擇多種方式輸出(CCO)。
STM8主頻可以大于16M嗎? 這個問題是之前有朋友問過的問題。
當(dāng)然,答案肯定是可以。為了提高M(jìn)CU效率,很多人就是將主頻進(jìn)行提高來達(dá)到目的。
但是,這里需要注意一個問題:當(dāng)超過16M主頻時鐘時,F(xiàn)lash /data EEPROM訪問必須配置為1等待狀態(tài)。
這個在STM8「參考手冊」中有明確說明:
For clock frequencies above 16 MHz, Flash /data EEPROM access must be configured for 1 wait state. This is enabled by the device option byte. Refer to the datasheet option bytesection.
3
STM32主頻時鐘STM32主頻時鐘同樣也是由硬件(晶振)和軟件編程決定。
(STM32F1時鐘樹)
STM32的時鐘可以上面時鐘樹看得出來,相對STM8要復(fù)雜的多。以上還只是STM32F1的,像F4,F(xiàn)7的還更復(fù)雜。
從時鐘樹可以看得出,STM32外部晶振頻率是一個范圍值,一般硬件就要求在這個范圍以內(nèi)。
STM32一個顯著的特點就是增加了倍頻這個功能。如果沒有倍頻功能,我們使用的72M、168M這么高的頻率,就需要直接使用上百兆的晶振。
這么能實現(xiàn)嗎? 原理上來說,可以實現(xiàn)。但對MCU來說是一個不小的考驗。具體原因可能就要問相關(guān)的資深工程師了。
1.STM32倍頻
STM32的倍頻可通過配置對應(yīng)寄存器(也就是編程)來實現(xiàn)。但一般不建議自己直接通過配置寄存器來實現(xiàn),參考官網(wǎng)提供例程代碼即可。
標(biāo)準(zhǔn)外設(shè)庫例程:在執(zhí)行main函數(shù)之前,系統(tǒng)就會調(diào)用SystemInit函數(shù)進(jìn)行初始化系統(tǒng)時鐘(含主頻)。
如果外部晶振和例程不一樣,修改對應(yīng)的幾個參數(shù)即可。比如倍頻值,HSI值等。這個閱讀一下代碼就能明白。
HAL庫:可通過STM32CubeMX工具直接配置時鐘,簡單方便,時鐘樹勾選一目了然。
2.主頻能超過最大值嗎?
如開篇所說,STM32F1主頻能超過最大的72M嗎?答案是可以的。
但是,超過最大主頻,有可能存在潛在的風(fēng)險。比如:時序紊亂,程序跑飛等。
超頻工作需要考慮實際情況和環(huán)境因素。比如干擾特別大的環(huán)境,一般不建議超頻。
我是親自經(jīng)歷過的,之前公司產(chǎn)品為了提高效率,將主頻超過一定值,還是能正常運行,而且投產(chǎn)了的。但是,應(yīng)用環(huán)境相對比較好,而且產(chǎn)品有電源控制(接斷電復(fù)位)。
3.超頻死機(jī)
如果MCU主頻超過太多,就會導(dǎo)致程序跑飛,出現(xiàn)死機(jī)現(xiàn)象,只能通過工具重新固件。
這個時候直接下載,可能會出現(xiàn)錯誤,則可借助復(fù)位引腳來實現(xiàn)重新下載固件(按住復(fù)位引腳,點擊下載,釋放按鍵)。
說了這些,主要想強(qiáng)調(diào),只要沒有特殊要求,建議參考官網(wǎng)硬件和軟件。
本文授權(quán)轉(zhuǎn)載自公眾號“StrongerHuang”,作者StrongerHuang
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!