stm32中常用的调试接口

记录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接口输出;

JTAG接口的连接图如下;

  • TDI(Test Data In):串行输入引脚
  • TDO(Test Data Out):串行输出引脚
  • TCK(Test Clock):时钟引脚,一般附加 100k 下拉电阻
  • TMS(Test Mode Select):模式选择(控制信号)引脚
  • TRST(Test Reset):复位引脚

JTAG 的优势:

  • 不限于 ARM 系列芯片
  • 具有更多用于编程,调试和生产测试的用途

SWD

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

该调试接口是 ARM 专门设计的协议,仅支持 ARM(所以在 ARM 系列单片机中性能表现较佳)。

SWD接口的优势:

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

SWD 一般使用 2 个引脚:

  • SWDIO(Serial Wire Data Input Output):串行数据输入输出引脚
  • SWCLK(Serial Wire Clock):串行线时钟引脚

SWD 的优势:

  • 使用引脚更少,只需 SWDIO 和 SWCLK 两个引脚
  • SWD 具有特殊功能,例如打印调试信息
  • 与 JTAG 相比,SWD 在速度上具有更好的整体性能

二者的异同

选用 SWD 而非 JTAG 的理由:

  • 电路原理图设计需要足够简单,且可以在没有 JTAG 功能的情况下进行测试
  • PCB 在尺寸方面有限制,SWD 可以节省空间
  • MCU 已经没有多余的引脚给 JTAG 用了

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

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

ULINK是ARM/KEIL公司推出的仿真器,目前网上可找到的是其升级版本,ULINK2和ULINK Pro仿真器。ULINK/ULINK2可以配合Keil软件实现仿真功能,并且仅可以在Keil软件上使用,增加了串行调试(SWD)支持,返回时钟支持和实时代理等功能。开发工程师通过结合使用RealView MDK的调试器和ULINK2,可以方便的在目标硬件上进行片上调试(使用on-chip JTAG,SWD和OCDS)、Flash编程。

但是要注意的是,ULINK是KEIL公司开发的仿真器,专用于KEIL平台下使用,ADS、IAR下不能使用。

共同之处

  • 供电电压范围: 1.2 V - 5.5 V
  • 时钟速率: 可配置高达 10 MHz
  • SWO 跟踪捕获: 数据速率高达 50 Mbit/s(UART/NRZ 模式)
  • 隔离电压: 1 kV
  • 热插拔:支持

这个调试器是st官方制作用来调试stm单片机的调试器。

主要提供了一个用于 STM32 的JTAG与SWD/SWV连接器和一个用于 STM8 的SWIM连接器两种连接方式。

JTAG 与 SWD 的兼容性

一般来说,单片机板子上会有以下这些烧录座,可同时兼容 JTAG 与 SWD:

  • TCK 兼容 SWCLK
  • TMS 兼容 SWDIO
  • TDO 兼容 SWO)

参考资料


stm32中常用的调试接口
https://ysc2.github.io/ysc2.github.io/2024/02/28/stm32中常用的调试接口/
作者
Ysc
发布于
2024年2月28日
许可协议