最近碰上个烦心事,想请教下各位同行。我们一款消费电子产品用的STM32F103C8T6,产线批量烧录程序时,大概有3%左右的板子ISP烧录失败,用的是串口ISP方式,CH340G转串口,波特率115200。现象是烧录软件提示“无法识别芯片”或者烧到一半报错,重试一两次有时能过有时还是不行,换块板子就好了,但坏的板子拿回来单独烧又经常是好的,很邪门。
这个问题已经折腾我们快两周了,产线良率上不去,老板天天催,做硬件的同事说电路没问题,让我先查烧录工装和线材。我已经换了USB线、换了烧录夹具、降了波特率到57600,稍微好一点但没根治。也试过在BOOT0加下拉电阻、复位脚加电容,效果不明显。
现在怀疑几个方向:一是产线工装接触电阻不稳,二是CH340G批次问题,三是STM32本身翻新片或者电源上电时序问题。但没实锤,不敢乱换料。有没有遇到过类似情况的老哥?你们当时怎么定位的?用什么工具抓的波形?求指点,感激不尽!
先别急着怀疑芯片,3%的偶发失败多半是BOOT0/复位时序和串口电气的问题。排查三步:1)看规格书第3页确认BOOT0在复位释放瞬间必须稳定为1,你们CH340G的DTR/RTS如果没接成标准ISP时序,改用一键下载电路或手动按住复位再点烧录,成功率能立刻对比出来;2)串口线尽量短,TX/RX加33~100Ω串阻并就近并小电容,115200下地弹和边沿过冲很容易让握手失败;3)电源用示波器看烧录瞬间VDD是否跌到2.7V以下,产线夹具接触电阻和供电纹波最坑。先把“单独烧就好、夹具上就挂”这个差异坐实,方向就明确了。