威海职业学院 孔宪青
产品设计的重要一环就是单片机的低功耗模式,是可穿戴设备、医疗设备、手持设备等电池供电的产品中的重要性能指标。现阶段,很多厂商提供了多样的MCU低功耗处理方法。本文以低功耗为切入,阐述对MCU的选择。
低功耗模式是指设备正常工作的前提下,通过关闭外设和内核部分,使MCU在总体电量不变的条件下能更长时间的工作。1996年出现的16位MSP430系列通过关闭CPU、倍频环、数字时钟发生器、振荡器而组合出五种低功耗模式,LPM4模式下供电电流可以低到0.1uA。但随着产品性能的日益要求,32位MCU出现并进入低功耗领域,出现了ARM架构的Cortex-M0的低功耗内核。图1是MSP30G2553和STM32F011的部分时钟树的对比。
图1 MSP430G2553和STM32L011的部分时钟树
可以看出,后者对外设的频率控制更精细,既能获得32位性能又能获得更好的功耗控制。其Cortex-M0+系列的外部高速时钟晶振预分频为AHB,然后再分解为APBx,对于外设的控制比MSP430系列有更多选择。时钟是启动外设和给电的源头,因此通过APBx有更多不同分频以供不同外设而达到最优的功耗。而MSP430G2553只有MCLK分解的SMCLK和ACLK可用,也就是达不到精准控制外设时钟的目的,也不能精准控制外设功耗。总之,低功耗模式就是精准的控制时钟及其分频,以达到降低外设功耗的目的。
现阶段,低功耗 MCU百花齐放。TI、ST、NXP、Atmel等公司都提供了大量的可供选择的芯片。从低功耗方面,通过几种类型的芯片进行对比,部分参数见表1。
对比发现,ARM架构三内核性能的排序为CM3>CM0+>CM0,运行功耗的排序为CM3>CM0>CM0+,即CM0+内核的能效高于CM0,运算性能仅次于CM3,但CM0+比CM3价格低,中断响应却更快,故CM0+更适合应用于低成本低功耗的产品。那些对功耗要求苛刻、运算处理复杂、且需控制成本的设备选择Cortex-M0+内核的MCU最为合适。这样的主流芯片有ST公司的L0系列,NXP公司的LPC800系列,Atmel公司的SAML2系列等。其中STM32L0系列有三条主要的产品线,差异在于不同的外设模块,如USB控制器、LCD控制器和DAC。恰当地选用有助于减少外部芯片的数量,降低系统成本和功耗。因此,片上集成资源的数量、种类、性能和功耗,也是决定MCU选型的重要参考因素。
除了选择合适的低功耗MCU之外,还要考虑影响功耗的其他方面:(1)尽量选择32位高线宽MCU,高密度指令可能是低位宽的几条指令之和,可有效降低指令能耗;(2)随时关频及时掐死外设,这是低功耗实现主要方式;(3)时钟不要倍频,尽管高频运行可降低任务执行时间,但频率越高能耗越高;(4)针对特定的任务合理搭配时钟频率,迅速完成以争取更多的休眠时间;(5)恰当的休眠模式和休眠时间;(6)中断的唤醒和低功耗的回归都应迅速,休眠保证了低功耗,但也务求迅速唤醒,以最低功耗完成工作后,再以最快速度回归休眠状态;(7)优化任务的时间片,将平均功耗降到最低,使用事件触发状态机模式编程;(8)内外部上下拉IO口可能造成涓涓细流,仔细检查IO口高阻态以避免能耗浪费;(9)如果不能避免IO设置为上下拉,就要避免IO与外设形成持续的电流回环,最差也在进入MCU睡眠模式之前,根据外设情况设置最小电流回路。
表1 典型低功耗MCU的指标对比
总之,考虑以上的注意事项并选择具有Cortex-M0+内核的MCU是现阶段低功耗的保证。低功耗MCU也将在手持设备、可穿戴设备和医疗设备的应用中具有广阔前景。
[1]佚名.智能硬件开发如何选择低功耗MCU[J].电子产品世界.