首页 » 技术文章 » 嵌入式应用中的能耗调试

嵌入式应用中的能耗调试

作者:  时间:2011-05-05 20:02  来源:EDN

  为了避免对RX缓冲区进行轮询,一种常见的变通方法是启用RX中断并将MCU置于睡眠模式。完成之后,很容易看到能耗节省是巨大的。当我们关闭处理器,电流降至1.40mA(见图2b)。现在,当LEUART接收到数据,它就会被唤醒并通过TX缓冲区将其传送回去。

  当中断被触发时,电流尖峰将达到2.5mA,而剖析程序会精确定位到中断例程(见图4a)。不过,电流将在这个尖峰值保留较长的一段时间,而通过点击图表,就可能会发现在使用UART通信时的另一种常见错误。

4 带有LEUART TX轮询的LEUART RX中断(a),在接收字节之间处于睡眠模式下的EFM32b),以及深睡眠模式下的EFM32c

  void pollLEUARTTX(void)

  {while ( !( LEUART0 -> STATUS & LEUART_STATUS_TXC) );}

  在发送数据之后,用户会设置一个while循环以等待传输完成。无疑,这会使处理器过长时间保持在运行模式之下。这段循环可以被中断所取代,一旦传输完成,中断就会唤醒处理器。通过这样做,就将再次降低电流消耗量(见图4b)。

  现在,在每个接收到的字节之间,处理器都进入睡眠模式,降低了电流。字节传输的完成无须处理器的干预,所以就不需要轮询缓冲区以获知传输何时完成。将循环替换为中断例程是一种更优雅、更节能的解决方案,正如这两种方法的不同剖析图所示。

  深睡眠

  EFM32 MCULEUART模块可以在深睡眠模式下工作。在这种模式下,高频振荡器被关闭,但低频振荡器(RC或晶振)仍在运行并给LEUART提供时钟。如果将EFM32置于深睡眠模式并重复上述例子,能耗将降至微安量级。

  为了能够直观地显示这些电流数值,剖析程序从线性坐标切换到对数坐标。在深睡眠模式下,电流现在是1μA,而接收到帧时的尖峰值是80μA(见图4c)。从第一种方法到最后一种配置,节能倍数超过了1000

相关推荐

Ctrack选用u-blox GPS和蜂巢式模组开发车队管理解决方案

u-blox  嵌入式  Ctrack  2014-05-21

动作撷取追踪的嵌入式体感控制新技术

嵌入式  体感控制  2013-12-06

Microchip推出全新领先的32位MCU系列

Microchip  MCU  2013-11-21

半导体商情:集成电路整体下行 MCU大跌

集成电路  MCU  2013-11-06

集成LIN系统基础芯片功能的三通道半桥驱动控制器

艾尔默斯  LDO  MCU  2013-11-04

低功耗MCU助力智能手表电池寿命大增

MCU  智能手表  2013-10-23
在线研讨会
焦点