2、硬件选型策略:低功耗MCU选型与外围器件功耗对比

好,咱们直接切入正题。售货机这玩意儿,说白了就是个「守株待兔」的设备。大部分时间都在待机,就等着顾客投币或者扫码。所以,硬件选型的核心就一个字——。省到什么程度?待机电流能压到微安级,那才叫及格。

我个人习惯,做低功耗设计第一步不是画原理图,而是先拉一张功耗预算表。把每个器件的待机电流、工作电流、唤醒时间全列出来。你想想看,如果MCU选错了,后面外围器件再省也白搭。

2.1 低功耗MCU选型:STM32L系列 vs MSP430

这两家是低功耗领域的「老冤家」了。我两个系列都用过,说说我的真实感受。

2.1.1 STM32L系列:性能与功耗的平衡大师

STM32L系列,尤其是L0和L4,是我目前在售货机项目里的主力。为什么?因为售货机需要跑一些简单的协议栈,比如MQTT或者HTTP,MSP430那点RAM有时候真不够用。

我记得有个项目,需要同时驱动一个4G模组和一个触摸屏。用STM32L476,主频80MHz,跑起来很从容。待机的时候切到Stop模式,电流大概1.2μA左右。嗯,这里要注意,Stop模式下RAM数据是保持的,唤醒时间也快,大概几个微秒。

选型要点:

  • 动态功耗:STM32L4系列在Run模式下,电流约100μA/MHz。你想想看,如果跑1MHz,才100μA,非常可观。
  • 待机模式:有Shutdown模式,电流可以到30nA。但代价是RAM全丢,唤醒相当于复位。我一般只在极端省电场景用这个。
  • 外设自主运行:这个功能我特别喜欢。比如LPUART可以在CPU休眠时接收数据,DMA可以自动搬运。说白了,就是让CPU多睡觉。

核心建议:如果你的售货机需要联网、需要跑RTOS、需要处理复杂协议,闭眼选STM32L4系列。别犹豫。

2.1.2 MSP430:极致省电的「老前辈」

MSP430,德州仪器的看家宝贝。它的强项是超低功耗,尤其是待机。我曾经用MSP430FR系列做过一个电池供电的传感器节点,待机电流做到了0.5μA以下,而且还能保持RTC和GPIO中断。

但是,MSP430有个硬伤——性能偏弱。16位内核,主频最高也就16MHz或25MHz。跑个简单的状态机还行,要是跑加密算法或者TCP/IP协议栈,那真是「小马拉大车」。

选型要点:

  • 待机功耗:LPM3模式,电流低至0.5μA,RTC还在跑。这个数据STM32L系列也得服气。
  • 唤醒时间:从LPM3唤醒到执行第一条指令,大概5μs。非常快。
  • FRAM技术:FRAM系列没有Flash写入的功耗和延时,写数据就像读数据一样快,而且功耗极低。我在项目中用FRAM做掉电保护,效果很好。

避坑指南:我曾经在一个项目中,为了省电选了MSP430,结果发现需要做OTA升级。MSP430的Flash空间小,而且没有硬件加密引擎,升级过程又慢又不安全。最后只能换方案。所以,先想清楚功能需求,再选MCU

2.1.3 选型对比表

对比项 STM32L4系列 MSP430FR系列
内核 ARM Cortex-M4 16位RISC
主频 80MHz 16MHz
待机电流 1.2μA (Stop模式) 0.5μA (LPM3模式)
运行功耗 约100μA/MHz 约80μA/MHz
RAM保持 支持 支持
外设丰富度 高(USB、CAN、DCMI等) 中(UART、SPI、I2C)
开发生态 极好(HAL库、CubeMX) 一般(DriverLib)
适合场景 联网型、功能复杂型售货机 纯电池供电、功能简单型

2.2 外围器件功耗对比

MCU选好了,外围器件也不能拖后腿。我见过太多人,MCU选了低功耗的,结果外围挂了一堆「电老虎」。你想想看,一个普通的LDO静态电流可能就几十微安,比MCU待机还高,这哪行?

2.2.1 传感器选型

