STM32的SWD方式下载程序总结

demi的头像

STM32程序下载的方式有多种,分为USB、串口、JTAG、SWD几种,其中最主要的方式是
①串口
②JTAG
③SWD

现在系列开发板,都直接提供USB下载串口,标准20口的JTAG(其中集合了JTAG与SWD),但是在真正的项目中并不会提供如此便捷的外接口给我们,而SWD节省接口资源下载调试速度也快,因此用的比较多,所以先对SWD如何下载程序来做个讲解:

1、SWD下载程序:

如下是标准20口的JTAG电路原理图:


JTAG下载程序需要的基本接口线:

JTRST(TRST)(Test Reset Input):测试复位(可选项)

JTDI(TDI)(Test Data Input):测试数据输入(必选项)

JTMS(TMS)(Test Mode Selection Input):测试模式选择(必选项)(用来设置JTAG接口处于某种特定的测试模式)

JTCK(TCK)(Test Clock Input):测试时钟输入(必选项)

JTDO(TDO)(Test Data Out):测试数据输出(必选项)

外加基本的VCC(必选项)以及GED都要接上,才能进行JTAG方式的程序下载以及调试,因此需要占用的IO接口资源5个口,相对来讲,比较占用接口资源。以上加粗的必选项,都是需要接上的,不然无法正常下载以及调试,GED根据硬件不同,可能有所区别,本人的需要接上,不然STLink无法识别。

SWD下载程序需要的基本接口:

SWDIO:测试数据输入输出

SWCLK:测试时钟输入

外加基本的VCC与GED线。

SWD与JTAG比较:

从以上可以看出,SWD共只需要4根线,其中占用2个接口资源;JTAG共需要6根或7根线,其中占4或5个接口资源,因此SWD更节省资源,因此设计时,空间也能做到更小,并且两者的调试效果也是一样的,因此推荐使用SWD方式。

SWD模式比JTAG在高速模式下面更加可靠。在大数据量的情况下面JTAG下载程序会失败,但是SWD发生的几率会小很多。

那么JTAG为什么还是存在的呢?其一,SWD比JTAG后推出,更新更快,取代有一个过程;其二,有些较早的硬件只支持JTAG。

其余方式欢迎补充

版权声明:本文为CSDN博主「不爱学习的浪子」的原创文章,
遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/f394028400/java/article/details/90770157