之前做一款 outdoor sensor node,客户要求两节AA电池撑18个月。我当时心想,这不就是调个sleep mode的事吗?结果折腾了一个月,打样了两版板子,最后发现坑全埋在datasheet的小字里。

先说功耗构成。MCU待机电流只是冰山一角,真正吃电的是外围器件——LDO的静态电流、运放的quiescent current、甚至是上拉电阻的漏电,累积起来不比MCU本身少。

STM32L0系列的SHUTDOWN模式标称0.27μA,听起来很美好对吧?但你得想想:

// 进SHUTDOWN之前要处理的
HAL_PWREx_EnableFlashPowerDown();  // 这个不调用,flash还吃着电
HAL_PWREx_DisableInternalReferenceVoltage();  
// 但RTC还得跑吧?那就不叫SHUTDOWN了,叫STOP mode with RTC
// STOP mode with RTC ≈ 1.3μA

我踩的第一个坑就在这里。拍着胸脯跟客户说待机功耗0.3μA以下,实际测出来1.8μA。翻了三遍手册才发现——SHUTDOWN模式下RTC不能保留,要保留RTC就得用STOP Mode 2。datasheet上那个"0.27μA"的标注下面其实有一行星号: "without RTC, without backup registers retention"。

这不是骗人,但确实容易看漏。

另一个让我翻车的点是GPIO电平。有次测出来待机电流莫名其妙多了十几μA,用示波器一量,有几个GPIO在sleep前没配好,处于floating状态,内部上拉/下拉来回跳导致漏电。

// 修正前
HAL_GPIO_DeInit(sensor_en_GPIO_Port, sensor_en_Pin);
// 修正后 - sleep前把所有不用的脚配成模拟模式
for(int i=0; i<16; i++) {
    HAL_GPIO_Init(GPIOA, &(GPIO_InitTypeDef){
        .Pin = 1<<i,
        .Mode = GPIO_MODE_ANALOG,
    });
}

顺便说一嘴LDO的事。很多低功耗设计用LDO而不是DC/DC,因为DC/DC的switching loss在轻负载下反而高。但LDO也有讲究——静态电流(Iq)是选型关键。XC6206这种Iq只有1μA左右,而AMS1117的Iq高达5mA——你没看错,5个毫安,待机时的MCU才零点几个μA,一个LDO就把预算吃光了。

// 电池寿命大致估算
// Battery: 2x AA alkaline, 2000mAh each in series = ~2000mAh@3V
// Average load: sleep(99.9% time) 3μA + active(0.1% time) 6mA
// Average current ≈ 3μA * 0.999 + 6mA * 0.001 ≈ 9μA
// 2000mAh / 9μA ≈ 222222h ≈ 25 years
// 但这是理想情况!self-discharge、温度、LDO效率、电池内阻…… 
// 现实往往是标称寿命的1/3到1/2
// 所以我最后跟客户说"保守估计12-15个月"

我后来总结了一个checklist,每次布局前过一遍:

  • 电源路径上所有器件都要算静态电流
  • DC/DC要注意light load efficiency曲线
  • 没用的外设时钟关掉,不只是关外设本身
  • GPIO在sleep前统一处理,别留floating pin
  • 测功耗要在实际温度范围内测,不是25℃
  • 电池放两年的自放电率比设备功耗还高,别忽略这个

测功耗本身也是个技术活。买个几百块的万用表量μA级电流?根本稳不住。我后来搞了个专用低功耗测试板——串一个10Ω电阻在电源回路里,用示波器看压降波形,能看到MCU唤醒瞬间的电流尖峰。你要是us级别的唤醒,万用表根本反映不出来。

最后说个有意思的事。客户说"电池寿命测一下",我说行,测18个月吗?我在实验室用accelerated test,按1:100的duty cycle缩短时间,跑了大概5天,掉电曲线跟理论计算吻合。结果客户不认accelerated test,非要真实跑。我直接拿一堆碱性电池接上板子,扔抽屉里了。过了9个月,真还活得好好的——但那已经是后话了。

低功耗设计没有捷径,就是一遍遍测、一遍遍改。少信datasheet上的"typical value",多看max值,多留余量。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