本页目录
MCU 选型与开发生态
为什么需要选型
元器件学完了,电路会分析了,但实际做东西第一步是:选哪颗芯片?
选错 → 性能不够/太贵/缺货/生态差 → 项目夭折
主流 MCU 家族
STM32 (意法半导体) — 工业/通用王者
产品线 (按内核):
STM32F0/F1: Cortex-M0/M3, 入门 (48~72MHz)
STM32F4: Cortex-M4 + FPU + DSP, 性能级 (84~180MHz)
STM32F7: Cortex-M7, 高性能 (216MHz+)
STM32G0/G4: Cortex-M0+/M4, 低功耗主流
STM32H5/H7: Cortex-M33/M7, 旗舰 (250MHz+)
STM32L0/L4/L5: 超低功耗
STM32WB/WL: 无线 (BLE/LoRa)
STM32MP1: Cortex-A7 + M4, Linux + RTOS 双核
命名: STM32F407VGT6
F=系列 407=型号 V=封装(100pin) G=Flash(1MB) T=LQFP 6=温度
生态:
工具: STM32CubeMX (引脚配置+时钟树+代码生成)
IDE: STM32CubeIDE (免费), Keil, IAR
HAL/LL 库: 官方驱动
OpenOCD + ST-Link 调试
ESP32 (乐鑫) — WiFi/BLE 性价比之王
家族:
ESP32 (Xtensa LX6): 双核 240MHz, WiFi 4 + BLE 4.2
ESP32-S3: 单核 Xtensa LX7, WiFi 4 + BLE 5, AI加速
ESP32-C3: 单核 RISC-V, WiFi 4 + BLE 5, 低功耗
ESP32-C6: RISC-V, WiFi 6 + BLE 5.3 + Thread/Zigbee
ESP32-S2: 单核, WiFi only (无 BLE), USB OTG
特点:
✓ WiFi + BLE 集成 → 物联网首选
✓ 价格低 (ESP32-C3 模块 ~¥8)
✓ Arduino / ESP-IDF 双生态
✗ ADC 非线性的 (别用它做精密测量)
✗ 功耗不如 nRF 低
✗ 引脚少 (尤其 ESP32-C3, GPIO 不多)
选 ESP 的场景:
- 需要 WiFi 或 BLE
- 低成本 IoT
- 快速原型 (Arduino 生态)
- 智能家居 / 传感器节点
nRF52/nRF53 (Nordic) — 低功耗无线标杆
家族:
nRF52832: Cortex-M4F, BLE 5.0 (经典)
nRF52840: Cortex-M4F, BLE 5.0 + Thread/Zigbee + USB
nRF52833: 52840 缩水版 (少了 USB, Flash 小)
nRF5340: 双核 M33 (app+network), BLE 5.4 + Thread + LE Audio
nRF52810: 入门 BLE
特点:
✓ 功耗极低 (BLE 连接下 μA 级)
✓ 射频性能好
✓ Zephyr RTOS 原生支持
✗ 贵 (比 ESP32 贵 2-3x)
✗ 无 WiFi (只有 BLE/Thread/Zigbee)
✗ 学习曲线陡 (Zephyr/nRF Connect SDK)
选 nRF 的场景:
- 电池供电 BLE 设备 (运行数月~年)
- 需要 Thread/Zigbee + BLE
- 对功耗有严格要求
- 产品级 (不是原型)
RP2040 (树莓派) — 双核 PIO 黑马
规格:
双核 Cortex-M0+ @133MHz
264KB SRAM (很大!)
无内置 Flash (外挂 QSPI, 最大 16MB)
PIO (可编程 IO): 8 个状态机, 可模拟任意协议!
~$1 零售价
特点:
✓ 极便宜
✓ PIO 超灵活 (VGA 输出 / DVI / 自定义协议)
✓ 文档和社区极好
✓ 大 SRAM
✗ 无 WiFi/BLE (需外挂)
✗ 无内置 Flash (增加 BOM)
✗ M0+ 性能一般
✗ 无 DAC, ADC 一般
选 RP2040 的场景:
- 需要 I/O 灵活性 (PIO 模拟各种协议)
- 低成本大批量
- 教育/教学
- 与 Raspberry Pi 生态结合
ATmega / ATtiny (Microchip) — Arduino 的魂
ATmega328P: Arduino Uno 心脏, 8bit AVR @16MHz
ATmega32U4: 带 USB, Arduino Leonardo/Micro
ATtiny85: 8pin, 极小项目
特点:
✓ Arduino 生态 (无数库和教程)
✓ 5V 容忍 (3.3V 时代的一股清流)
✓ 简单, 上手零门槛
✗ 极弱 (8bit, 16MHz, 2KB RAM)
✗ 贵 (对于性能而言)
现在的定位: 极简单项目 / 5V 系统 / 教学
实际项目: 基本被 ESP32/STM32/RP2040 取代
选型决策树
开发板推荐
| 芯片 | 开发板 | 价格 | 调试器 |
|---|---|---|---|
| STM32F4 | STM32F407G-DISC1 | ~$25 | 板载 ST-Link |
| STM32F1 | Blue Pill (STM32F103C8T6) | ~$2 | 需要 ST-Link |
| STM32G0 | Nucleo-G0B1RE | ~$15 | 板载 ST-Link |
| ESP32 | ESP32-DevKitC / NodeMCU | ~$5 | 内置 USB-UART |
| ESP32-C3 | ESP32-C3-DevKitM-1 | ~$8 | 内置 USB-JTAG |
| nRF52840 | nRF52840-DK | ~$40 | 板载 J-Link |
| nRF52840 | Seeed XIAO nRF52840 | ~$10 | 内置 |
| RP2040 | Raspberry Pi Pico | ~$4 | 需要调试器或 USB 拖放 |
| ATmega | Arduino Uno R3 | ~$25 | 内置 bootloader |
工具链速查
| 芯片 | IDE | 调试 | 烧录 |
|---|---|---|---|
| STM32 | STM32CubeIDE / PlatformIO | ST-Link + OpenOCD | ST-Link / DFU |
| ESP32 | PlatformIO / Arduino / ESP-IDF | 内置 USB-JTAG (C3/S3) | USB UART |
| nRF52 | VS Code + nRF Connect | J-Link / DAP-Link | J-Link / DFU |
| RP2040 | VS Code + Pico SDK | Picoprobe / USB拖放 | USB 拖放 |
| ATmega | Arduino IDE / PlatformIO | 需要调试器 | USB bootloader |
建议入门路线
关键词: STM32, ESP32, nRF52, RP2040, ATmega, Arduino, Cortex-M, RISC-V, 选型, 开发板