2、嵌入式MCU选型:低功耗MCU选型要点、ARM Cortex-M系列对比、外设资源评估

好,咱们直接进入正题。MCU选型这事儿,说大不大,说小不小。选对了,项目顺风顺水;选错了,后面全是坑。我见过太多团队,芯片都焊板子上了,才发现功耗压不下去,或者外设不够用。那叫一个难受。

今天我就把医疗贴片这块的选型经验,掰开了揉碎了讲给你听。核心就三个维度:低功耗、内核架构、外设资源。咱们一个一个来。

2.1 低功耗MCU选型要点

医疗贴片,说白了就是贴在身上的小盒子。电池就那么一丁点,可能就几十毫安时。你想想看,要是芯片自己就吃掉一半的电,那还测什么数据?

我个人习惯,选低功耗MCU时,先看这几个硬指标:

  • 工作模式功耗:Active模式下的mA/MHz值。越低越好,一般选低于100µA/MHz的。
  • 睡眠模式功耗:这个最关键。贴片大部分时间都在睡觉,偶尔醒来干点活。我建议Deep Sleep模式要低于1µA,最好能到0.1µA级别。
  • 唤醒时间:从睡眠到能跑代码,这个时间要短。超过10µs的,我基本不考虑。为什么?因为唤醒时间越长,你浪费在“开机”上的电就越多。

核心原则:不要只看数据手册上的“最低功耗”,要看你的实际工作周期。比如你每秒钟醒来一次,每次工作10ms,那睡眠电流和唤醒时间的权重就非常高。

嗯,这里要注意一个坑。很多芯片标称的“待机电流”是0.1µA,但那是把所有外设都关了、RAM数据全丢了的情况下测的。你实际用的时候,总要保留点数据吧?总要开个RTC吧?所以,一定要看“带RTC的睡眠模式”下的电流。我在项目中遇到过,选了一款号称0.3µA的芯片,结果开了RTC和保留4KB RAM,直接飙到2.5µA。你说气不气人?

我的小技巧:选型时,直接找厂家要“典型应用场景”的功耗数据。比如“每秒唤醒一次,每次采集10ms数据,平均电流是多少”。这个数据比手册上的极限值靠谱得多。

2.2 ARM Cortex-M系列对比

现在市面上主流的低功耗MCU,内核基本都是ARM Cortex-M系列。M0、M0+、M3、M4、M33……看着眼花缭乱。其实没那么复杂,我帮你理一理。

内核 位宽 性能 (DMIPS/MHz) 典型功耗 适合场景
Cortex-M0+ 32位 0.95 极低 简单传感器、纯控制、超低功耗贴片
Cortex-M3 32位 1.25 中等复杂度、需要一定算力的贴片
Cortex-M4 32位 1.25 (带FPU/DSP) 中等 需要数字信号处理、浮点运算的贴片
Cortex-M33 32位 1.5 (带TrustZone) 需要安全隔离、复杂通信的贴片

我个人建议,别盲目追新。M0+虽然老,但功耗是真的低,而且够用。我做过一个血糖监测贴片,就用M0+,跑得稳稳的。为什么?因为贴片不需要跑复杂的算法,只需要定时采集、简单滤波、然后通过蓝牙发出去。M0+完全能胜任。

那什么时候上M4或M33呢?

  • M4:如果你的贴片要做心电信号的实时分析,或者要跑个FFT(快速傅里叶变换),那M4的DSP指令集能帮你省不少电。因为算得快,就能早点睡。
  • M33:如果你做的是胰岛素泵或者植入式设备,对安全性要求极高,那M33的TrustZone技术能帮你做安全隔离。我曾经帮一个客户选型,他们要做远程医疗贴片,数据要加密传输,M33就是首选。

避坑指南:我曾经见过一个团队,为了“性能冗余”,选了M4来做体温贴片。结果功耗压不下去,因为M4的漏电流本身就比M0+大。最后不得不换芯片,重新画板子。记住:性能够用就行,多出来的性能都是电费

2.3 外设资源评估

选完内核,咱们看看外设。医疗贴片常用的外设,就那么几样:ADC、I2C/SPI、UART、定时器、DMA。但每一样都有讲究。

2.3.1 ADC(模数转换器)

贴片的核心就是采集生理信号。ADC是重中之重。我选ADC时,主要看三个参数:

  • 分辨率:至少12位。测心电、脑电,最好16位。
  • 采样率:根据信号频率来。心电一般250Hz-1kHz就够了,脑电可能需要更高。
  • 有效位数(ENOB):这个比分辨率更重要。有些芯片标称16位,实际有效位数只有12位,噪声大得吓人。

嗯,这里有个经验。我建议选那种带可编程增益放大器(PGA)的ADC。为什么?因为生理信号很微弱,可能只有几毫伏。没有PGA,你就要在外围加运放,又费电又占地方。我做过一个贴片,直接用MCU内部的PGA,把信号放大100倍,效果很好。

2.3.2 通信接口

贴片内部通信,I2C和SPI用得最多。I2C适合接传感器,线少;SPI速度快,适合接存储或显示屏。

  • I2C:注意看是否支持多主机模式,以及总线电容。贴片空间小,走线短,一般没问题。
  • SPI:注意看最大速率。有些低功耗MCU的SPI只能跑到几MHz,如果你要刷屏或者存大量数据,可能会成为瓶颈。

至于无线通信,蓝牙BLE是主流。选MCU时,最好选集成BLE的SoC。为什么?因为分立方案(MCU+蓝牙芯片)不仅费电,而且调试起来很麻烦。我早期做过一个项目,MCU和蓝牙芯片之间用UART通信,结果老是丢包,查了半个月才发现是波特率不匹配。后来换了集成方案,世界清净了。

2.3.3 DMA(直接存储器访问)

这个外设,我建议必须有。为什么?因为贴片要低功耗,CPU就得尽量睡觉。DMA可以帮你把数据从ADC搬到内存,或者从内存搬到蓝牙,全程不打扰CPU。等数据搬完了,再叫醒CPU处理一下。

我举个例子,一个心电贴片,每秒采集1000个样本。如果没有DMA,CPU每采集一个样本就要被中断一次,根本睡不了觉。有了DMA,CPU可以配置好DMA,然后睡大觉,等DMA攒够一包数据(比如100个样本),再唤醒CPU。这样平均功耗能降低一个数量级。

选型清单:我建议你选MCU时,至少确认以下外设是否存在:

  • 12位以上ADC,带PGA
  • 至少1个I2C和1个SPI
  • 集成BLE 5.0以上
  • DMA控制器,至少4个通道
  • RTC,带独立供电域

2.4 小结

好了,MCU选型这块,咱们就聊到这儿。总结一下我的思路:

  • 先看功耗:别光看数据手册,要看实际工作周期的平均电流。
  • 再看内核:M0+够用就别上M4,省电才是硬道理。
  • 最后看外设:ADC、DMA、BLE,这三样是贴片的命根子。

下一章,咱们聊聊电源管理。那才是低功耗设计的重头戏。到时候我会分享一个我踩过的坑,保证让你印象深刻。