打印
[开发工具]

关于STM32调试端口SWD的说明

[复制链接]
127|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一、为什么要去关注它
调试端口SWD是一个司空见惯的端口,按照前人经验布置外围电路,使用JLINK才用SWD接口调试,一般都会运行好好的。但是如果有工程师不按照这样设计,恰巧又有些特殊情况出现呢。

我就是遇到这种情况才去想着关注它。

二、测试波形收集数据
1)电路排查,果然没有按照常规SWD接口配置上拉电阻(SWDIO SWDCLK 均配置10k上拉电阻)。实际电路,SWDIO SWDCLK 均串接10k电阻。测试波形,发现波形不规整(波形未保存,这个可能我板子问题关键  画重点)。

2)查datasheet,关于SWDIO端口建议必须上拉100K电阻(10K也没问题)。有实验数据和datasheet验证,果断通知硬件工程师飞线。



3)然而等待自己的还是异常,崩溃ing。测试波形,还是异常。SWDCLK波形规整;SWDIO波形异常,如下图。



三、正常的SWD波形是什么样子的
排查了各种因素外,SWDIO波形依然如故,想着正常的SWD波形是什么样子呢。去测试了好几款不同项目的板子,发现所有的SWDIO波形都一样,都和上图一样异常。但是这些板子,可都是正常的,这个确定的。

询问好多工程师,有没有测试SWDIO波形,得到的答复都是:没有关注。。。。。。。

上网搜索,发现一篇很有用的文章,里面提到的一句话,让我眼前一亮。

STM32单片机的SWD下载口为什么要加上下拉电阻_swdio和swclk是什么-CSDN博客



对应英文如下



总结:SWDIO端口因为是双向口,会被主机驱动(JLINK)和目标驱动(MCU),但是在转换时间(一位时间)不受两者驱动,这一位时间内波形应该比较特殊。

四、验证想法
示波器抓取SWDIO波形:果然如预期一样,SWDIO“异常”波形均知占一位时间,截取正常波形中一小段,如下图。



后续:
证明SWD波形没有问题,不再怀疑这一方面,继续调试。

尝试关闭外部晶振后,调试异常消失,接下来继续排查问题。

--------------------------------------------排查结果------------------------------

1)测量板子上晶振为16MHz,原理图上为8MHz晶振

2)cubemx按照8MHz晶振去设计,各个外设均配置为最大参数(如下图);实际使用16MHz,导致超频,出现调试异常

3)更换为8MHz晶振后,调试正常



————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_43923755/article/details/144899752

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

30

帖子

0

粉丝