第二章:核心芯片选型——低功耗MCU与电源管理芯片

各位同学,咱们接着聊。上一章讲了嵌入式药盒的整体功耗模型,这一章咱们来点实在的——芯片选型。说白了,选对了芯片,续航就成功了一半。我这些年做过的低功耗项目不下二十个,踩过的坑能写本书。今天就把这些经验掰开揉碎了讲给你们听。

2.1 低功耗MCU选型:STM32L0 vs MSP430 vs EFM32

低功耗MCU是药盒的大脑。选它的时候,我一般看三个指标:静态功耗、唤醒时间、外设功耗。别光看数据手册上那个“xx μA/MHz”,那都是理想情况。实际项目中,外设一开,功耗就上去了。

咱们直接对比三款主流芯片:

参数 STM32L0 MSP430 EFM32
待机电流 0.27 μA(RTC开启) 0.1 μA(LPM3) 0.2 μA(EM2)
运行功耗 87 μA/MHz 100 μA/MHz 63 μA/MHz
唤醒时间 3.5 μs 1.5 μs 2 μs
Flash/RAM 64KB/8KB 32KB/4KB 64KB/8KB
开发工具链 STM32CubeIDE(免费) CCS(免费) Simplicity Studio(免费)
价格(1K量) 约$1.2 约$1.5 约$1.8

我个人习惯用STM32L0。为什么?因为生态好。你想想看,药盒项目里除了低功耗,还得考虑I2C驱动OLED、SPI读写Flash、UART跟蓝牙模块通信。STM32的HAL库和CubeMX工具,能帮你省下至少一周的开发时间。

但如果你追求极致续航,MSP430确实更猛。我记得有个项目,客户要求电池用三年不换。最后选了MSP430,待机电流压到0.1 μA以下。代价是什么?开发效率低。MSP430的寄存器操作太原始了,写个定时器中断都得翻半天手册。

EFM32呢?它有个绝活——外设反射系统。什么意思?就是外设之间可以直接通信,不用CPU干预。比如定时器到时间了,直接触发ADC采样,采样完直接触发DMA搬运数据。整个过程CPU都在睡觉。这个功能在药盒里特别实用,因为你要定时采集电池电压、温度这些数据。

我的建议:新手做药盒,优先选STM32L0。开发快,资料多,遇到问题随便一搜就有答案。等你有经验了,再考虑用EFM32压榨那最后几微安的功耗。

2.2 电源管理芯片(PMIC)选型

PMIC这东西,说白了就是给药盒供电的“管家”。它要管电池充电、电压转换、上电时序、甚至还要监测电池电量。选PMIC时,我重点关注三个点:静态电流、集成度、充电电流精度

药盒常用的PMIC方案有几种:

  • 分立方案:充电IC(如TP4056)+ LDO + 电量计。成本低,但占板面积大。
  • 集成方案:如MAX77650、BQ25120。一颗芯片搞定充电、LDO、升降压。适合空间受限的产品。
  • 超低功耗方案:如TPS62740。静态电流仅360 nA,适合纽扣电池供电。

我做过一个药盒,用的是BQ25120。为什么选它?因为它有运输模式。产品出厂后,电池可以休眠,电流只有20 nA。用户第一次按键开机,才真正激活电池。这个功能太实用了——你想想,药盒在仓库里放半年,电池电量还能剩80%以上。

小技巧:选PMIC时,一定要看它的“静态电流”是不是包含所有通道。有些芯片标称1 μA,但那是关掉所有输出后的值。实际工作时,LDO输出1.8V给MCU,再输出3.3V给传感器,静态电流可能就飙到5 μA了。

2.3 LDO与DCDC对比——到底该用谁?

这个问题,我几乎在每个项目里都会被问到。直接说结论:没有绝对的好坏,只有合不合适的场景

对比项 LDO DCDC(降压)
效率 低(压差越大效率越低) 高(80%-95%)
静态电流 低(可做到1 μA以下) 较高(通常10-50 μA)
输出纹波 极低(< 10 μV) 较高(10-50 mV)
外围器件 只需输入输出电容 需要电感、电容、反馈电阻
成本 低($0.1-$0.3) 高($0.5-$1.5)
适用场景 模拟电路、射频、低功耗待机 数字电路、大电流负载

在药盒项目里,我一般这样搭配:

  • MCU核心供电(1.8V):用DCDC。因为MCU运行时电流有10-30 mA,DCDC效率高,能省不少电。
  • RTC和待机供电:用LDO。待机时电流只有几微安,LDO的静态电流优势就体现出来了。
  • 传感器和OLED供电:看情况。如果传感器需要低噪声电源(比如心率传感器),必须用LDO。如果只是驱动个蜂鸣器,DCDC就够了。
避坑指南:我曾经在一个项目里,用DCDC给蓝牙模块供电。结果蓝牙连接距离直接减半。查了两天才发现,DCDC的开关噪声耦合到了天线。从那以后,凡是射频相关的电路,我都老老实实用LDO。

2.4 实际选型案例——一个药盒的电源树

咱们拿一个具体的药盒来练练手。假设需求如下:

  • 电池:3.7V锂电池,容量500 mAh
  • MCU:STM32L051
  • 显示:0.96寸OLED(SSD1306)
  • 传感器:DS18B20温度传感器
  • 通信:HC-08蓝牙模块
  • 目标续航:30天

我的电源树设计是这样的:

电池(3.7V)
  ├── DCDC(TPS62740)→ 1.8V → MCU核心、蓝牙模块
  ├── LDO(XC6206)→ 3.3V → OLED、温度传感器
  └── LDO(RT9193)→ 3.0V → RTC备份(可选)

为什么这么分?

MCU核心和蓝牙模块是耗电大户,用DCDC能省30%以上的能量。OLED和传感器对噪声敏感,用LDO保证显示稳定。RTC备份那一路,静态电流只有0.8 μA,几乎可以忽略。

算一下续航:

  • 待机功耗:MCU 0.3 μA + RTC 0.8 μA + LDO静态 1 μA ≈ 2.1 μA
  • 工作功耗(每天10次,每次5秒):MCU 10 mA + OLED 20 mA + 蓝牙 15 mA ≈ 45 mA
  • 每天总功耗:2.1 μA × 24h + 45 mA × 50s/3600 ≈ 0.05 mAh + 0.625 mAh ≈ 0.675 mAh
  • 理论续航:500 mAh / 0.675 mAh ≈ 740天

嗯,这里要注意。理论值永远比实际值乐观。实际项目中,电池自放电、温度影响、蓝牙重连等因素,续航大概要打七折。但即便如此,500 mAh电池撑一年以上是没问题的。

核心要点:选型不是选最牛的芯片,而是选最合适的组合。LDO和DCDC不是对手,是搭档。用对地方,才能把每一微安的电都用在刀刃上。

好了,这一章就到这里。下一章咱们聊聊电池本身——锂电池、干电池、纽扣电池,到底哪种适合你的药盒?到时候见。