第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 选型流程总结
最后,我总结一下选型的基本流程:
- 明确需求:列出所有功能,估算主频、Flash、RAM需求。
- 筛选候选:根据需求,从主流厂商(ST、NXP、GD、国民技术等)中挑3-5款。
- 制作矩阵:按权重打分,选出最优解。
- 申请样片:拿到样片后,先跑一个「最小系统测试」——点亮LED、跑个PWM、测一下ADC。
- 压力测试:在极限条件下测试(高温、低电压、高负载),看看芯片稳不稳。
嗯,这一步千万别省。我有个朋友,选型时只看数据手册,结果量产之后发现芯片在低温下启动不了。那叫一个惨。
好了,MCU选型就聊到这儿。下一章咱们聊聊牙刷的电源管理——别看牙刷小,电源设计里的门道可不少。