每种单片机都有省电模式,各自细节不同,但总休思想是一样的。
第一个问题:如何实现省电的?
第二个问题:如何操作?
1.0 要省电,首先得了解系统时钟,因为要驱动任何电子模块,都得有时钟驱动。其次得模块思想,即把一个MCU分成不同模块。
1.1 时钟系统,在STM32时钟一文可以了解。
1.2 关于模块
内核 (省电模式下,一般内核都停止)
寄存器 (如pc, sp ,状态寄存器,ram)
外设
高速 外设
低带外设
现在以STM32F10XX说明:
1.0 睡眠模式(Cortex_M3内核停止,外设仍在运行)即PC寄存器不增加
2.0 停止模式(所有的时钟都已停止)
停止模式是在Cortex™-M3 的深睡眠模式基础上
结合了外设的时钟控制机制,在
停止模式下电压调节器可运行在正常或低功耗模式。此时在1.8V 供电区域的的所
有时钟都被停止,PLL、HIS 和HSE RC 振荡器的功能被禁止,
SRAM 和寄存器
内容被保留下来。
3.0 待机模式(1.8V电源关闭)
待机模式可实现系统的最低功耗。该模式是在Cortex-M3 深睡眠模式时关闭电压
调节器。整个1.8V 供电区域被断电。
PLL、HSI 和HSE 振荡器也被断电。
SRAM 和寄存器内容丢失。只有备份的寄存器和待机电路维持供电。
此外,在运行模式下,可以通过以下方式中一种降低功耗。
1.0 降低系统时钟
在运行模式下,通过对预分频器的寄存器进行编程,可以降低任意一个
系统时钟
(SYSCLK、HCLK、PCLK1、PCLK2)的速度。在进入睡眠模式前,也可以利用
预分频器来降低外设的时钟。
2.0 关闭APB和AHB总线上未被使用的外设的时钟。
C8051F93x

STM32f103