766 字
4 分钟
CH32V103上电故障debug记录

问题描述#

最近在调试开发的一个基于CH32V103的 RS485 IO拓展器项目,发现当重复上电时,程序会跑飞;但当手动复位后,程序能够正常运行,并且在间隔超过10分钟后重新上电后程序也能正常运行。

核心部分原理图如下: 核心部分原理图

注:R39 和 R40 为调试后添加的电阻。

该板的VCC电压为5V,输入电压为9-24V,兼容AC/DC输入(使用整流桥和大滤波电容)。

问题调试#

根据现象初步怀疑是因为电源部分的问题,导致在重复上电时,CH32V103没有正常复位,从而导致程序跑飞。

使用万用表打表测量后发现,下电后,VCC电压从5V开始衰减,但下降到0.18V后,电压不再剧烈变化,开始缓慢衰减,10分钟后电压才降到0.1V下。

将板子拆卸下来后,使用可调电源供电12V,VCC电压稳定5V,程序能够正常运行;此时关闭可调电源,VCC电压测量为0.006V,此时上电程序依旧可以正常工作。此时,吾直接将可调电源正极断开,VCC电压测量为0.18V,此时再连接可调电源正极,VCC电压测量为5V,程序跑飞。重复实验后稳定复现,因此吾怀疑是因为电容的残留电压导致CH32V103内部部分复位的电路没有正常触发,从而导致程序跑飞。

为了验证此假设,吾在R39 和 R40 位置添加了一个2K欧姆的电阻,再次测试,发现程序能够正常运行,且此时测量VCC上电电压为5V,下电电压低于0.05V。重复实验后稳定复现,与预期相符。

结论分析#

根据以上测试,吾确认是因为电容的残留电压导致CH32V103内部部分复位的电路没有正常触发,从而导致程序跑飞,CH32V1030.18V下实际上不能稳定下电,具体稳定下电电压还需要进一步实验。 这个板子上吾以为电源灯可以稳定卸电让MCU正常下电,看来CH32V103的低电压要求还挺高。 这个问题吾之前在使用相近电源电路的 STM32G070 板子上没遇到,也许是 ST 那边稳定下电电压高一些。

至此,问题解决,加入R39和R40两个电阻给电容卸电即可。

幽灵电压#

至于这个0.18V是从哪来的,吾实际上是单独先在VCC的电解电容上接了一个2K电阻,给VCC的电解电容卸电,但此时测量依旧能测量到0.18V,所以吾怀疑是不是前级 DCDC TPS5430DDAR 漏电导致的,所以此时吾给前级的输入滤波电解电容也接了一个2K电阻,再次测试,此时下电后电压低于0.05V,还真就是DCDC漏电漏的,TI不愧是漏电大户(X。

CH32V103上电故障debug记录
https://korostudio.cn/posts/ch32v103-power-on-failure-debugging-record
作者
Koro(科洛)
发布于
2025-10-31
许可协议
CC BY-NC-SA 4.0