主题
CH32 常用型号参考
沁恒(WCH)的 CH32 是国产 MCU 里接口最狠的一条线:自研 RISC-V 内核(青稞),把 USB、CAN、以太网、USB PD 这些"外设价值高"的东西塞进 ¥1~¥10 的芯片里。代价是内核和工具链自成一套,跟 ARM 生态不通用。
参考价是批量 1k+ 的量级(人民币,2025–2026 年市场),波动大,仅用于判断档位。
型号速查
| 型号 | 内核/主频 | Flash | SRAM | USB | CAN / ETH | 封装 | 其他关键点 | 参考价 |
|---|---|---|---|---|---|---|---|---|
| CH32V003 | 青稞 RISC-V2A / 48 MHz | 17 KB | 2 KB | — | — | SOP8、SOP16、TSSOP20、QFN20 | 18 IO、10bit ADC、运放比较器、单线调试 | ≈¥0.5 |
| CH32V103 | RISC-V3A / 80 MHz | 64 KB | 20 KB | USB 2.0 FS 主机/设备 | — | LQFP64、LQFP48、QFN48 | 16 路 12bit ADC、16 路 TouchKey、3 USART、两线调试 | ≈¥1.5–2.5 |
| CH32V203 | RISC-V4B / 144 MHz | 224 KB(64 KB 零等待) | 20 KB | 1×FS 主机/设备 + 1×FS 设备 | CAN 2.0B | TSSOP20、QFN20/28/32、QSOP28、LQFP32/48/64 | 10 通道 ADC、10 路 TouchKey、待机 0.5 µA、4 USART | ≈¥1.8–3 |
| CH32V208 | RISC-V4C / 144 MHz | 480 KB(128 KB 零等待) | 64 KB | USB FS 主机/设备 + 设备 | CAN 2.0B + 10M 以太网 MAC+PHY | LQFP64、QFN68/48/28 | BLE 5.3、16 通道 ADC、16 路 TouchKey | ≈¥4–6 |
| CH32V307 | RISC-V4F / 144 MHz | 480 KB(256 KB 零等待) | 64 KB | USB FS OTG + USB HS 480 Mbps(内置 PHY) | 2×CAN 2.0B + 以太网控制器(内置 10M PHY) | LQFP64、LQFP100 | 硬件浮点、SDIO、FSMC、DVP 摄像头、2×12bit DAC、16 通道 ADC、80 IO | ≈¥6–10 |
| CH32X035 | RISC-V4C / 48 MHz | 65 KB | 20 KB | USB FS + USB PD/Type-C 控制器 | — | QFN12、QFN20、QSOP28、QFN28、LQFP48/64 | PIOC 可编程 I/O、2~5.5 V、多路运放/比较器、TouchKey | ≈¥1.5–2.5 |
| CH32L103 | RISC-V4C / 96 MHz | 64 KB | 20 KB | USB FS + USB PD/Type-C | CAN(部分型号支持 CAN FD) | TSSOP20、QFN20/32、QSOP28、LQFP48 | 1.8~3.6 V 低功耗、4 USART、2 I2C、2 SPI、10 通道 ADC | ≈¥2–3 |
| CH32F103 | Cortex-M3 / 72 MHz | 64 KB | 20 KB | 1×FS 主机/设备 + 1×FS 设备 | CAN 2.0B | LQFP64、LQFP48、QFN48 | 12bit ADC + 12bit DAC、16 路 TouchKey、3 USART、SWD 调试 | ≈¥2–4 |
数据来源:沁恒官方产品页(CH32V003、CH32V203、CH32V307、CH32X035),"产品特点"原文摘录。
三条产品线怎么分
1. 极致低价:CH32V003
- 48 MHz、2 KB SRAM、17 KB Flash(官方写 17K,不是 16K)、18 IO、SOP8 起。
- 只有 10 bit ADC、1 路 USART/SPI/I2C,没有 USB/CAN。
- 内核是 RV32EC(压缩指令 + 仅 16 个通用寄存器),没有硬件乘除法,乘除走软件库,算力别按 48 MHz 估。
- 烧录/调试走单线 SDI,必须用 WCH-Link 系列(新版 WCH-LinkE 同时支持 RISC-V 与 ARM 模式)。
- 生态:官方 MRS + 社区
ch32fun(GCC/Makefile,含 Arduino 支持),玩小东西最合适。
2. 通用主力:V103 / V203
- V103 是"老款 64K/20K + USB FS",5V 供电,外设像 STM32F103。
- V203 是现在的主流:144 MHz 零等待、224 KB Flash、双 USB(一个 OTG + 一个纯设备)、CAN、TSSOP20 起封装,待机 0.5 µA。要 USB + CAN 又不想上 30 块钱的 ARM,基本就是它。
3. 接口怪物:V208 / V307
- V208 = V307 的无线版:480 KB Flash、64 KB SRAM、BLE 5.3、10M 以太网(MAC+PHY 都在片内),适合做小型网关/采集节点。
- V307 = 一片顶一套板:USB HS 480 Mbps(内置 PHY,不用外挂 ULPI)、以太网、2 路 CAN、SDIO、FSMC、DVP 摄像头、硬件浮点。做 USB 高速采集、简易网络设备、视频前端很划算。
- 注意官方对 V307 以太网的表述是"千兆以太网控制器 ETH(内置 10M PHY)":MAC 能力与片内 PHY 速率不是一回事,要跑 100M 得外接 PHY。
4. 特色型:X035 / L103 / F103
- X035:内置 USB PD/Type-C 控制器 + PIOC(可编程 I/O 控制器,能硬解协议),做 PD 诱骗器、Type-C 小设备、无线充协议分析最省事。
- L103:1.8–3.6 V 低功耗版 X035,96 MHz,带 USB + PD + CAN(部分型号 CAN FD)。
- F103:Cortex-M3 72 MHz,外设和引脚布局对标 STM32F103,适合"代码是 HAL 写的、想换便宜料"的场景;库仍是沁恒自己的,不是 ST 的 HAL。
工具链
| 用途 | 方案 |
|---|---|
| 官方 IDE | MounRiver Studio(MRS),Eclipse 内核,内置 GCC 工具链、烧录、调试;RISC-V 与 ARM 版本分开装 |
| 编译链 | MRS 自带 riscv-none-embed-gcc;也可用上游 GCC + Makefile |
| 烧录/调试 | WCH-LinkE(USB 转 SDI 单线 / SWD 两线),支持脱机烧录;老 WCH-Link 需刷固件切换 RISC-V/ARM 模式 |
| 社区方案 | ch32fun / ch32v003fun(GCC + Makefile,V003 上用得很广)、PlatformIO 平台、Arduino core |
| 上位机 | 官方 WCHISPTool(串口/USB ISP 下载)、WCH-LinkUtility |
已知的坑
- CH32V003 没有硬件乘除法:
a*b、a/b都是库函数,中断里做乘除会显著拉长执行时间;对时间敏感的地方改用移位/查表。 - 单线 SDI 与 SWD 不通用:V003 只能用 SDI,WCH-LinkE 的输出模式要切换;用错模式表现为"识别到芯片但下载失败"。
- 零等待 Flash 有大小限制:V203 只有 64 KB、V307 只有 256 KB 是零等待区,超出部分带等待周期,跑 144 MHz 时要手动把热点函数挪进零等待区或 RAM。
- USB HS 只有 V305/V307 有,且内置 PHY 只支持 HS 设备/主机模式,别指望它当 ULPI 外设用。
- 以太网片内 PHY 只有 10M(V208/V307),要 100M 必须外部 PHY + RMII/MII。
- Arduino 生态成熟度不均:V003 的
ch32fun很成熟,V203/V307 更多还是官方 MRS 工程,跨平台例程少。
一句话选型
- ¥0.5 做个小控制 → CH32V003
- USB + CAN 的通用板 → CH32V203
- 要 BLE 或 10M 以太网 → CH32V208
- 要 USB 高速 / 摄像头 / 大 Flash → CH32V307
- 做 PD/Type-C 相关 → CH32X035 / CH32L103
- 想沿用 STM32F103 的板子 → CH32F103(代码要改库)