关于使用SWD下载时无法检测到STM32芯片问题的解决方案总结

一、问题定位

1、SWD线序以及连接线本身通断的问题

2、Jlink/Xlink下载器本身的问题/JLink驱动安装问题

注意Jlink/XLink上的指示灯状态以及插入Jlink后keil是否有报错

3、BOOT引脚 / RST复位引脚的电平状态

正常的最小系统配置为:BOOT0和BOOT1引脚为低电平;RST复位引脚为高电平,复位按键按下为低电平。

4、最小系统的供电稳定性问题

正常最小系统供电为3.3V,典型值为3.23V-3.25V左右

5、芯片自锁(下载程序后自锁 / 误操作后自锁)

STM32单片机一般的连接方式是主闪存存储器flash启动模式,即BOOT0为0,这样在用JTAG或SWD写进程序时,如果该程序工程中芯片选型不正确或着程序中复用了JTAG或SW复用引脚导致程序执行后出现启动配置错误或者调试引脚被占用而引起的芯片锁死或Jlnk连接不上的问题
在这里插入图片描述
在这里插入图片描述

时钟配置问题:时钟频率设置太高,配置超出芯片主频工作范围,导致单片机自锁

程序跑飞:无限复位,无法正常启动

电源问题:供电电压不稳,STM32内部存在保护检测,同样会进行芯片的自锁

6、芯片损坏

芯片焊接问题(虚焊、粘连)导致的芯片短路烧坏;

芯片拆卸温度过高导致内部烧坏;

芯片引脚碰歪/翘起/缺失等导致功能异常

芯片引脚有大电流灌入导致芯片烧坏

二、解决方案(自查步骤)

1、检查下载线线序以及是否有断路

2、检查Jlink/XLINK是否完好,可以用其给其他正常工作的板子下载程序来验证其本身是否完好,也可以验证Keil配置以及驱动的情况

3、检查程序本身和Cubemx等的配置是否正常(可以下载到同芯片的正常板子上验证),若下到别的板上也导致无法识别芯片则跳转第6步进行芯片解锁

4、检查焊接看芯片和其外围电路是否有虚焊以及粘连的情况;用万用表检测供电线路/BOOT线路/RST线路是否有短路/断路的情况

5、重新连接上电后观察Jlnk/Xlink指示灯以及板子上的指示灯,用万用表检测BOOT引脚、RST引脚、以及SWD的四条线的电平情况看是否正常

6、尝试用Flymcu进行擦除解锁

注意需要用USART1,操作步骤为:

用CH340连好待擦除板上的串口1(USART1)注意线序(VGRT),点搜索串口,设置波特率bps在76800,然后拉高BOOT0(用杜邦线在接在3.3V上)点击擦除芯片,按下板子上的RST按键(拉低RST)检测连接到芯片等待一会儿即可擦除

若无法连接到芯片(显示芯片连接超时)检查线序;检查串口是否正常;检查bps和其他配置是否正确;检查BOOT0 / RST是否有效拉高 / 拉低。
在这里插入图片描述

7、若无法用flymcu解锁,可能芯片烧坏了或者本身板子有bug,可以将芯片拆卸换至确定正常的板子,如核心板/最小系统板上来测试。

版权声明:本文为CSDN博主「Apricity0877」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_47060525/article/details/117289385

生成海报
点赞 0

Apricity0877

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

编码器的使用

首先来看一下增量式编码器的输出信号和它的信号倍频技术。增量式编码器输出的脉冲波形信号形式常见的有两种: 一种是占空比50%的方波,通道A和B相位差为90°; 另一种则是正弦波这类模拟信号&#xff0c