STM32单片机如何超频工作超大约多少还能正常工作

电子说

1.3w人已加入

描述

根据微软学术的定义,所谓超频(OVERCLOCKING)就是强制将计算机或硬件运行于厂商指定的时钟频率之上,以达到更高的性能。通俗的来说,就是榨干硬件的最后一丝潜力。

事实上,不止是电脑可以超频,MCU当然也可以超频,工作原理类似。

然而说到MCU的超频,自然会有泼冷水的诸君,也有口水唾沫若干,原因当然是稳定性第一。不过任何事物一体两面,有利有弊。本文并非鼓励大家超频,只是把细节呈现给各位,如人饮水,冷暖自知,作到心中有数即可。准备工作 硬件

本次测试准备使用NUCLEO-L073RZ评估板作为硬件平台,如果是其它STM32评估板,请适当调整相关参数。

图1:NUCLEO-L073RZ

NUCLEO-L073RZ基本指标如下基于CORTEX-M0+,32MHZ192KB/20KB的FLASH/SRAM组合板载STLINK/V2-1

可选其它硬件包括逻辑分析仪及示波器,用来更好的测试实验结果。

图2:DSLOGIC逻辑分析仪

DSLOGIC逻辑分析仪,用来检测PWM信号输出。

图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的得分高了,性能更强了!

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分