售货机常用的传感器:

  • 红外对管:检测货道是否有货。待机电流可以做到0.1μA以下,工作电流也就几毫安。我习惯用脉冲驱动,平时不给电,检测时瞬间供电,读完数据就断电。
  • 霍尔传感器:检测门是否关闭。选型时注意看静态电流,有些国产的霍尔传感器静态电流能到10μA,而进口的如Allegro A1101系列,静态电流只有3μA。
  • 触摸按键:现在很多售货机用触摸代替机械按键。我推荐用电容触摸芯片,比如TTP223,待机电流约1.5μA。比机械按键省心,而且没有机械磨损。

个人经验:所有传感器,只要不是实时需要数据的,一律用MOS管控制电源。MCU的GPIO拉低,传感器断电,功耗直接归零。这个技巧我在多个项目中屡试不爽。

2.2.2 通信模块功耗对比

售货机现在基本都联网,通信模块是功耗大头。

模块类型 待机电流 工作电流(峰值) 唤醒时间
4G Cat.1 (如Air724UG) 约1.5mA 约500mA 约3秒
NB-IoT (如BC95) 约3μA 约200mA 约1秒
Wi-Fi (如ESP8266) 约20μA (Deep Sleep) 约300mA 约2秒
蓝牙BLE (如nRF52832) 约0.5μA 约10mA 约0.1秒

看到了吧?NB-IoT的待机电流只有3μA,非常适合售货机这种低频上报的场景。我有个项目,用NB-IoT模块,每天上报一次数据,两节18650电池撑了半年。

但要注意,NB-IoT的峰值电流也有200mA,电源设计必须能扛住这个瞬间电流。否则电压一掉,模块就重启了。

2.3 电源管理芯片选择

电源管理芯片,我称之为「功耗守门员」。选得好,整个系统的功耗能再降一个数量级。

2.3.1 LDO vs DC-DC

很多人觉得LDO简单、便宜,就一股脑用LDO。但LDO的效率是输入输出电压比决定的。比如从12V降到3.3V,效率只有27.5%,剩下的能量全变成热量了。你想想看,这多浪费?

我的建议:

  • 大压差、大电流:用DC-DC。比如从12V降到3.3V,用DC-DC效率能做到85%以上。
  • 小压差、小电流:用LDO。比如从3.6V降到3.3V,LDO效率92%,而且纹波小,适合给模拟电路供电。
  • 待机场景:选静态电流极低的LDO。比如TPS7A02,静态电流只有25nA。我有个项目,MCU待机1.2μA,LDO静态25nA,几乎可以忽略不计。

2.3.2 电源管理芯片推荐

芯片型号 类型 输入电压 静态电流 特点
TPS7A02 LDO 1.5V~5.5V 25nA 超低静态,适合电池供电
TPS62840 DC-DC 2.4V~5.5V 60nA 超低静态,效率高达95%
MCP1700 LDO 2.7V~6.0V 1.6μA 便宜、够用、皮实
RT8059 DC-DC 2.5V~5.5V 20μA 性价比高,适合3.3V系统

核心原则:电源管理芯片的静态电流,必须小于系统待机电流的10%。否则,这颗芯片就是系统的「电老虎」。

2.3.3 电源域划分

我习惯把售货机的电源分成三个域:

  1. 常电域:MCU的RTC、唤醒电路、电源管理芯片本身。这部分必须一直供电,电流要控制在微安级。
  2. 受控域:传感器、通信模块、电机驱动。平时断电,需要时由MCU控制MOS管或负载开关供电。
  3. 大功率域:制冷压缩机、加热器。这些用继电器或大功率MOS管控制,MCU只发控制信号,不直接供电。

这样做的好处是,待机时只有常电域在工作,功耗极低。我曾经在一个项目中,通过这种电源域划分,把待机功耗从5mA降到了50μA,整整降了两个数量级。

避坑指南:我曾经在电源域切换时,忽略了电容的放电时间。受控域断电后,电容上的电荷还在,导致MCU检测到电压异常。后来我在每个受控域输出端加了一个100kΩ的下拉电阻,确保断电后电压能快速归零。这个细节,很多人会忽略。

好了,硬件选型这块就聊到这儿。记住一句话:低功耗不是选出来的,是算出来的。先把功耗预算表做出来,再选芯片,最后画原理图。顺序别搞反了。