logo资料库

MCU低功耗设计(一)理论.pdf

第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
资料共7页,全文预览结束
Rime® 锐米通信 Rime® 研发经验 MCU 低功耗设计(一)理论 一. MCU 耗能因素 现代的 MCU 一般使用 CMOS 技术,耗能包括 2 方面: 静态消耗 主要是晶体管消耗能量; 动态消耗 公式=C×V2×f,其中 C 是 CMOS 的负载电容,V 是供电电压,f 是 时钟频率; 总 电 能 消 耗 是 静 态 消 耗 和 动 态 消 耗 之 和 , 即 : IDD=f × IDynamicRun[uA/MHz]+IStatic[uA]. 因此,电能消耗依赖于: MCU 芯片尺寸 或者说晶体管的数目; MCU 供电电压 降低电压可以成平方级别地降低电能消耗; 时钟频率 可以把时钟频率降低到刚好满足应用需要; 外设数目 使能的外设越多,耗能越大; 运行模式 合理选择工作模式可以大幅节能,如,全速工作极短时间后进入睡眠 模式。 二.节能方法 1. 关闭不需要使用的外设; 2. 所有未使用的引脚必须连接到一个确定的逻辑电平; 3. 当有外设必须保持激活时,使用 Wait 模式来获得低功耗; 4. 使用合适的 VDD 值; 5. 尽可能地使用低功耗运行模式; 6. 如果不能使用低功耗模式,那就将主频降低到满足应用的最小值; 7. 如果可能,使用动态控制 I/O 引脚的上拉功能。 © 2015 Rime® Technology Inc. page -1
Rime® 锐米通信 三.低功耗模式 支持低功耗的 MCU 一般都有好几种运行模式,以 ST 公司的 STM8L 为例,它支持 5 种低功耗模式:等待、低功耗运行、低功耗等待、主动停止和停止。每一种模 式的进入方式,节能级别和外设工作要求,总结表 1: 表 1 STM8L 低功耗运行模式 模式 入口 晶振 CPU 外设 唤醒 等待 低功耗运行 低功耗等待 主动停止 停止 WFI WFE 软件代码 软 件 代 码 HALT HALT +WFE LSI 或 LSE LSI 或 LSE LSI 或 LSE 开 关 开 开 关 开 开 开 关 开 关 关 关 关,仅 RTC 开 关 所 有 内 部 和 所 有 内 部 软件代码, 内 部 和 外 部 外 部 中 断 , 外 部 中断 , 外 部 中 断 , 和 外 部 中 复位 事件,复位 RTC 中断,复 复位 复位 断,复位, 唤醒事件 位 电压调节器 MVR MVR ULP ULP CLK_ICKCR ULP 程序执行区 FLASH FLASH RAM RAM FLASH FLASH FLASH+E2 开 开 关 关 关 中断 允许 允许 禁止 禁止 允许 关 允许 中 断 服 务 后 AL=0:main WFE 返回状态 AL=1:WFI 事 件 处 理 后 / Main / / / AL=0:main AL=0:main AL=1 主动停止 AL=1:停止 低功耗运行 / / © 2015 Rime® Technology Inc. page -2
Rime® 锐米通信 返回状态 RAM+寄存器 保留 保留 保留 保留 保留 保留 @3V/25℃ 5.9uA 5.4uA 3.3uA 1.0uA 0.4uA 特殊事项 / / 禁止 ADC / 清除外设悬挂中断标志位 上述低功耗运行模式对于开发者来说有点多,尤其刚接触 STM8L 处理器。我们需 要一般性的指导原则,表 2 是来源于实践的经验。 表 2 选择合理的 STM8L 节能模式 节能要求 应用场合 睡眠时长 唤醒方式 恢复时长 运行模式 苛刻 CPU 空闲,等待外部信号唤醒 苛刻 CPU 空闲,等待时钟周期唤醒 长 长 外部中断 ≥2.8us HALT RTC 周期 ≥2.8us Active-halt 严格 CPU 有持续、微负荷任务运行 / / ≥2.8us 低功耗运行 严格 CPU 短暂等待中断发生 严格 CPU 短暂等待事件发生 需要 CPU 有持续、轻负荷任务运行 四.鲜为人知的技巧 短 短 / 任意中断 注册事件 / 短 短 / 等待中断 等待事件 调整主频 1. 使用 Wait 替换查询方式达到节能目的 常见的查询方式如下,此时 CPU 无事可干,白白消耗电能。 ADC_CR1 = ADC_START; /* start conversion */ while (!(ADC_SR & ADC_SR_EOC)) ; /* wait for EOC bit set */ 可以使用等待事件的方式来节省电能。 先配置 ADC 为事件源,并使能相应的中断: © 2015 Rime® Technology Inc. page -3
Rime® 锐米通信 WFE_CR2 = ADC_COMP_EV; /* enable ADC as a source of event */ ADC_CR1 = ADC_EOCIE; /* enable interrupt for end of conversion */ 当 ADC 转换完成后,唤醒处于等待的 CPU: ADC_CR1 = ADC_START; /* start conversion */ _asm(“wfe”); /* enter wait mode until waked by ADC_EOCIE */ 2. 无须上下文切换的中断模式 应用程序设计时,如果所有中断事件由 ISR 完成,可以通过将 CFG_GCR 寄存 器中 AL 位置 1 来节省电能:避免保存/恢复 context、无须主程序运行(返回到 WFI 模式),如下图 1 所示。 time main WFI ISR time main WFI ISR WFI WFI Int save context do job IRET restore context WFI do job Int IRET 节省 电能 CFG_GCR.AL=0 CFG_GCR.AL=1 图 1 WFI 模式下中断无须上下文切换 将 AL 位置 1 节省电能的方法同样可以用于 HALT 模式,原理如下图 2 所示。 time main HALT ISR time main HALT ISR HALT HALT Int save context do job IRET restore context HALT do job Int IRET 节省 电能 CFG_GCR.AL=0 CFG_GCR.AL=1 © 2015 Rime® Technology Inc. page -4
Rime® 锐米通信 图 2 HALT 模式下中断无须上下文切换 3. 动态设置 I/O 口的上拉功能 很多应用需要按键作为人机接口,按键一般连接到 I/O 上。当按键没有动作时 I/O 口设置内部上拉而获得确定的逻辑电平;一旦按键按下,I/O 口对地导通将产生 额外的 40~70uA 电流,这对于电池供电的低功耗来说是十分重要的。 可以动态地控制 I/O 口的上拉达到节能的目的:一旦按键按下,中断服务程序将 禁止该 I/O 口的上拉功能;然后软件定时执行—先使能上拉功能,再检测 I/O 口 状态,如果按键仍按下再次禁止上拉功能,否则使能 I/O 口的上拉功能。整个逻 辑如下图 3 所示: time Button Software I/O press Int disable pull-up enable pull-up check disable pull-up Int release enable pull-up 节 省 电 能 图 3 动态设置 I/O 口的上拉而节能 4. CPU 空闲节能策略 CPU 的空闲节能如下图 4 所示,它的逻辑包括以下几个步骤: (1)发现 CPU 空闲:带 OS 系统,表现为任务没有事件需要响应,或者进入 idle 进程;无 OS 系统,表现为程序运行结束。 (2) 选择一种合适的 CPU 节能模式:chip_EnterLowPower()完成进入节能前的 准备工作,包括:关闭外设,切换 I/O 引脚到节能状态。 © 2015 Rime® Technology Inc. page -5
Rime® 锐米通信 (3) 退出节能模式需要调用 chip_ExitLowPower(),可能发生在以下 2 种情形: a. 需要使用被关闭外设的 ISR: b. 由 process 直接退出; chip_ExitLowPower()的善后工作包括:使能外设,切换 I/O 引脚到工作状态。 同时为避免 ISR 和 process 两次操作 chip_ExitLowPower(),该函数设置了状态 变量避免重复退出。 Ti Tj Tk Tl Tm time process ISR_i ISR_j EnterLP EnterLP ExitLP ExitLP CPU run idle run idle run 图 4 CPU 空闲节能策略 © 2015 Rime® Technology Inc. page -6
Rime® 锐米通信 Rime® 研发经验 联系我们 公司名称:长沙市锐米通信科技有限公司 公司网站:www.rimelink.com 邮箱地址:sales@rimelink.com 联系电话:0731-82231246 公司地址:长沙市普瑞大道 278 号 48 栋 2504 作者简介: 蒋俊,男,硕士研究生,现任长沙市锐米通信科技有限公司 CEO。 从事通信研究与嵌入式开发 10 年,主攻微功率无线网络。 精通 LoRa 无线扩频通信,无线星型/树型/MESH 网络设计; 通晓 Contiki,Linux,uC/OS-II,OSAL 等操作系统; 熟悉 ARM,DSP,STM8,PIC,PC104 等处理器; 擅长 AD,RF 等集成 IC 开发。 Web: www.rimelink.com EMail: jiangjunjie_2005@126.com QQ 群:35212129 相关文章: 《MCU 低功耗设计(二)实践》 《MCU 低功耗设计(三)产品》 © 2015 Rime® Technology Inc. page -7
分享到:
收藏