根據微軟學術的定義,所謂超頻(OVERCLOCKING)就是強制將計算機或硬件運行于廠商指定的時鐘頻率之上,以達到更高的性能。通俗的來說,就是榨干硬件的最后一絲潛力。
事實上,不止是電腦可以超頻,MCU當然也可以超頻,工作原理類似。
然而說到MCU的超頻,自然會有潑冷水的諸君,也有口水唾沫若干,原因當然是穩定性第一。不過任何事物一體兩面,有利有弊。本文并非鼓勵大家超頻,只是把細節呈現給各位,如人飲水,冷暖自知,作到心中有數即可。準備工作硬件
本次測試準備使用NUCLEO-L073RZ評估板作為硬件平臺,如果是其它STM32評估板,請適當調整相關參數。
圖1:NUCLEO-L073RZ
NUCLEO-L073RZ基本指標如下基于CORTEX-M0+,32MHZ192KB/20KB的FLASH/SRAM組合板載STLINK/V2-1
可選其它硬件包括邏輯分析儀及示波器,用來更好的測試實驗結果。
圖2:DSLOGIC邏輯分析儀
圖3:DSCOPE數字示波器
DSCOPE數字示波器,用來檢測MCO輸出頻率。注:使用任何一款STM32評估板都可以體驗本文的冒險之旅,不過要修改相應的硬件設置。本文提供配套的工程文件,助您再現測試場景。設計玩過PC機超頻的朋友都知道,超頻是非常EASY的事情。要么改FSB,要么改倍頻系數,反正就是那幾個值的組合。然后,然后就超頻了。當然還有其它情況,比如CPU被玩壞了!
STM32系列MCU都有自己的時鐘樹,通過調整時鐘樹的一些基本參數,就可以設定內部相關設備特別是MCU的工作頻率。
STM32系列都有一個標稱的最大工作頻率,像NUCLEO-L073RZ的產品說明上就標注了該MCU的最大工作頻率為32MHZ。超過了這個值會發生什么情況呢?ST沒說,你們自己看著辦!
當然不要忘記還有個FLASH,頻率提高了,FLASH的等待狀態也要相應變化。打開L073的參考手冊,會發現
測試說了一堆的閑話,終于要測試了。為了節省篇幅,就不長篇大論原始代碼了。如果你有興趣,請向本文作者索取完整工程代碼文件(含已配置好COREMARK移植的相關代碼)。
32MHZ頻率運行
這是官方允許的最大頻率值,在這種情況下,肯定一切都是正常的。下面是終端輸出結果
注意編譯優化標志(下文同)。在這里優化等級為3,也就是最高優化,同時指定為運行時間做優化,在終端輸出的信息里均包含了這一標志。
PWM輸出波形(占空比分別為10%和30%,頻率為1KHZ)
在允許的范圍內,反復測試COREMARK的代碼片段,會發現MCU內部溫度略有升高,但是升高的幅度并不明顯。如圖是測試一段時間后的MCU內部溫度圖。
因為STM32也許根本就沒有想過你要超頻,它的時鐘配置相對固定,沒有微調參數可供選擇。
啊,在PC上超頻的良好感覺都哪去了?通過查閱參考手冊,有如下信息
配置及運行結果
看到波形依舊漂亮!
不過在48MHZ的頻率下,MCO輸出嚴重變形,已不具參考價值。為了驗證,看一張硬件仿真得到的工作頻率值。
更進一步
為了更進一步測試,打破PLLVCO指定的96MHZ的限制。將PLLMUL的值指定為16,這樣在理論上SYSCLK的值會達到64MHZ!這樣的話系統還能跑起來么?
實驗的結果是:終于熄火了!
結論寫到這里,我自己也覺得有點雞肋!和傳統的PC超頻相比,STM32系列MCU提供的頻率配置參數相對有限,特別是沒有提供微調相關的參數。
不過從測試結果來看,我覺得還是比較滿意的。
上述數據表明,在超頻約50%的情況下,MCU還能正常工作,畢竟,像COREMARK測試這樣高負荷的運算,還是具有一定代表性的。一般的MCU應用,其運算量肯定沒有這么大!另外從測試結果來看,PWM輸出均正常,UART輸出也沒有產生亂碼。這一切都表明MCU應該是正常工作!更重要的是,COREMARK的得分高了,性能更強了!
-
單片機
+關注
關注
6037文章
44564瀏覽量
635919 -
mcu
+關注
關注
146文章
17171瀏覽量
351478 -
STM32
+關注
關注
2270文章
10904瀏覽量
356365
原文標題:玩火 | 玩一把STM32超頻
文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論