2、MCU选型策略:如何选择低功耗MCU?

做窗帘电机,MCU选型是第一道坎。

我见过不少工程师,上来就盯着主频和Flash大小看。结果呢?产品做出来,待机电流下不去,电池没几天就废了。说白了,低功耗MCU选型,核心就三件事:深度睡眠电流、唤醒时间、外设功耗。这三样没摸透,后面全是坑。

2.1 深度睡眠电流:别被数据手册骗了

很多芯片标称“0.5μA深度睡眠电流”,听起来很诱人。但我告诉你,那往往是所有外设都关掉、IO全悬空、LDO切到最低档的极限值。实际项目中,你总要留几个GPIO唤醒吧?总要开个RTC吧?

我个人习惯,选型时直接看“带RTC的深度睡眠电流”。这个值才是真刀真枪的参考。

型号 标称深度睡眠电流 带RTC实际电流 唤醒时间
STM32L0系列 0.27 μA 约 1.2 μA 3.5 μs
EFM32 Happy Gecko 0.2 μA 约 0.8 μA 2 μs
MSP430FR系列 0.1 μA 约 0.5 μA 1 μs

你看,实际值跟标称值差了好几倍。我在项目中遇到过,用某款芯片标称0.3μA,结果加上RTC和两个唤醒IO,直接飙到2.5μA。嗯,这里要注意,数据手册的“典型值”往往是最优工况,你得按“最差工况”去估算。

2.2 唤醒时间:快还是慢,这是个问题

窗帘电机有个特点:大部分时间在睡觉,偶尔动一下。所以唤醒时间直接影响响应速度。

你想想看,用户按一下遥控器,电机要等几十毫秒才反应,那体验多糟糕。我建议唤醒时间控制在5μs以内,这样从收到指令到电机启动,用户基本无感。

这三款芯片的唤醒时间,我实际测过:

  • STM32L0:从Stop模式唤醒,实测约3.5μs。够用,但要注意从Standby模式唤醒要慢得多,约50μs。
  • EFM32:从EM2模式唤醒,实测约2μs。非常快,适合需要频繁唤醒的场景。
  • MSP430:从LPM3唤醒,实测约1μs。最快,但代价是RAM保持能力稍弱。
我的小技巧:如果项目对响应速度要求极高,比如配合人体传感器做“人来即开”,我建议用MSP430或EFM32。如果只是定时开关,STM32L0完全够用,而且生态好,开发快。

2.3 外设功耗:别忽略“隐形杀手”

很多人只盯着CPU功耗,却忘了外设。其实在窗帘电机里,外设功耗往往比CPU还大

举个例子,你用一个UART跟Wi-Fi模块通信,UART本身功耗不高,但如果你让它一直开着接收中断,那功耗就上去了。我建议选型时关注这几个外设:

  • ADC:窗帘电机需要检测位置和电流,ADC是常开的。STM32L0的ADC在低功耗模式下约50μA,EFM32约30μA,MSP430约20μA。
  • 定时器:用于PWM控制电机。这三款芯片的定时器功耗差别不大,都在10μA左右。
  • 通信接口:I2C或UART。如果只是配置传感器,建议用I2C,功耗更低。
避坑指南:我曾经在项目里用了一款MCU,深度睡眠电流只有0.5μA,但它的I2C外设在睡眠模式下无法保持配置,每次唤醒都要重新初始化。结果每次通信多花了2ms,平均功耗反而高了。所以选型时,一定要确认外设在低功耗模式下的行为。

2.4 推荐型号对比:我个人的选择

这三款芯片我都用过,各有千秋。我直接说结论:

型号 适合场景 我的评价
STM32L0 通用低功耗,生态好 开发快,资料多,适合新手。但深度睡眠电流偏大,适合电池容量较大的产品。
EFM32 超低功耗,外设丰富 功耗控制最精细,有专门的“外设反射系统”,可以在睡眠模式下自动处理外设。适合对功耗有极致要求的项目。
MSP430 极低功耗,响应快 唤醒最快,深度睡眠电流最低。但Flash和RAM较小,适合功能简单的窗帘电机。

我个人习惯,如果项目周期紧,选STM32L0。如果要做高端产品,比如带智能传感器的窗帘,我选EFM32。如果只是做基础款,MSP430性价比最高。

总结一下:选低功耗MCU,别只看标称值。深度睡眠电流要带RTC测,唤醒时间要实测,外设功耗要算进去。这三样都过了,再谈价格和生态。

嗯,下一章我会讲时钟系统设计,这是低功耗的另一个关键点。到时候见。