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 电源域划分
我习惯把售货机的电源分成三个域:
- 常电域:MCU的RTC、唤醒电路、电源管理芯片本身。这部分必须一直供电,电流要控制在微安级。
- 受控域:传感器、通信模块、电机驱动。平时断电,需要时由MCU控制MOS管或负载开关供电。
- 大功率域:制冷压缩机、加热器。这些用继电器或大功率MOS管控制,MCU只发控制信号,不直接供电。
这样做的好处是,待机时只有常电域在工作,功耗极低。我曾经在一个项目中,通过这种电源域划分,把待机功耗从5mA降到了50μA,整整降了两个数量级。
避坑指南:我曾经在电源域切换时,忽略了电容的放电时间。受控域断电后,电容上的电荷还在,导致MCU检测到电压异常。后来我在每个受控域输出端加了一个100kΩ的下拉电阻,确保断电后电压能快速归零。这个细节,很多人会忽略。
好了,硬件选型这块就聊到这儿。记住一句话:低功耗不是选出来的,是算出来的。先把功耗预算表做出来,再选芯片,最后画原理图。顺序别搞反了。