1、关于SWD
SWD是MCU下载程序和调试的端口,分为四线制和五线制
四线制:VCC GND SWDIO SWCKL
五线制:VCC GND SWDIO SWCLK RESET
四线制没有留出RESET引脚,没有RESET引脚,下载完程序,会自动运行。SWDIO是双向数据线,实现数据的输入和输出。SWCLK是 时钟信号线。
2、SWD电路设计
在芯片硬件开发指南中给出了SWD的推荐电路,由于考虑到在实际应用中人体的手是带有静电的,当触摸到端口时可能会产生一个相对的大电流进入电路造成芯片损坏,所以在信号线之间串联一个电阻,增强抗干扰能力。该电阻的取值大小看整个电路中的负载能力,负载少的选几十Ω即可,负载多的话可以选100欧姆,这里可以简单理解为阻抗匹配。在我的电路设计中负载只有六十几毫安,电阻选用30Ω/0805封装。如果只是简单设计的话并不需要纠结于选用多大的电阻,只要不是特别大到影响芯片正常工作即可。
注意:上下拉电阻要放在靠近debug口的那一侧
3、为什么要加上下拉电阻
1、增强驱动
debug口驱动能力较小,加上拉电阻可以增强驱动,这也是为什么要放在靠近debug口一侧的原因。
2、保持稳定状态
通信不活跃时,信号线如果没有外部信号驱动,如果没有上下拉电阻,其状态可能会处于未知状态(浮空)。添加上下拉电阻可以使信号线在不使用时保持稳定的低电平状态。防止线路在没有明确驱动时因外部干扰等原因而随机翻转影响通讯。
4、能不能不加上下拉电阻
视情况而定,以上的设计方法只是出于实际应用中的复杂情况考虑,在一些芯片的简单设计中不加对芯片的使用也是不会有太大的影响的,可以不加,但加了更好。
最主要还是要参考芯片设计手册,例如STM32中的SWCLK和SWDIO引脚在设计上内部通常带有弱上拉和下拉电阻,这意味着在某些情况下,不额外添加外部上下拉电阻也可以正常工作。但像N32WB03x 系列芯片它的设计手册明确指出要加上下拉电阻的就必须加。
原文链接:https://blog.csdn.net/weixin_66985242/article/details/140484315