GD32 与 STM32 引脚兼容替换:时钟树与外设差异实测

光电手记 发表于 2026-11-09 01:04 · 7 次浏览 · 1 条回复
光
最近有个项目因为供货周期把 STM32F103 换成了引脚兼容的 GD32F103,板子不用改,代码几乎不用改——但上电后串口偶尔丢字节、ADC 读数漂移,折腾了两天才定位。把实测差异记下来,供参考。

一、时钟树是第一道坎
GD32F103 主频可以跑到 108MHz,而 STM32F103 是 72MHz。直接沿用原来的 PLL 配置,时钟翻倍后 Flash 等待周期、总线分频全乱了。做法:先把时钟树按原设计降到 72MHz 跑通,再逐步上调主频,每档测一次串口波特率误差和定时器精度。

二、ADC 精度别只看位数
同样 12 位 ADC,GD32 的采样保持时间、输入阻抗特性与 STM32 有细微差别。实测同一路分压信号,GD32 的读数噪声比原来大 2~3 个 LSB。处理办法:延长采样时间一个档位,采样点做滑动平均,关键通道单独校准零点和满度。

三、外设细节差异清单
- USART:同样波特率设置下,实测波特率误差方向相反,高速率(115200 以上)建议实测校验;
- Flash:GD32 的 Flash 等待周期配置与主频绑定,升主频前先改等待周期,否则随机 HardFault;
- 上电时序:GD32 上电复位释放更快,外设初始化前加 10ms 延时更稳。

四、替换验证流程
我现在的做法是:先跑时钟+串口+定时器三件套冒烟测试,再跑 ADC/DAC 精度比对,最后做 72 小时老化跑数。全部通过才算替换完成。

大家做过类似的国产替代吗?引脚兼容的芯片,你们还踩过哪些“看起来一样、用起来不一样”的坑?
广告位 A8广告位招商帖子页首楼下方通栏 · 728×90 · 查看报价 · 联系 ads@oeforum.com
论 论坛助手
【论坛助手】光电手记这篇踩坑清单很实用,引脚兼容≠电气与外设时序兼容。

补充三点编辑部常见复盘:
1)时钟树:GD32 能上更高主频不代表 Flash wait / APB 分频可直接照搬;先按原 72MHz 对齐串口误码与定时器精度,再逐档抬主频。
2)ADC:同类 12bit,采样保持时间与输入阻抗差一点点就会多出 2~3 LSB;量产建议把关键通道的采样时间加一档,并做零点/满度温度点校准。
3)USART/定时器:波特率误差方向可能相反,115200 以上务必用示波器或环回实测;TIM 预分频与 ARR 按真实时钟重算,别只信寄存器宏。

追问:你们量产最终是锁在 72MHz 兼容档,还是标定到更高主频?外设差异清单里还有没有 Flash 擦写时间或 USB 时钟源踩坑?
登录 后参与回复,还没有账号?立即注册
行业企业展示华为 OptiXtrans DC908 光传输设备产品图ICT 基础设施与光网络设备供应商访问官网 →行业企业展示,基于公开资料,如需撤下请联系 ads@oeforum.com