Jlink(Segger)通常包含两种端口定义 SWD 和 SWO。
SWD又叫做 Serial Wire Debug (串行debug线),替代了传统的5 pin JTAG debug 交互通过 2-pin 交互,一个时钟信号 (SWDCLK) 和 一个双向的data线(SWDIO)。
SWDCLK 是一个input 口。 SWDIO 是一个双向的data线 I/O 口。
Note: SWD是一个debug口。
SWO又叫做Serial Wire Output (串行输出线),这个pin 是专门用来使CPU的data打印输出到特定的pin脚通过UART和Manchester Protocol. 另外这个pin只允许单向输出,不允许通过该pin脚传数据到CPU端。
Note: SWO是一个output口。并不是所有支持SWD的设备同时支持SWO,大多数情况下,支持SWD的设备并不支持SWO。
VTref(Pin 1): (Input) 是参考电压,用来判断目标CPU是否有电,通常连接CPU的Vdd pin 并且不能连接电阻。
NC (Pin 2): 这个pin不连接J-link。
Not used (Pin 3): (NC)通常J-Link不用这个pin。如果是JTAG连接,这个pin脚可以被用来连接nTRST, 否则直接不连接。
Not used (Pin 5): (NC) 通常J-Link不用这个pin。如果是JTAG连接,这个pin脚可以被用来连接TDI, 否则直接不连接。
SWDIO (Pin 7): (I/O) 单线双向data线。通常需要一个上拉电阻,对于ARM芯片来说100kΩs即可。
SWCLK (Pin 9): (Output) 对目标CPU的时钟信号,通常连接到目标CPU上的TCK端。
Not used (Pin 11): (NC) 通常J-Link不用这个pin。如果是JTAG连接,这个pin脚可以被用来连接RTCK, 否则直接不连接。
SWO (Pin 13): (Input) 串行输出trace端口。(通常SWD通信是不需要的)。
nRESET (Pin 15): (I/O) 目标CPU重设信号。通常连接cpu的RESET pin, 通常被叫做 “nRST”, “nRESET” or “RESET”. 这个信号是一个活跃低信号。
Not used (Pin 17): (NC) 这个pin脚通常不用来连接J-Link。
5V-Supply (Pin 19): (OUTPUT) 用来给目标CPU供电,旧的J-Link 可能不具备这个功能。
Note: pins 4, 6, 8, 10, 12 are GND pins 需要连接到J-Link的GND脚。同时他们应该连接到目标引脚的GND脚。
CN3 是nucleo board 上的swd 端口。如图, CN3的pin脚定义如下: 连接:JLink->STLink(CN3)
JLinkSTLink(CN3)Pin 1Pin 1Pin 9Pin 2Pin 4Pin 3Pin 7Pin 4Pin 15Pin 5Pin 13 (optional)Pin 6 (optional)**Note: ** pin 19 不需要给nucleo 供电, nucleo通过micro-usb 供电。
