User

SWD / JTAG Connectors and Pinout

JTAG was the traditional mechanism for debug connections for ARM7/9 parts, but with the Cortex-M family, ARM introduced the Serial Wire Debug (SWD) Interface. SWD is designed to reduce the pin count required for debug from the 5 used by JTAG (including GND) down to 3. In addition, one of the pins freed up by this can be used for Single Wire Viewing (SWV), which is a low cost tracing technology (which is used by the "Red Trace" functionality within Red Suite).

The SWD/SWV pins are overlaid on top of the JTAG pins as follows:

JTAG Mode

SWD Mode

Signal

Notes

TCK

SWCLK

Clock into the core

Use 10K-100K Ohm pull-down resistor to GND

TDI

-

JTAG Test Data Input

Use 10K-100K Ohm pull-up resistor to VCC

TDO

SWV

JTAG Test Data Output / SWV trace data output

Use 10K-100K Ohm pull-up resistor to VCC

TMS

SWDIO

JTAG Test Mode Select / SWD data in/out

Use 10K-100K Ohm pull-up resistor to VCC

GND

GND

-

-

Usually, MCUs do not include pull-up or pull-down resistors on JTAG/SWD pins. Resistors should be added externally onto the board as detailed above. You may use resistors between 10K and 100K for these signals. This will prevent the signals from floating when they are not connected to anything.

Note that Cortex-M0 does not support SWV trace.

Other signals to note

RESET

Connect this pin to the (active low) reset input of the target MCU

We would strongly recommend also including RESET in addition to SWDIO, CLK and GND. For debugging some MCUs, such as NXP LPC11xx, RESET is essential.

ISP

Most NXP MCU's have an ISP pin which (when pulled low) can be used to cause the MCU to enter a bootloader on reset.

For example on LPC17xx this is P2.10 and on LPC11xx and LPC13xx it is P0.1.

Always ensure that you have a 10K to 100K Ohm pull up resistor on the ISP pin, otherwise you are unlikely to be able to make a successful debug connection.

RTCK, DBGSEL

Some NXP LPC2000 devices have special pins that enable the JTAG interface. For example, on the NXP LPC2129 the signal RTCK must be driven low during RESET to enable the JTAG interface. You may want to add jumpers to your hardware to accomplish this.

Connector Pinouts

ARM has defined three debug connector pinouts that are in common use with Code Red's tools, a "traditional" 20 pin connector, a Cortex 10 pin connector and a Cortex 20 pin Debug+ETM connector...

"Traditional" 20-pin 0.1" JTAG/SWD Connector Pinout

This connector was originally defined for connection to ARM7/9 parts over JTAG, but is still sometimes found in Cortex-M systems (for connections over JTAG or SWD).

Note that RTCK (Return clock) is only used on older ARM cores (ARM7TDMI and ARM9 family) before the debug was properly decoupled from the core clock domain.

Although Code Red's tools do not currently support the direct use of the ETM (Embedded Trace Macrocell), a number of boards use this form of connector as their main debug connector (for example Freescale Kinetis TWR boards, as well as Code Red's RDB4078 board).

A special Cortex 10-pin debug -> Cortex 20-pin debug+ETM connector cable will typically be required to debug such boards. Such a cable is supplied with the RDB4078.

Alternatively the Red Probe+ does have a 10-pin header inside the case onto which you can connect a suitable 10-way cable. If you do this, then it is recommended that you remove the original 20-way cable, and certainly do not connect both cables to boards at the same time!

Switching between JTAG and SWD modes of debug

Some Cortex-M based MCUs support both SWD and JTAG, others support only SWD (such as NXP LPC11xx and LPC13xx). Where both are supported, there are special sequences defined to switch from JTAG mode (default) to SWD mode (and vice versa) that can sent to the core. This switch sequence uses TMS (SWDIO), and this line is connected for any SWD/JTAG connection

Normally where both modes are supported, Red Suite will default to using SWD mode. However this can be modified by editing the launch configuration for a project.

Logic Levels and Ground

Red Probe+ attempts to adjust logic levels based on the voltage it sees on Vtref referenced to whatever GND it has to work with. The voltage at Vtref is coming from your hardware, thus you need a good GND, shared with your target hardware.

Red Probe+ (and LPC-Link) can be killed (like most USB devices) by excessive over current through ground of the probe and back through the PC used for debugging. The usual cause of this is that your target has it's own PSU and has a ground differential slightly different from your debug PC. Please do not rely on Red Probe+ / LPC-Link to ground your PC to the same potential as your target.

Power

If you have designed your debug circuit according to the specification, you should also check that sufficient power is being supplied to your target. If you are using a USB port on your PC to power your target, make sure that your PC is able to supply the required power over USB - many PC USB ports do not meet USB power requirements.