STM32的低功耗设计
这三种模式下的典型功耗如下:
Figure 5. Sleep模式下的典型功耗
Figure 6. Stop和Standby模式下的典型功耗
可见Standby模式功耗最低,在数个uA;其次是Stop模式,为数十uA;而Sleep模式的功耗最大,是其余两种模式的100倍。那么既然Standby功耗最低,那么另外两种模式的意义又是什么呢?首先,这三种模式下的唤醒时间各不相同:
Figure 7. 不同休眠模式下的启动时间
其次,这三种模式的特性也不相同:
·Sleep mode
唤醒后程序继续运行
CPU停止运行,但外设继续运行,IO状态保持不变
唤醒时间最短,但功耗较大。
·Stop mode
所有时钟停止运行
IO状态不变
唤醒后程序从休眠处继续运行
1.8 V domain are stopped, the PLL, the HSI and the HSE RC oscillators are disabled. 所以RCC和备份区在启动后需要重新配置。
·Standby mode
功耗最低
每次唤醒后和System Reset/POR一样,程序会重新运行。
IO呈高阻态
RAM与寄存器数据全部丢失,除备份寄存器外。
1.8 V domain are stopped, the PLL, the HSI and the HSE RC oscillators are disabled. 所以RCC和备份区在启动后需要重新配置。
可见Standby有三个缺点:
1) 唤醒时间长
2) 唤醒源单一,只有RTC、WAKEUP、WATCHDOG和RESET
3) 每次唤醒等同与重启,会丢失RAM中的数据
所以究竟使用什么样的休眠程序,还是需要看具体项目的具体特性的,在功耗-唤醒时间-唤醒源-休眠特性上做出一个折中。
参考资料:
·STM32F103xC_D_E Datasheet Rev 7, Sep 2009, ST Microcontroller
·STM32 Technique Reference Manual Rev 14, ST Microcontroller
评论