首頁 > 評測 > 玩火|STM32超頻求點贊!

玩火|STM32超頻求點贊!

STM32   超頻   NUCLEO   DSCOPE   時鐘頻率   
  • 作者:netlhx
  • 來源:21ic
  • [導(dǎo)讀]
  • 吹客=Trick ; 這是評測頻道打造地一個全新欄目,旨在用輕松活潑的方式讓大家一起來分享開發(fā)板使用開發(fā)的技巧和心得。只要你的文章是原創(chuàng)的,并且有觀點有干貨,一切內(nèi)容和題材都可以被我們所接受。投稿請至stitch-sk@hotmail.com(采用有驚喜!)

根據(jù)微軟學(xué)術(shù)的定義,所謂超頻(OVERCLOCKING)就是強制將計算機或硬件運行于廠商指定的時鐘頻率之上,以達到更高的性能。通俗的來說,就是榨干硬件的最后一絲潛力。

事實上,不止是電腦可以超頻,MCU當然也可以超頻,工作原理類似。

然而說到MCU的超頻,自然會有潑冷水的諸君,也有口水唾沫若干,原因當然是穩(wěn)定性第一。不過任何事物一體兩面,有利有弊。本文并非鼓勵大家超頻,只是把細節(jié)呈現(xiàn)給各位,如人飲水,冷暖自知,作到心中有數(shù)即可。

準備工作

硬件

本次測試準備使用NUCLEO-L073RZ評估板作為硬件平臺,如果是其它STM32評估板,請適當調(diào)整相關(guān)參數(shù)。

image001.jpg

圖1:NUCLEO-L073RZ

NUCLEO-L073RZ基本指標如下

基于CORTEX-M0+,32MHZ

192KB/20KB的FLASH/SRAM組合

板載STLINK/V2-1

可選其它硬件包括邏輯分析儀及示波器,用來更好的測試實驗結(jié)果。

image002.png

圖2:DSLOGIC邏輯分析儀

DSLOGIC邏輯分析儀,用來檢測PWM信號輸出。關(guān)于DSLOGIC的更多信息,請參考評測文章《成功眾籌11萬美金的開源LA》(http://m.lujuzi.cn/eva/instrument/201601/661325.htm)。

image003.jpg

圖3:DSCOPE數(shù)字示波器

DSCOPE數(shù)字示波器,用來檢測MCO輸出頻率。詳情參考評測文章《借你一雙慧眼》(http://m.lujuzi.cn/eva/instrument/201602/662610.htm)。

注:使用任何一款STM32評估板都可以體驗本文的冒險之旅,不過要修改相應(yīng)的硬件設(shè)置。本文提供配套的工程文件,助您再現(xiàn)測試場景。

設(shè)計

玩過PC機超頻的朋友都知道,超頻是非常EASY的事情。要么改FSB,要么改倍頻系數(shù),反正就是那幾個值的組合。然后,然后就超頻了。當然還有其它情況,比如CPU被玩壞了!

STM32系列MCU都有自己的時鐘樹,通過調(diào)整時鐘樹的一些基本參數(shù),就可以設(shè)定內(nèi)部相關(guān)設(shè)備特別是MCU的工作頻率。

image004.jpg

圖4:STM32 MCU時鐘樹

上面是STM32CUBEMX圖形化配置工具中的截圖,STM32CUBEMX是一個非常有用的代碼生成工具,可以用來生成工程文件的框架。

從圖4可以看到,要配置MCU的時鐘樹,我們需要選擇一個時鐘源,這是整個MCU工作的基礎(chǔ)。時鐘源可以來自外部晶振,也可以是內(nèi)部高速時鐘。在STM32的L系列MCU中,引入的新的稱之為MSI的時鐘,專門用于低功耗模式下的時鐘信號生成。

NUCLEO-L073評估板上沒有焊接8MHZ的外部晶振,不過ST-LINK上有啊。不過不能直接供L073RZ使用,ST-LINK上的MCO輸出8MHZ的時鐘信號,默認已配置好,可以直接用來給STM32L073提供時鐘,記得將L073RZ的HSE配置為BYPASS模式即可。

如果使用PLL電路來生成最終的時鐘信號,需要指定PLL的相關(guān)參數(shù),PLLMUL和PLLDIV,對輸入的時鐘進行倍頻,以產(chǎn)生高頻時鐘信號,供MCU或總線使用,最終經(jīng)調(diào)整后輸出到具體的片內(nèi)設(shè)備。

在本例中,使用的外部信號為8MHZ,經(jīng)PLL調(diào)整后的SYSCLK的頻率是這樣計算的:8MHZ * 8 / 2 = 32MHZ,即SYSCLK = HSE * PLLMUL / PLLDIV。一般情況下MCU的工作頻率就是這個啦。所以通過調(diào)整PLLMUL和PLLDIV加上AHB PRESCALER這三個參數(shù)值就可以調(diào)整MCU的工作頻率,AHB PRESCALER通常設(shè)定為1。

STM32系列都有一個標稱的最大工作頻率,像NUCLEO-L073RZ的產(chǎn)品說明上就標注了該MCU的最大工作頻率為32MHZ。超過了這個值會發(fā)生什么情況呢?ST沒說,你們自己看著辦!

當然不要忘記還有個FLASH,頻率提高了,F(xiàn)LASH的等待狀態(tài)也要相應(yīng)變化。打開L073的參考手冊,會發(fā)現(xiàn)

image005.jpg

圖5:FLASH LATENCY參考值

在32MHZ的情況下,至少要插入一個延時等待狀態(tài)。

頻率提高了,系列還能正常工作么,溫度、發(fā)熱情況怎么樣?這才是重點,為此,為MCU設(shè)計了一些任務(wù),看看在超頻的情況下,這些任務(wù)能不能完成,穩(wěn)定性如何?

image006.jpg

圖6:MCU功能引腳配置

這是為MCU指定的一些要執(zhí)行的任務(wù),TIM2輸出兩路PWM信號;UART2用來輸出一些基本的信息,如MCU內(nèi)部溫度;同時將MCO信號輸出,來測試主時鐘信號的頻率。

當然還有,我們需要一段CPU任務(wù)密集的的代碼,看看在高負荷的情況下,超頻后的設(shè)備還能不能穩(wěn)定工作。為此,將COREMARK BENCH移植到STM32并進行測試,一方面檢測CPU的穩(wěn)定性,另一方面測試超頻后的性能。為什么不用DMIPS來測試,按官方的說法,COREMARK比DMIPS更優(yōu)秀。關(guān)于COREMARK的詳細說明,請參考http://www.eembc.org/coremark/about.php。

  • 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!

網(wǎng)友評論