第2章 主控芯片选型:常见MCU对比与实战选型流程

做嵌入式系统,第一步就是选主控。这活儿看着简单,其实坑不少。

我见过太多项目,功能都调通了,最后卡在芯片选型上——要么成本压不下来,要么功耗超了指标,要么供货断了。说白了,选型选不好,后面全是泪。

2.1 三款主流MCU的硬核对比

目前市面上,STM32、GD32、ESP32这三款用得最多。我一个个说。

2.1.1 STM32:老牌劲旅

STM32是意法半导体的拳头产品。生态最成熟,资料最全,社区最活跃。我个人习惯,做原型验证时首选STM32,因为遇到问题随便一搜就有答案。

参数 STM32F103 STM32F407 STM32H743
内核 Cortex-M3 Cortex-M4F Cortex-M7
主频 72MHz 168MHz 480MHz
Flash 64KB~512KB 512KB~1MB 1MB~2MB
单价(批量) ¥8~15 ¥25~40 ¥60~100

优点很明显:稳定、文档规范、HAL库和LL库都很好用。缺点呢?贵。尤其是这两年涨价后,性价比被国产芯片甩开一截。

我的经验: 如果你做的是医疗设备、工业控制器这类对可靠性要求极高的产品,别犹豫,上STM32。省下来的芯片钱,不够赔一次售后。

2.1.2 GD32:国产替代首选

GD32是兆易创新的产品,直接对标STM32。引脚兼容、软件兼容,很多项目可以直接替换。

我记得有个项目,客户要求把BOM成本砍掉30%。我直接把STM32F103换成了GD32F103,硬件板子都不用改,只调了调时钟配置,成本就降下来了。

对比项 GD32F103 STM32F103
主频 108MHz 72MHz
Flash 16KB~512KB 64KB~512KB
单价(批量) ¥3~8 ¥8~15
兼容性 硬件引脚兼容
注意: GD32的ADC精度和STM32比有差距。我曾经在一个传感器采集项目里踩过坑——GD32的ADC噪声比STM32高了约2个LSB。如果你做高精度采集,建议先打板验证。

2.1.3 ESP32:Wi-Fi/蓝牙一体方案

ESP32是乐鑫的产品,自带Wi-Fi和蓝牙。做物联网产品,它几乎是标配。

你想想看,一个芯片搞定主控+无线连接,省掉一个外挂Wi-Fi模块,成本、面积都下来了。我最近做的智能插座项目,就直接用的ESP32-C3,RISC-V内核,功耗还低。

参数 ESP32 ESP32-S3 ESP32-C3
内核 Xtensa LX6 Xtensa LX7 RISC-V
主频 240MHz 240MHz 160MHz
无线 Wi-Fi+BT Wi-Fi+BT Wi-Fi+BLE
单价(批量) ¥12~18 ¥15~22 ¥6~10
核心观点: 需要无线的产品,无脑选ESP32。不需要无线的产品,在STM32和GD32之间根据预算选。

2.2 选型考量三要素:功耗、成本、性能

这三个要素,说白了就是三角博弈。你不可能三个都占全,必须做取舍。

2.2.1 功耗

电池供电的产品,功耗是第一优先级。我做过一个穿戴设备,要求待机电流低于10μA。当时选了STM32L0系列,休眠功耗只有0.4μA,配合RTC唤醒,一节纽扣电池撑了半年。

选型时看这几个参数:

  • 运行模式电流: 满负荷工作时吃多少mA
  • 休眠模式电流: 待机时吃多少μA
  • 唤醒时间: 从休眠到正常工作要多久
避坑指南: 我曾经只看数据手册上的「典型值」,结果实际测出来休眠电流高了3倍。后来学乖了——一定要看「最大值」,那才是你产品能保证的下限。

2.2.2 成本

成本这东西,得算总账。芯片本身的价格只是一部分,还要算上:

  • 外围器件成本(比如是否需要外部晶振、LDO)
  • PCB面积成本(芯片引脚越多,板子越大)
  • 开发成本(STM32开发快但芯片贵,GD32芯片便宜但调试时间长)
  • 供货风险成本(缺货时现货价格可能翻倍)

我建议你做个表格,把这几项都列出来,算个总账。很多时候,便宜的芯片反而总成本更高。

2.2.3 性能

性能不是越高越好。够用就行。

我见过有人用STM32H7做智能灯控,480MHz的主频,结果就跑了几个GPIO和PWM——这不是杀鸡用牛刀吗?

性能评估看三点:

  1. 算力: 主频 + 是否有FPU/DSP
  2. 存储: Flash和RAM够不够放代码和缓冲区
  3. 外设: 需要的UART、SPI、I2C、定时器够不够用

2.3 实战选型流程:五步法

下面是我自己总结的选型流程,用了好几年,没出过大问题。

第一步:列出硬需求

把产品必须满足的条件写下来。比如:

  • 需要3路UART
  • 需要1路USB Device
  • 工作温度-20℃~85℃
  • 待机功耗<5μA
  • BOM成本<¥15

第二步:初筛候选芯片

根据硬需求,从厂商官网或选型手册里挑出3~5款候选。这一步别纠结,先圈定范围。

第三步:对比关键参数

做个表格,把候选芯片的功耗、成本、性能、外设数量列出来。我习惯用Excel,一目了然。

第四步:打板验证

这一步不能省。选2~3款芯片做最小系统板,跑一下核心功能。我遇到过数据手册上写支持5V tolerant,实际接5V就烧IO的情况——不打板根本发现不了。

第五步:评估供货和生态

最后一步,查一下芯片的交期、是否有第二供应商、开发工具是否顺手。再好的芯片,买不到也是白搭。

总结一下: 选型没有标准答案。STM32稳、GD32省、ESP32带无线。根据你的产品定位,选最合适的那个。别盲目追新,也别一味省钱。平衡,才是王道。

嗯,这一章就到这里。下一章我们聊聊如何搭建开发环境,包括IDE配置、调试器选择、工程模板搭建——这些基础打好了,后面写代码才顺手。