前几天使用 WCH-Link 对 CH32V203C8T6 进行刷机的时候, 突然发现刷机失败, 提示如下:
反复排查, 排除编程器, 接线方式问题还是无法解决问题. 最终怀疑是单片机本身的引导有问题, 于是想通过清空 boot 引导进行修复.
查资料后, 发现 WCH-LINK 无法进行清除操作, 需要 WCH-LINKE! 于是从某宝上花了30多元购买了 LINK-E.
LINK-E 到手后, 果然可以进行清零, 刷机操作, 但是奇怪的是清零后的开发板仍然无法在 LINK 识别.
由于 LINKE 使用了不同的杜邦线, 于是怀疑是不是线的问题. 交换排线后果然 LINK 也可以正常识别芯片了!
然而用万用表测量有问题的排线后发现, 并不存在接触不良或者电阻偏大的情况,
(注:有问题的排线约 25cm 仅比没有问题的排线长 3cm左右. )
鬼使神差的我决定交换导线的顺序, 发现交叉电源和信号线是可以正常识别的, 具体接线如下:
原排线顺序: 红黑白蓝 -> vcc gnd swio swlk 修改为 红白黑蓝 -> vcc gnd swio swlk
根据故障揣测原理, 可能是导线太长, 信号线和电源线造成了窜扰. 解决方法有两个:
更换更短的排线或者更换排线的顺序, 对信号线和电源线进行交叉.
P.S. 在论坛上搜到了不少类似的问题, 但是都没有下文或者是错误的回答. 所以发本帖希望对大家有所帮助.