STM8S提供的可编程的电源管理
等待(Wait)模式:
- 通过WFI指令进入。该模式下CPU将停止运行,但外设与中断控制器仍保持运行。
- 该模式下可以通过外设时钟门控、降低CPU时钟频率、选择低功耗时钟源(LSI,HSI)进一步降低功耗。
- 在等待模式下,所有寄存器与RAM的内容不变,进入等待模式前所定义的时钟配置也不会在进入等待模式后改变。
- 当一个内部或外部中断产生时,CPU从等待模式唤醒并恢复工作。
停机(Halt)模式:
- 通过HALT指令进入。该模式下主时钟停止,即由fMASTER提供时钟的CPU及所有外设均被关闭。
- 该模式下可以通过关闭主电压调节器、进一步降低功耗。需注意,主电压调节器关闭后,仅LSI时钟源可用,HSE时钟源对于低功耗电压调节器来说电流消耗太大。
- 该模式下,FLASH是处于POWERDOWN状态的,此时FLASH处于低功耗状态,唤醒时间较长。可以通过配置FLASH_CR1的HALT位置1,使FLASH在进入停机模式时处于STANDBY状态,此时FLASH处于等待状态,唤醒时间短,但功耗较高。
- 在等待模式下,所有寄存器与RAM的内容不变,进入停机模式前所定义的时钟配置也不会在进入等待模式后改变。
- HSI RC的启动速度比HSE快,可以通过进入停机模式前将时钟切换为HSI作为fMASTER的时钟源,减少MCU的唤醒时间。
- 当一个外部中断产生时,CPU从停机模式唤醒并恢复工作。
活跃停机(Active Halt)模式:
- 使能AWU后,通过HALT指令进入。该模式下主振荡器、CPU及几乎所有外设都被停止。如果AWU和IWD已被使能,则只有LSI RC与HSE仍处于运行状态,以驱动AWU和IWD计数器。
- 该模式下可以通过关闭主电压调节器、进一步降低功耗。需注意,主电压调节器关闭后,仅LSI时钟源可用,HSE时钟源对于低功耗电压调节器来说电流消耗太大。
- 该模式下,FLASH是处于STANDBY状态的,此时FLASH处于等待状态,唤醒时间短,但功耗较高。可以通过配置FLASH_CR1的AHALT位置1,使FLASH在进入停机模式时处于POWERDOWN状态,此时FLASH处于低功耗状态,唤醒时间较长。
- 在活跃等待模式下,所有寄存器与RAM的内容不变,进入活跃停机模式前所定义的时钟配置也不会在进入等待模式后改变。
- HSI RC的启动速度比HSE快,可以通过进入活跃停机模式前将时钟切换为HSI作为fMASTER的时钟源,减少MCU的唤醒时间。
- 当一个外部中断产生,或AWU中断产生时,CPU从活跃停机模式唤醒并恢复工作。
0、文章简介
本文章仅讲述活跃停机模式配置与通过AWU中断的唤醒。
1、AWU的时间间隔介绍
AWU的时间间隔取决于AWU_TBR寄存器的AWUTB[3:0]位的值与AWU_PAR寄存器的APR[5:0]位的值。
- AWUTB[3:0]配置参考表
AWUTB | Time interval range | Interval range(fLS=128kHz) | APRDIV |
---|---|---|---|
0b0001 | 2/fLS - 64/fLS | 0.015625 ms - 0.5 ms | 2 to 64 |
0b0010 | 2×32/fLS - 2×64/fLS | 0.5ms - 1.0 ms | 32 to 64 |
0b0011 | 2×2×32/fLS - 22×64/fLS | 1 ms - 2 ms | 32 to 64 |
0b0100 | 22×2×32/fLS - 23×64/fLS | 2 ms - 4 ms | 32 to 64 |
0b0101 | 23×2×32/fLS - 24×64/fLS | 4 ms - 8 ms | 32 to 64 |
0b0110 | 24×2×32/fLS - 25×64/fLS | 8 ms - 16 ms | 32 to 64 |
0b0111 | 25×2×32/fLS - 26×64/fLS | 16 ms - 32 ms | 32 to 64 |
0b1000 | 26×2×32/fLS - 27×64/fLS | 32 ms - 64 ms | 32 to 64 |
0b1001 | 27×2×32/fLS - 28×64/fLS | 64 ms - 128 ms | 32 to 64 |
0b1010 | 28×2×32/fLS - 29×64/fLS | 128 ms - 256 ms | 32 to 64 |
0b1011 | 29×2×32/fLS - 210×64/fLS |