经过实际产品的对比,STM8L的低功耗完胜MSP430。在此记录。欢迎有不同意见发表。
我的测试环境如下:
1、外部晶振分频得1M
2、一个16位定时器
3、一个按键中断
4、一个串口 波特率:115200
5、一个LED灯
6、电源3.3V
7、主程序运行:按键中断从串口打印“STM8L PK MSP430”,定时器500MS中断将LED取反。
以上硬件条件分别在STM8L和MSP430上全速进行。实测电流进行比较而得结果,有兴趣的朋友可以试试看看。
讨论说明:
低功耗一直是各大MCU厂商争夺的焦点。最近,网上非常流行一个视频
(意法半导体STM8L低能耗系列MCU技术演示),视频中ST的工程师分别用两个土豆,RFID线圈,一杯热
水对STM8L MCU进行供电并使得系统正常运行。这不禁让我对STM8的运行功耗产生了兴趣,到底多低的电量STM8L就能工作呢?MCU内部哪个模块功耗最高?如何才能尽可能的降低STM8L的功耗?
首先让我们来看看厂商DS中提供的数据:
1. 工作电压1.8V到3.6V
2. 5个低功耗模式:
- wait模式
- Low power run模式 (约消耗5.1uA)
- Low power wait模式(约消耗3uA)
- Active-halt with full RTC模式(约消耗1.3uA)
- Halt模式(约消耗350nA)
当然,这只是厂商提供的理想功耗,在实际使用过程中,不同的应用场合不同的外设甚至于不同的PCB 设计和不同的软件编写都会对系统的功耗产生重大的影响。在下面的评测中,我们就以最基本的STM8 discovery开发板为平台进行STM8 RUN模式下功耗实测。当然由于测试仪器的精度以及测试方法的影响,
首先让我们来看看 STM8-DISCOVERY 工作电压到底多低?
测试电路很简单,一个外置稳压电源,一个万用表串联用来测当前电流,一个万用表并联用来测试当前电压。
在电源电压为1.8056V时系统不工作,STM8板上液晶不亮。
在电源电压为1.8135V时系统工作,片内程序执行,IDD测试当前电流为1.12mA ,按照STM8L用户
手册(CD00278045文档)的介绍,我们把电流表串入JP1的2,3号引脚。此时电流表中显示为1.08mA。基本与IDD测量一致。通过此次测量,可以认为STM8的工作电压介于1.80V到1.81V之间,基本满足数据手册上所述的1.8V供电电压。
STM8的DS中有提到:Consumption: 195 μA/MHz,这是什么意思呢?难道系统的时钟频率还和功耗有关系?
根据用户手册的图17可以看到,
STM8 MCU所用的时钟信号主要来自于4个地方HSE(外部高速晶振)、HIS(内部16M
RC振荡器)、LSE(外部低速晶振)以及LSI(内部38KHz低速振荡器)。这四个时钟通过选择器进行选择,并通过系统的分频器进行(1,2,4,8,16,32,64,128)分频。由于板子上没有外接高速晶振,所以只能使用芯片内部提供的16MHZ RC振荡器进行测试。为了更好的展现测试效果,我们对每种分频分别进行了测试。STM8的最高频率为16MHz,最低频率为16/128=125KHZ。下面各图分别为在各种分频系数下用板载IDD所测得得RUN模式下的消耗电流。(测试程序关闭了除ADC模块和液晶显示屏模块外的所有模块,并且电源为3.3V)。分频分别为:1、2、4、8、16、32、64、128。
通过测试,我们可以知道,在同一电压下,不同的工作频率器件所消耗的电流是不一样的,总体来看呈下降趋势。当这个下降却不是完全线性的,当系统分频因子从1变为2时效果比较明显,从8变为16和32时,系统消耗电流只有微小的改变,如果系统的分频因子从64变为128基本上可以说没有变化。如果还能够有256分频的话,按照前面的规律估计所消耗的电流变化也不会很大。难道这就是STM8L的极限了?当然不是,前面我们说过,STM8 MCU有4个时钟源,除去外部高速时钟板子上没有焊接外,其余三个我们都可以使用。上面我们测试的结果就是用内部16Mhz的RC时钟源作为主时钟得出的,为了使得STM8工作在更低的频率之下,我们可以选择内部38k低速时钟(即LSI)作为主时钟。以LSI为主时钟,并且分频因子为1时系统消耗电流各不相同。