STM32中使用J-Link仿真器选择JTAG模式和SWD模式的区别

1. J-Link

J-Link是SEGGER公司为支持仿真ARM内核芯片推出的JTAG/SWD仿真器。配合IAR EWAR,ADS,KEIL,WINARM,RealView等集成开发环境支持所有ARM7/ARM9/ARM11,Cortex M0/M1/M3/M4, Cortex A5/A8/A9等内核芯片的仿真,与IAR,Keil等编译环境无缝连接,操作方便、连接方便、简单易学,是学习开发ARM最好最实用的开发工具。

ARM芯片有两种调试模式,一种是JTAG,一种是SWD,二者在管脚上有复用。

2. JTAG调试模式

JTAG的全称是Joint Test Action Group (测试行动联合组织),它是由几家主要电子制造商发起制订的PCB 和IC 测试标准,主要应用于电路的边界扫描测试和可编程芯片的在线系统编程。
在这里插入图片描述
JTAG调试接口必须使用VCC、GND电源信号,以及TMS、TCK、TDI、TDO四根调试信号。

以下为各个引脚的说明:

  • TMS——测试模式选择。TMS用来设置JTAG口处于某种特定的测试模式,用于控制TAP状态机。必须上拉。

  • TCK——测试时钟输入。TMS和TDI的数据在TCK的上升沿被采样。数据在时钟的下降沿输出到TDO。建议下拉。

  • TDI——测试数据输入。输入到指令寄存器(IR)或数据寄存器(DR)的数据出现在TDI输入端,在TCK的上升沿被采样。建议上拉,上拉电阻阻值不能小于1K。

  • TDO——测试数据输出。来自指令寄存器或数据寄存器的数据在时钟的下降沿被移出到TDO。不用上下拉,悬空时,尽量引出测试点,同时应避免将TDO作为I/O使用。

  • VTref——目标板参考电压,接电源。用于检查目标板是否供电,直接与目标板VDD联,并不向外输出电压。

  • 可选引脚TRST——测试复位,输入引脚,低电平有效。TRST可以用来对TAP Controller进行复位(初始化)。因为通过TMS也可以对TAPController进行复位(初始化)。所以有四线JTAG与五线JTAG之分。目标板上应将此脚上拉到高电位,避免意外复位。

  • 可选引脚RTCK——测试时钟返回信号。RTCK由目标端反馈给仿真器的时钟信号,用来同步TCK信号的产生,不使用时直接接地。

  • 可选引脚RESET——目标系统复位信号。与目标板上的系统复位信号相连,可以直接对目标系统复位。同时可以检测目标系统的复位情况,为了防止误触发应在目标端加上适当的上拉电阻。

虽然TRST、RESET是可选的信号,但一般都建议接上,使得仿真器能够在连接器件前对器件进行复位,以获得较理想的初始状态,便于后续仿真。

3. SWD调试模式

SWD的全称是Serial Wire Debug(串行调试)。
在这里插入图片描述
SWD是ARM公司提出的另一种调试接口,相对于JTAG接口,使用更少的信号。四根信号如下:VCC、GND、SWDIO、SWCLK。

以下为各个引脚的说明:

  • SWDIO——串行数据输入输出。作为仿真信号的双向数据信号线,建议上拉。

  • SWCLK——串行时钟输入。作为仿真信号的时钟信号线,建议下拉。

  • VRef——目标板参考电压信号。用于检查目标板是否供电,直接与目标板VDD联,并不向外输出电压。

  • 可选引脚SWO——串行数据输出引脚。CPU调试接口可通过SWO引脚输出一些调试信息。该引脚是可选的。

  • 可选引脚RESET——仿真器输出至目标CPU的系统复位信号。

同样的,虽然RESET是可选的信号;但一般都建议接上,使得仿真器能够在连接器件前对器件进行复位,以获得较理想的初始状态,便于后续连接仿真。

4. JTAG与SWD有何不同

  1. SWD模式比JTAG在高速模式下面更加可靠。在大数据量的情况下面JTAG下载程序会失败,但是SWD发生的几率会小很多。基本使用JTAG仿真模式的情况下是可以直接使用SWD模式的,只要你的仿真器支持。所以推荐大家使用这个模式。
  2. 在大家GPIO刚好缺一个的时候,可以使用SWD仿真,这种模式支持更少的引脚。
  3. 在大家板子的体积有限的时候推荐使用SWD模式,它需要的引脚少,当然需要的PCB空间就小。比如你可以选择一个很小的2.54间距的5芯端子做仿真接口。

猜你喜欢

转载自blog.csdn.net/mahoon411/article/details/109908115