为什么我测到的低功耗电流和手册不一样?

cathy的头像
cathy 发布于:周四, 07/29/2021 - 16:49 ,关键词:

不断降低集成电路的功耗是集成电路发展过程中永不改变的主题。

降低功耗,有利于节约能源,延长待机时间,降低产品热量… … 毋庸多言,低功耗已经成为衡量产品优略的重要指标之一。

恩智浦官方通常推荐刚刚接触LPC芯片的客户,参考MCUXpresso SDK 自带的 power_mode_switch_lpc例程作为参考代码。使用这一经典例程,客户可以用串口终端控制MCU进入四种低功耗模式:睡眠模式(Sleepmode),深度睡眠模式( Deep Sleep mode),掉电模式(Power Down mode)和深度掉电模式(deep power down mode)。同时,用户还可以通过串口设置选择多种唤醒方式实现MCU的唤醒。

然而,我们经常有客户询问,官方提供的power_mode_switch_lpc例程测到的低功耗数值和数据手册标称的有不少出入。

例如用LPCXpresso845MAX 测试,在掉电模式(Power Down mode)下,如果没有断掉调试器,自测板子电流值可达到100uA左右, 而数据手册标称掉电模式下的典型电流值1.5uA,最大电流值10uA(见下图)。这是哪里出了问题?

“为什么我测到的低功耗电流和手册不一样?"

power_mode_switch_lpc例程的目的,是为了给客户演示LPC的几种低功耗模式及多种唤醒方式。

下面我们来一步步演示并修改该例程以得到数据手册的标称值。

实验环境:

DemoBoard: LPCXpresso845MAX

SDK:SDK_2.8.0_LPCXpresso845MAX

DemoCode: power_mode_switch_lpc

IDE:MCUXpresso IDE v11.2.0

步骤:

1、将power_mode_switch_lpc下载到LPC845开发板,启动运行。串口选择low power mode,wake (SW2按键) 唤醒。程序运行进入掉电模式,在调试器未断开情况下,此时实测Idd=99.5uA

“为什么我测到的低功耗电流和手册不一样?"

进入low power mode,程序使用了如下代码

POWER_EnterPowerDown(DEMO_ACTIVE_IN_DEEPSLEEP);

为了唤醒,参数DEMO_ACTIVE_IN_DEEPSLEEP配置了PDSLEEPCFG,将BOD和看门狗振荡器电源域打开了,导致了一部分电流的损耗,造成电源电流偏大。

2、这一步,我们将对应用于唤醒的初始化语句去掉,

// DEMO_InitWkt();

把下面一行进入掉电模式的代码

// POWER_EnterPowerDown(DEMO_ACTIVE_IN_DEEPSLEEP);

替换成

POWER_EnterPowerDown(0); //power down BOD and watchdog osc

修改后在掉电模式下关闭了BOD电源域和看门狗时钟,再次编译下载代码并再次进入掉电模式,此时实测Idd=57.3uA

“为什么我测到的低功耗电流和手册不一样?"

这样Idd明显降低了。然而57.3uA仍然和数据手册标称的典型值1.5uA相差很多。这是由于IDE的后台将MCU用于调试的电源域打开了导致了额外电流消耗。

3、我们将开发板脱机独立运行(断掉电源重新上电),进入掉电模式,此时实测Idd=1.4uA。

小结:

数据手册的低功耗电流参数的测量,是在MCU GPIO输出为低且禁止上拉,且所有振荡器及模拟域都被关闭的情况下测得的。

在对低功耗要求高的场合,用户需要仔细优化代码设计以得到最佳的低功耗设计。

来源:恩智浦MCU加油站
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 218