第4章:MCU选型与评估

做牙刷这种小家电,MCU选型其实挺有意思的。不像手机芯片动辄几百个引脚,牙刷MCU讲究的是「刚刚好」。我这些年经手过七八个牙刷项目,从最初的8位机到现在的ARM Cortex-M,踩过的坑还真不少。

这一章,咱们就聊聊怎么给牙刷挑一颗合适的「大脑」。

4.1 主流MCU平台对比

目前市面上,适合做牙刷的MCU主要分两派:ARM Cortex-M和RISC-V。另外还有一些老牌的8位/16位机,比如8051、PIC,虽然还在用,但新项目基本不推荐了。

ARM Cortex-M系列

这个系列是当前的主流。Cortex-M0、M3、M4、M33,覆盖了从低端到中高端的全部需求。

  • Cortex-M0:性价比之王。主频一般48MHz以内,适合做基础款牙刷。我有个项目就是用M0做的,成本压到了1美元以内。
  • Cortex-M3:性能均衡。主频能到100MHz左右,适合带彩屏或复杂算法的牙刷。
  • Cortex-M4:带DSP和FPU。如果你要做声波牙刷的电机控制算法,M4是首选。
  • Cortex-M33:带TrustZone安全扩展。适合需要加密通信的高端产品。

我的建议:除非你有特殊需求,否则新项目优先考虑ARM Cortex-M0或M4。生态成熟,工具链完善,遇到问题网上随便一搜就有答案。

RISC-V系列

RISC-V这两年势头很猛。开源、免费、可定制,这些都是它的优势。但说实话,在牙刷这个领域,RISC-V目前还处于「追赶者」的位置。

我去年试过一个国产RISC-V芯片,性能确实不错,但开发工具链还不够成熟。调试器偶尔会掉线,IDE的体验也差一些。嗯,这里要注意:如果你团队里都是ARM的老手,贸然切RISC-V可能会拖慢开发进度。

避坑指南:RISC-V适合有自研能力的团队。如果你只是做ODM方案,老老实实用ARM吧。

8位/16位机

这类芯片现在主要用在超低成本的方案上。比如一些山寨牙刷,成本能压到几毛钱。但我不建议你在正规产品上用它们——性能太弱,扩展性差,而且开发效率低。

我曾经接手过一个用8051做的牙刷项目,光是改一个PWM频率就折腾了两天。换成M0之后,半小时搞定。

4.2 关键选型参数

选MCU不是看参数越高越好,而是看「够用」和「有余量」。下面这几个参数,是我每次选型必看的。

主频

牙刷的主频需求其实不高。基础款:16-32MHz就够了。带彩屏或复杂算法的:64-100MHz。再高就浪费了,而且高频意味着高功耗,对电池不友好。

我一般会留30%的余量。比如算法需要40MHz,我就选64MHz的芯片。为什么?因为后期加功能的时候,你不想被主频卡脖子。

Flash

Flash用来存代码和固定数据。牙刷的代码量一般不大:

  • 基础款:16-32KB
  • 中端款:64-128KB
  • 高端款:256KB以上

这里有个坑:有些芯片的Flash是分页的,擦写次数有限。如果你要做OTA升级,一定要选支持「双Bank」的芯片,否则升级过程中断电就变砖了。

注意:Flash不是越大越好。大Flash的芯片通常封装也大,占PCB面积。牙刷内部空间寸土寸金,能省则省。

RAM

RAM主要影响运行时的数据处理能力。牙刷的RAM需求:

  • 基础款:2-4KB
  • 中端款:8-16KB
  • 高端款:32KB以上

如果你要用RTOS(比如FreeRTOS),RAM至少要8KB起步。每个任务大概需要几百字节的栈空间,再加上消息队列、信号量,算下来其实挺吃紧的。

我有个项目,一开始选了4KB RAM的芯片,结果跑完协议栈和算法之后,RAM只剩200字节了。后来硬着头皮换了16KB的版本,多花了3毛钱,但省了无数头发。

外设

牙刷常用的外设接口:

外设 用途 选型建议
GPIO 按键、LED、电机控制 至少8个,最好16个以上
定时器 PWM生成、延时、计数 至少2个16位定时器
ADC 电池电压检测、触摸按键 10位以上,2个通道
UART 调试、蓝牙通信 至少1个
I2C/SPI 传感器、显示屏 至少1组
USB 充电、固件升级 可选,高端款建议带

这里有个细节:有些芯片的ADC是「伪差分」的,实际精度不如真差分。如果你要做高精度的电池电量检测,一定要看数据手册里的ENOB(有效位数),而不是只看标称位数。

4.3 选型评估矩阵

说了这么多,到底怎么选?我一般会做一个评估矩阵,把候选芯片列出来,逐项打分。

下面是一个示例矩阵,以三款常见芯片为例:

评估项 权重 芯片A (M0) 芯片B (M4) 芯片C (RISC-V)
主频 15% 48MHz (3分) 100MHz (5分) 80MHz (4分)
Flash 20% 64KB (4分) 256KB (5分) 128KB (4分)
RAM 15% 8KB (3分) 32KB (5分) 16KB (4分)
外设丰富度 20% 基础 (3分) 丰富 (5分) 中等 (4分)
成本 20% $0.8 (5分) $2.5 (2分) $1.2 (4分)
工具链成熟度 10% 成熟 (5分) 成熟 (5分) 一般 (3分)
总分 100% 3.85 4.35 3.85

你看,芯片B虽然成本高,但综合得分最高。如果你的产品定位高端,选B没问题。如果做性价比款,芯片A其实更合适。

我的习惯:选型时至少列3个候选芯片,一个主力、一个备选、一个「万一缺货」的Plan C。这两年芯片缺货大家都经历过,多一个备选方案总没错。

4.4 选型流程总结

最后,我总结一下选型的基本流程:

  1. 明确需求:列出所有功能,估算主频、Flash、RAM需求。
  2. 筛选候选:根据需求,从主流厂商(ST、NXP、GD、国民技术等)中挑3-5款。
  3. 制作矩阵:按权重打分,选出最优解。
  4. 申请样片:拿到样片后,先跑一个「最小系统测试」——点亮LED、跑个PWM、测一下ADC。
  5. 压力测试:在极限条件下测试(高温、低电压、高负载),看看芯片稳不稳。

嗯,这一步千万别省。我有个朋友,选型时只看数据手册,结果量产之后发现芯片在低温下启动不了。那叫一个惨。

好了,MCU选型就聊到这儿。下一章咱们聊聊牙刷的电源管理——别看牙刷小,电源设计里的门道可不少。