"pin-to-pin 兼容"这五个字,在不同厂商的官方口径里,根本不是一回事。
一、"pin 兼容"有四个层级,别当一个是非题
国产厂商的数据手册里,"兼容"这个词至少出现在四种完全不同的语境里:
A 类|官方发布替换对照表和迁移指南。 雅特力官网下载区挂着《AT32 与 Sxx32/Gx32 替换对照表》,应用手册栏里还有一份 MG0007——《从现有的 SXX32F103 器件迁移到 AT32F403A 器件所需的步骤》。这是本次核对中唯一一家把"从 ST 某型号迁移过来"写成正式文档的厂商。
B 类|官网方案文里给了措辞。 航顺官网的智能猫砂盆方案文写的是:HK32F103A"完全兼容国外 F103 系列芯片,支持代码无缝迁移"。措辞明确,但载体是方案文章,不是数据手册。
C 类|官方写了 Pin-to-Pin,但对象是自己家。 兆易官网的表述是原文可见的:**"GD32F303 向下 Pin-to-Pin 兼容 GD32F103"、"GD32F205/207 向下 Pin-to-Pin 兼容 105/107"。注意兼容对象——是 GD32 自家的前代系列,不是 STM32。厂商在自己的产品树里做向下兼容,是产品规划问题;渠道把这个词平移成"兼容 STM32",是另一回事。
D 类|官方压根不提。 极海 APM32F103 的产品页从系统参数讲到封装路线图,全篇没有出现 STM32 字样;它强调的是自己通过了 IEC 61508 / IEC 60730 功能安全认证,以及 APM32F103RCT7 这颗过了 AEC-Q100 Grade2。
把这四层当成同一个词用,是所有替代项目翻车的起点。
▴ 图1 pin 兼容的四个层级
二、六家分两桌:F1 档和 F4 档
下面这张图先把边界划清楚:引脚兼容解决的是"改不改板",不解决"改不改代码"。
▴ 图2 引脚兼容覆盖与不覆盖的部分
第一桌:对标 STM32F103 那一档(M3 / 72MHz 级存量盘)
| 厂商 | 系列 | 内核 | 主频 | Flash | SRAM |
|---|---|---|---|---|---|
| 兆易创新 | GD32F103 | Cortex-M3 | 108MHz | 16KB~3MB | 6KB~96KB |
| 雅特力 | AT32F403A | Cortex-M4 | 240MHz | 最高 1MB | 最高 224KB |
| 极海半导体 | APM32F103 | Cortex-M3 | 96MHz | 64~512KB | 20~128KB |
| 航顺芯片 | HK32F103 | Cortex-M3 | 120MHz | 512KB(+15KB info) | 64KB |
| 灵动微电子 | F01xx / F02xx / G01xx | Cortex-M0 | 96MHz | — | — |
| 国民技术 | N32G43x | Cortex-M4F | 128MHz | 128KB | 32KB |
这张表里最值得停一眼的是雅特力那一行的反差:AT32F403A 是 240MHz 的 M4,而对标对象是 72MHz 的 M3。 它不是"同档平替",是"上位替代"——性能比原设计高一大截,代价是你要重新走一遍验证。
第二桌:对标 STM32F407 那一档(M4 / 168MHz 级)
| 厂商 | 系列 | 内核 | 主频 | Flash / SRAM | 认证与备注 |
|---|---|---|---|---|---|
| 兆易创新 | GD32F405/407 | Cortex-M4 | 168MHz | 512KB~3MB / 192KB | 与 F403 相比软硬件不兼容 |
| 兆易创新 | GD32F450 / F470 | Cortex-M4 | 200MHz / 240MHz | 512KB~3MB / 256~768KB | F470 与 F450 软硬件完全兼容、主频 200→240MHz |
| 兆易创新 | GD32F425/427 | Cortex-M4 | 200MHz | 512KB~3MB / 256KB | 与 F405/407 软硬件完全兼容,主频 168→200MHz |
| 雅特力 | AT32F435 / AT32F437 | Cortex-M4F | — | — | 官网产品页未列主频(本次未核到) |
| 国民技术 | N32G45x | Cortex-M4F | — | 512KB / 144KB | 集成 10/100M 以太网、DVP |
| 国民技术 | N32A455 | Cortex-M4F | 144MHz | 512KB / 144KB | 已通过 AEC-Q100 |
| 灵动微电子 | F32xx / F52xx / F53xx / H54xx | M3 / Star-MC1 | 120 / 120 / 180 / 300MHz | — | F53xx 为 Star-MC1(兼容 M33) |
▴ 图3 六家分两桌主表
F4 档这一桌透露的信息是:国产厂商在这个档位已经不是在"抄一个 F407",而是在往上堆主频和内存。 兆易一路从 F405/407 的 168MHz 堆到 F470 的 240MHz,中间每一代都声明与上一代软硬件兼容——它跑的是自己的产品树节奏,不是 ST 的。
三、卡住的那四条进度条
真正让替代停在 80% 的,是下面四件事。它们不在引脚图上,全在数据手册的细节里。
进度条一:三个 12 位 ADC,不是一回事
"3 个 12 位 ADC"几乎是这一档的标配写法,但采样率和通道数各家差得远:
- 航顺 HK32F103:**3 个 12 位 ADC,最高 3Msps,共 25 路输入通道;支持双 ADC 模式,采样率最高 6Msps。雅特力 AT32F403A:**3 组 12 位 ADC,2Msps,16 通道。国民 N32G43x:**1 个 12 位 ADC,5Msps。极海 APM32F103:**3 个 12 位 ADC,21 通道(官网产品页未列采样率)。
通道数 25 路和 16 路、采样率 1Msps 和 5Msps,落在软件上的后果是一样的:采样窗口和转换时间要重算,DMA 搬运节奏要重算。 如果你的采样是靠"以前这么写就能跑"的经验值调出来的,换料后第一批采样数据大概率是歪的。
进度条二:Flash 零等待区,代码放错位置性能掉一截
这条最少有人讲,也最容易咬人。
兆易官网在 GD32F10x 系列特性里明确写了"前 256K Flash 零等待",GD32F30x 写的是"前 256K Flash 零等待",F4 系列则是"前 512K Flash 零等待"。也就是说,同一颗料号上,Flash 前一段和后一段的执行速度不是一回事。
雅特力把这层结构摊得更明白:AT32F403A 的数据栏里 Flash 分 ZW(零等待)和 NZW(非零等待) 两段,以 AT32F403AVGT7 为例,可以配成"ZW 256KB + NZW 768KB + RAM 96KB",也可以配成"ZW 128KB + NZW 896KB + RAM 224KB"——零等待区大小是可配置的,换配置等于换性能曲线。
控制算法、中断向量表、高频调用的那几个函数放哪一段,是会直接写进执行时间里的。
进度条三:库和工具链没有对位生态
ST 那套 SPL / HAL / LL 三代库加图形化配置工具的生态,国产这边没有直接对位物,各家走的是自建路线:
- 雅特力提供固件库 BSP,以及 Keil MDK、IAR EWARM、Segger 的 Pack。极海有《AN1080_APM32 工具链使用指南》。国民技术在 2026 年 1 月发布了 N32Cube 芯片配置与初始化代码生成工具,9 月又上线了 N32Studio。
这些工具在各自体系里是好用的,但**没有任何一个能替你把 CubeMX 工程一键搬过去。中间件(文件系统、网络栈、USB 主机栈)的移植工作量,得按周算。
进度条四:认证和温区,是逐颗料号的事
这一条最容易被"国产没有车规"或"国产都有车规"两种极端说法带偏。核对下来的事实是:认证是料号级的,不是厂商级的。
-
- 极海:过了 AEC-Q100 Grade2 的是
APM32F103RCT7
- 这一颗,不是整个 APM32F103 系列;系列层面拿到的是 IEC 61508 / IEC 60730 功能安全认证。国民技术:N32A455 产品页明确"已通过 AEC-Q100 车规认证";公司官网另有 2026 年获得 IEC 61508 SIL3、SIL2 功能安全证书的公告。灵动:车规栏里是 F01xxM(72MHz M0)和 F53xxM(150MHz Star-MC1),Grade1。
温区同理。兆易官网给 F1/F3/F4 系列标的是 -40~85℃,而雅特力 AT32F403A 和航顺 HK32F103 标的是 -40~105℃。差 20℃,在高温工况下就是能不能用的问题。
▴ 图4 卡住替代的四条进度条
四、哪些场景现在就别折腾
替代是经济账,不是情怀账。下面三类项目,换料的成本大概率大于收益:
深度绑定 ST 专属外设和中间件的项目。
已经在车规或医疗认证流程里的项目。
-
- 认证是料号级的,换料等于重走。除非新料的认证范围能覆盖你的整机认证,否则省下的 BOM 钱不够付认证费。
月用量小、BOM 占比低的产品。
- 换料验证要占用研发和可靠性测试的时间,量小的时候这笔账永远回不了本。
五、三问收口
第一问:你用的是 F1 档还是 F4 档?
F1 档是六家都坐得下的桌子,选择维度主要是渠道、交期和温区;F4 档要按外设清单逐项对,不是"有没有 168MHz"的问题。
第二问:你的代码里有多少 ST 私有成分?
用标准外设和通用协议栈的项目,替代成本低;深度依赖 CubeMX 生成代码和 ST 中间件的,先预留库移植的周数,再谈换料。
第三问:认证和温区的红线在哪?
消费和工控可以直接试;带认证要求的项目,先把新料的认证范围(哪颗料号、哪个 Grade、哪个温区)查清楚再动。
▴ 图5 三问收口
六、还有第三条路
如果"pin 兼容"这个前提本身就是约束,那也可以换个思路:不追求引脚不动,而是接受换封装换生态。我们之前写过一篇跨品牌迁移的实操坑,从 STM32H7 迁到瑞萨 RA8 的完整踩坑记录在这里:[[旧文链接-STM32H7迁RA8]]。
回到这张地图本身:国产替代的进度条走到 80%,剩下那 20% 不是技术问题,是验证成本问题。 先在新项目上换,老项目按需换——这比在存量盘上硬啃要现实得多。
关键词:STM32 国产替代 · GD32F103 · APM32F103 · pin-to-pin 兼容 · MCU 替代选型
182