2、低功耗MCU选型:Cortex-M0+/M4对比、待机电流与唤醒时间、外设功耗分析

好,咱们进入第二章。这一章我打算聊聊MCU选型。说实话,TWS耳机的功耗大头在射频和音频编解码上,但MCU的选型如果没做好,那点底电流就能让你整机续航崩掉。我见过不少团队,算法跑得飞起,结果待机电流多出来几十微安,怎么都压不下去——最后发现是MCU选型时没注意细节。

2.1 Cortex-M0+ 与 M4:选谁更合适?

先说说这两个核的区别。Cortex-M0+,说白了就是为低功耗而生的。它指令集精简,门数少,跑起来省电。M4呢,带DSP指令和FPU,算力强,但功耗也上去了。

我个人习惯是这样判断的:

  • 如果只是做蓝牙协议栈、按键检测、LED控制——M0+完全够用。我做过一个项目,用M0+跑32MHz,待机电流能做到0.6µA,唤醒时间不到5µs。这个表现,TWS耳机绰绰有余。
  • 如果需要做ANC(主动降噪)算法、语音处理、或者复杂的音频后处理——那就得上M4了。M4的MAC(乘累加)指令,一个周期能算完一个乘法和加法,M0+得拆成好几条指令。我在一个降噪项目里试过,同样的算法,M4跑完只要M0+三分之一的时间,而且还能关掉FPU省电。

关键点:不要盲目追求高性能。TWS耳机里,大部分时间MCU都在休眠。真正干活的时间很短。选M4如果只是为了“万一以后用得上”,那待机电流多出来的那几微安,就是白给的。

2.2 待机电流与唤醒时间:数据说话

待机电流,是TWS耳机续航的命门。你想想看,耳机放在充电仓里,或者戴在耳朵上但没播放音乐,MCU大部分时间都在深度睡眠。这时候电流每多1µA,整机续航可能就少几个小时。

我整理了一份常见MCU的待机数据,供你参考:

MCU型号 内核 深度睡眠电流 唤醒时间 典型应用场景
Nordic nRF52810 M4 0.4 µA 6 µs 入门级TWS,蓝牙+基础控制
Nordic nRF52840 M4F 0.4 µA 6 µs 高端TWS,ANC+语音助手
ST STM32L0系列 M0+ 0.27 µA 3.5 µs 超低功耗传感器节点
Dialog DA14531 M0+ 0.2 µA 2 µs 极致低功耗,充电仓通信

嗯,这里要注意:数据手册上的待机电流,往往是在理想条件下测的。比如关掉所有外设时钟、IO口配置成模拟输入、电压1.8V。你实际用的时候,如果IO口没处理好,或者漏了一个外设没关,电流翻倍是常有的事。

我的经验:我曾经在一个项目里,深度睡眠电流死活降不到1µA以下。查了两天,最后发现是一个GPIO口内部上拉没关,漏了0.8µA。关掉之后,直接降到0.3µA。所以,选型时看数据手册,但更要看你的实际电路。

2.3 外设功耗分析:别让外设拖后腿

MCU内核再省电,外设没管好也是白搭。TWS耳机里常用的外设,我一个个说:

2.3.1 I2C/SPI 总线

这两个总线,平时不通信的时候一定要关掉时钟。我见过有人把I2C的SCL和SDA一直拉高,以为这样省电。其实不对,总线空闲时,最好把外设的电源也切掉。如果外设不支持断电,那就把IO口配置成高阻输入,减少漏电流。

2.3.2 ADC

ADC是耗电大户。尤其是连续采样模式,电流轻松上几百微安。我的做法是:用定时器触发单次采样,采完立刻关掉ADC模块。如果只是检测电池电压,每秒钟采一次就够了,没必要一直开着。

2.3.3 定时器

定时器本身功耗不高,但要注意:如果你用低功耗定时器(LPTIM),它可以在深度睡眠下继续跑。而普通定时器,睡眠就停了。选型时,优先选带LPTIM的MCU。我习惯用LPTIM做周期性唤醒,比如每100ms醒来一次检查按键,这样平均电流能压到很低。

2.3.4 GPIO

这个最容易忽略。GPIO如果配置成输出,并且驱动了外部负载,那电流就大了。比如驱动LED,哪怕只有1mA,在待机时也是致命的。所以,待机前一定要把所有GPIO配置成模拟输入或者高阻态。我有个习惯:写一个专门的 enter_sleep() 函数,里面把所有外设和GPIO都处理一遍。

警告:千万不要在待机时让GPIO输出高电平去驱动一个外部上拉电阻。我曾经踩过这个坑——一个IO口输出高,外部上拉到VDD,结果形成了对地通路,待机电流多了5µA。查了三天才找到原因。

2.4 实际选型建议

说了这么多,给你一个实际的选型思路:

  1. 先算功耗预算:TWS耳机整机待机电流一般要求小于10µA。MCU部分,我建议控制在2µA以内。剩下的留给蓝牙、传感器、充电管理。
  2. 再看唤醒时间:唤醒时间太长,会影响用户体验。比如从休眠到开始播放音乐,如果超过50ms,用户就会觉得卡。M0+的唤醒时间一般在2-5µs,M4在5-10µs,都够用。
  3. 最后看外设集成度:如果MCU内部集成了蓝牙射频、音频编解码、电源管理,那外围电路就简单很多,整体功耗也更容易控制。比如Nordic的nRF53系列,把M4和M0+放在一颗芯片里,M0+专门跑协议栈,M4跑应用,功耗控制得非常好。

总结一下:选MCU,不是看谁性能强,而是看谁能在你需要的时候干活,不需要的时候睡得最沉。M0+适合做“守门员”,M4适合做“突击手”。两者搭配,才是TWS耳机的最佳方案。

好,这一章就到这里。下一章我会聊聊电源轨的设计,包括DCDC和LDO的选型,以及如何用软件动态调压来省电。到时候见。