STM8S电源管理-重点活跃停机模式
扫描二维码
随时随地手机看文章
STM8 电源管理
2012-06-08 22:47:55|分类:STM8|字号订阅
默认情况下在系统或电源复位后,MCU处于运行模式。在这种模式下,CPU由fCPU提供时钟并执行程序代码,系统时钟分别为各个处于激活状态的外设提供时钟,MCU功耗最大。
在运行模式下,为了保持CPU继续运行并执行代码,有下列几种途径可降低功率消耗:
● 降低系统时钟
● 关闭未使用外设的时钟
● 关闭所有未使用的模拟功能块
但是,如果CPU不需要保持运行,可使用下列三种低功耗模式:
● 等待(Wait)
● 活跃停机(Active Halt)( 可配置为慢速或快速唤醒)
● 停机(Halt) (可配置为慢速或快速唤醒)
用户可选择以上三种模式中的一种,并合理配置,以在最低功耗、最快唤醒速度和可使用的唤醒源之间获得最佳平衡点。
常规考虑
一般来说,低功耗特性在要求节省能量的应用中非常重要。对于要求电池使用寿命较长的便携式应用,超低功耗显得尤为重要。而且这对于环境保护也是至关重要的。
硅片中通常存在两种功耗:
● 静态功耗:由极化电流和漏电流造成。静态功耗很小,只在停机(Halt) 模式和活跃停机
(Active Halt) 模式(参见9.3)下有意义。
● 动态功耗:来自于芯片上正在运行的数字模块。它取决于V DD,时钟频率和负载电容。
一个微控制器的功耗取决于:
● V DD供电电压
● 模拟性能
● MCU大小及数字逻辑门数(漏电流及负载电容)
● 时钟频率
● 处于激活状态的外设数目
● 可用的低功耗模式及级别
微控制器的处理速度也很重要,这使得用户程序只需很短时间处于运行状态,而更多时间处于低功耗模式下。
使用MCU灵活的低功耗特性,用户可在很大范围内降低系统功耗并快速恢复操作。
低功耗的时钟管理
降低系统时钟
在运行模式,为了即能满足系统性能又能降低功耗,选择合适的系统时钟源是很重要的。可通过写时钟控制寄存器选择时钟源。参见时钟控制章节。
通过写时钟分频寄存器CLK_CKDIVR的位CPUDIV[2:0] ,可降低fCPU的时钟频率。这会降低CPU的速度,但同时可降低CPU的功耗。其它外设(由fMASTER提供时钟)不会受此设置影响。
在运行模式下,任何时候需要恢复全速运行,将CPUDIV[2:0] 清0即可。
外设时钟门控
为了更进一步降低功耗,可使用时钟门控。用户可在任意时间打开或关闭fMASTER与各个外设的连接。参见时钟控制章节。
此设置在运行模式和等待模式均有效。
低功耗模式
等待(Wait)模式
在运行模式下执行WFI(等待中断) 指令,可进入等待模式。此时CPU停止运行,但外设与中断控制器仍保持运行,因此功耗会有所降低。等待模式可与PCG(外设时钟门控) ,降低CPU时钟频率,以及选择低功耗时钟源(LSI ,HSI) 相结合使用,以进一步降低系统功耗。参见时钟控制(CLK) 的说明。
在等待模式下,所有寄存器与RAM的内容保持不变,之前所定义的时钟配置也保持不变( 主时钟状态寄存器CLK_CMSR) 。
当一个内部或外部中断请求产生时,CPU从等待模式唤醒并恢复工作。
停机(Halt)模式
在该模式下主时钟停止。即由fMASTER提供时钟的CPU及所有外设均被关闭。因此,所有外设均没有时钟,MCU的数字部分不消耗能量。
在停机模式下,所有寄存器与RAM的内容保持不变,默认情况下时钟配置也保持不变( 主时钟状态寄存器CLK_CMSR) 。
MCU可通过执行HALT指令进入停机模式。外部中断可将MCU从停机模式唤醒。外部中断指配置为中断输入的GPIO端口或具有触发外设中断能力的端口。
在这种模式下,为了节省功耗主电压调节器关闭。仅低电压调节器(及掉电复位)处于工作状态。 快速时钟启动 HSI RC的启动速度比HSE快( 参见数据手册中电特性参数) 。因此,为了减少MCU的唤醒时间,建议在进入暂停模式前选择HSI做为fMASTER的时钟源。
在进入停机模式前可通过设置内部时钟寄存器CLK_ICKR 的FHWU位选择HSI做为fMASTER的时钟源,而无需时钟切换。参见时钟控制章节。
活跃停机(Active Halt)模式
活跃停机模式与停机模式类似,但它不需要外部中断唤醒。它使用AWU,在一定的延时后产生一个内部唤醒事件,延迟时间是用户可编程的。
在活跃暂停模式下,主振荡器、CPU及几乎所有外设都被停止。如果AWU和IWD 已被使能,则只有LSI RC与HSE仍处于运行状态,以驱动AWU和IWD 计数器。
为进入活跃停机模式,需首先使能AWU(如AWU章节所述),然后执行HALT指令。
主电压调节器自动关闭
默认情况下,为了从活跃停机模式快速唤醒,主电压调节器处于激活状态。但其电流消耗是不可忽视的。
为进一步降低功耗,当MCU进入活跃停机模式时,主电压调节器可自动关闭。通过设置内部时钟寄存器CLK_ICKR 的REGAH位可实现此功能。此时:
● MCU内核由低功耗电压调节器(LPVR)供电(如同停机模式)。
● 仅LSI时钟源可用,因为HSE时钟源对于LPVR 来说电流消耗太大。
在唤醒时主电压调节器重新被打开,这需要一个比较长的唤醒时间( 参见数据手册电特性部分唤醒时间与电流消耗的相关数据)。
快速唤醒时钟
如停机模式所述,为了缩短唤醒时间,建议使用HSI做为fMASTER的时钟源。FHWU 位也可用于缩短切换时间。
在活跃停机模式下,快速唤醒是很重要的。这可以提高CPU的执行效率,使MCU处于运行状态与低功耗模式之间的时间最短,从而减少整体平均功耗。
附加的模拟功耗控制
停机模式下的快速内存唤醒
默认情况下,微控制器进入停机模式后FLASH是处于掉电状态的。此时,漏电流可忽略不计,功耗是非常低的。但FLASH的唤醒时间较长(几微秒)。
如果用户需要从停机模式快速唤醒,可将FLASH_CR1 的HALT位置1 。当微控制器进入停机模式时,这将确保FLASH处于等待状态,唤醒时间降至几纳秒。但功耗将增至几微安。详情请参见数据手册电特性章节。
活跃停机模式下的超低内存功耗
在活跃停机模式下,为加快唤醒时间,默认情况下FLASH处于工作状态,因此并没有降低功耗。
为降低功耗,用户可将FLASH_CR1 的AHALT位置1 。在进入活跃停机模式时,这将停止向FLASH供电以降低功耗,但唤醒时间将增至微秒级。