STM32的JTAG和SWD模式

STM32的JTAG和SWD模式的区别

一:JTAG
JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如ARM、DSP、FPGA器件等。标准的JTAG接口是4线:TMS、 TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。相关JTAG引脚的定义为:

TMS:模式选择,TMS用来设置JTAG接口处于某种特定的测试模式;
TCK:时钟输入;
TDI:数据输入,数据通过TDI引脚输入JTAG接口;
TDO:数据输出,数据通过TDO引脚从JTAG接口输出;

二:SWD

串行调试(Serial Wire Debug),是一种和JTAG不同的调试模式,使用的调试协议也不一样,所以最直接的体现在调试接口上,与JTAG的20个引脚相比,SWD只需要4个(或者5个)引脚,结构简单,但是使用范围没有JTAG广泛,主流调试器上也是后来才加的SWD调试模式。

SWD 硬件接口分为三种类型:

JTAGV6 需要的硬件接口为: GND, RST, SWDIO, SWDCLK;
JTAGV7 需要的硬件接口为: GND, RST, SWDIO, SWDCLK,相对V6, 其速度有了明显的提高,速度是 JTAGV6 的 6 倍。 
JTAGV8 需要的硬件接口为: VCC, GND, RST, SWDIO, SWDCLK,速度可以到 10M。

只有JTAGV8 需要 5 个引脚, 即多了一个VCC引脚,其好处是: 仿真器对目标板子的仿真需要用到 RST 引脚, 使用仿真器内部的 VCC 作这个功能其实并不是非常美妙。 因此,JTAGV8 选择了只和目标板共 GND, 但不共 VCC。 因此我觉得这种模式最合理, 当然通常情况下仿真器和目标板共 GND 和 VCC 是没有错的。

SWD和传统的调试方式区别

SWD模式比JTAG在高速模式下面更加可靠。在大数据量的情况下面JTAG下载程序会失败,但是SWD发生的几率会小很多。基本使用JTAG仿真模式的情况下是可以直接使用SWD模式的,只要你的仿真器支持,所以推荐大家使用这个模式。
正常的JTAG需要20管脚,而J-Link 的SWD只需要2根线(PA13/JTMS/SWDIO、PA14/JTCK/SWCLK)就够了(加上电源线也就4根),这样就节省了3个I/O口(PA15/JTDI、PB3/JTDO、PB4/JNTRST)为其它所用,并且可节省一部分板子的空间(只需4个口就可以了)。
JTAG的使用范围比SWD广泛,ARM、DSP、FPGA器件等都支持JTAG协议。

JLink仿真器

J-Link是德国SEGGER公司推出基于JTAG的仿真器。简单地说,是给一个JTAG协议转换盒,即一个小型USB到JTAG的转换盒,其连接到计算机用的是USB接口,而到目标板内部用的还是jtag协议。它完成了一个从软件到硬件转换的工作。

JLINK是一个通用的开发工具,可以用于KEIL、IAR、ADS 等平台。速度,效率,功能都很好,据说是众多仿真器里最强悍的。

ST-Link仿真器

ST-LINK是专门针对意法半导体STM8和STM32系列芯片的仿真器。ST-LINK /V2指定的SWIM标准接口和JTAG / SWD标准接口,其主要功能有:

编程功能:可烧写FLASH ROM、EEPROM、AFR等;
仿真功能:支持全速运行、单步调试、断点调试等各种调试方法,可查看IO状态,变量数据等;
仿真性能:采用USB2.0接口进行仿真调试,单步调试,断点调试,反应速度快;
编程性能:采用USB2.0接口,进行SWIM / JTAG / SWD下载,下载速度快;

JATG和SWD引脚定义:
在这里插入图片描述
一:当采用JTAG模式下载时,用到3、5、7、9和VCC及某个地引脚。
二:当采用SWD模式时,因为SWDIO和JTAG模式下TMS复用,所以用到7脚;同理,SWCLK和TCLK复用,要用到9脚。再加上VCC和地,所以会用到1、7、9和某个地引脚。至于第15脚可接可不接,可根据实际情况来决定,建议还是接上!

在这里插入图片描述 JTAG连接STM32原理图,其它四个引脚都接上拉,只有JTCK是下拉。RESET接单片机NRST引脚。

参考:http://news.eeworld.com.cn/mcu/2018/ic-news101741867.html
https://blog.csdn.net/fengcq126/article/details/45083153
https://www.sohu.com/a/212933307_669755

  • 17
    点赞
  • 106
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32 JTAG是一种调试接口,用于与STM32单片机进行调试和编程。在调试仿真中,可以使用JTAG的Cortex-M3方式,也可以使用SWD方式。JTAG方式需要20个管脚,而SWD方式只需要2个管脚,因此在对板子空间要求严格、I/O口资源紧张的项目中,SWD方式更加有利。\[1\] SWD模式相比JTAG模式在高速模式下更加可靠,特别是在大数据量的情况下,JTAG下载程序可能会失败,而SWD的失败几率较小。因此,推荐在使用JTAG仿真模式的情况下直接使用SWD模式,前提是你的仿真器支持。\[2\] 在STM32单片机中,JTDO和JNTRST是JTAG引脚复用,一般最好使用SW-DP调试端口,只需要JTMS/SWDIO和JTCK/SWCLK这两个引脚,这样可以节省有限的IO资源。但是在复位后,JTAG和SW默认同时开启,即所有的JTAG端口都被系统保留,软件设置GPIO是不起作用的。要释放多余的JTAG端口,需要设置复用重映射和调试I/O配置寄存器(AFIO_MAPR),具体的设置可以参考ST的文档。\[3\] #### 引用[.reference_title] - *1* *2* [STM32SWD调试模式](https://blog.csdn.net/wabil/article/details/50476986)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [STM32JTAG模式和SW模式](https://blog.csdn.net/Qinlong_Stm32/article/details/127097250)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值