本帖最后由 liuguobing 于 2014-3-15 13:20 编辑
很多年没有发过贴了,最近在使用 stm8l152 做一款遥控器产品,刚用这个,还不太熟,发现stm8l的资料也比较少,官方中文资料几乎没有。所以花了点时间,把功耗部分测试了一下,在此分享。如有问题,可跟帖讨论。至于与MSP430的比较,发现自动唤醒功耗比MSP430(G2553)更大。在测试时,感觉STM8L更不省心,也可能是还不太熟加上资料有限吧,不过做完所有的功耗测试,基本都达到官方指标。
停机状态(无唤醒)
1. PCB仅焊接MCU,电源3.3V,复位电容(10nF)和一个退偶电容(0.1uF), 程序中将所有GPIO确定输出低电平,主函数中直接halt(),电流约 1.730uA
2. 在1的基础上,增加一条语句,PWR_UltraLowPowerCmd(ENABLE),或者 PWR->CSR2 = 0x2,再执行halt,电流下降至最低,0.400uA,达到官方指标
3. 在实际产品上的测试(电路上增加了LCD,LSE晶振等),GPIO确定电平,超低功耗开启,停机状态 halt(),电流约 0.38uA
4. 在3的基础上,开启RTC日历,电流约 1.3uA
5. 初始化并开启LCD(未显示),最低电流约 2.25uA (LCD显示参数: 死区时间 7, 持续周期 0, HD=0,LCD外部电源)
6. LCD正常工作,电流约 5.95uA (LCD显示参数: 死去时间 3, 持续周期 5, HD=0,LCD外部电源),显示效果均衡,LCD电流与LCD玻璃相关
7. 在6的基础上,HD=1 电流约 18uA
低功耗运行状态
1. 将主时钟切换为 LSI,所有GPIO确定电平,开超低功耗,关RTC、LCD、LSE等,主函数执行 while(1), 电流约 95uA
2. 在1的基础上,关电压调节器(默认开启),电流约 3.75uA; 达到标称电流值。
3. 在2的基础上,将主时钟切换为 LSE,电流约为 4.32uA
4. 在3的基础上,开启RTC,电流约为 4.59uA
5. 在4的基础上,开启LCD(不显示),电流约为 8.8uA,LCD显示,电流约为 9.25uA
正常工作状态
1. PCB仅焊接MCU,电源3.3V,复位电容(10nF)和一个退偶电容(0.1uF),程序中将所有GPIO确定输出低电平
2. 在1的基础上,主函数直接执行 while(1),功耗在 930~950uA 波动 (默认2MHz)
3. 在2的基础上,while(1) 中加入5个 nop(),功耗降低 200uA(即在730~750uA波动)
4. 在3的基础上,将时钟配置位16MHz,功耗约为 3.7mA
5. 在4的基础上,在while(1)中加入 wfi()/wfe(),功耗约为 720uA
6. 在5的基础上,将时钟配置位1MHz,功耗约为 325uA
说明: 对于 stm8l 这类低功耗芯片,多数时候应该工作在停止或者等待状态,全速运行功耗意义不大,以下两个实际工作模拟
1. 在一般定时显示程序中(主函数中延时500ms刷新显示),16MHz时钟,延时函数使用wfe功耗约1mA, 使用while(flag)功耗约4.5mA
2. 在实际低功耗项目中,RTC和LCD一直工作,CPU脉冲工作,RTC约500ms唤醒一次,刷新显示,其电池寿命主要取决于LCD显示效果,正常一般可做到6uA,显示均衡
3. 以上测试所用的LCD均为4*34段,如果更小的LCD,可能功耗更小
|