Cortex-M Debug Connectors Overview The debug connectors for Cortex microcontrollers will be migrating to new debug connectors. Currently the KEIL ULINK2 already supports one of the new debug connector arrangements and the coming ULINK-Pro supports both new debug connector arrangements. A number of Cortex microcontroller evaluation boards from KEIL already support the new connectors. This document covers the basic information of these debug connectors. This is for general information only and should not be used as a specification. The details covered in this document are taken from various ARM and KEIL documents / web sites. Additional details are covered in specifications documents listed in the Reference section. Why change? Most existing ARM products use a 20-pin IDC connector for JTAG debug, and 38-pin Mictor connectors for trace. However, there are a number of issues with the existing arrangement: - 20-pin IDC connectors are too big for today’s microcontroller boards. - 20-pin IDC connectors do not support trace. - The 0.05” micro header in the new connector arrangement has a lower cost for trace. Since the Cortex-M3 trace port only requires 5 signals (4 bit data and trace clock), the trace signals can easily be merged into a 20-pin debug connector. For microcontroller products that do not require trace (e.g. Cortex-M0 or Cortex-M3 without trace), an even smaller connector can be used. The new connectors are called: - Cortex Debug Connector (10-pin) - Cortex Debug+ETM Connector (20-pin) The new connectors are based on the Samtec 0.05” micro header (reference 1). Cortex Debug Connector The Cortex Debug Connector has only 10 pins. 1 2 VCC SWDIO / TMS GND SWDCLK / TCK GND SWO / TDO KEY NC / TDI GNDDetect nRESET 9 10 The Cortex Debug Connector supports JTAG debug, Serial Wire debug and Serial Wire Viewer (via SWO connection when Serial Wire debug mode is used) operations. Cortex Debug+ETM connector The Cortex Debug+ETM Connector has 20 pins. 1 2 VCC SWDIO / TMS GND SWDCLK / TCK GND SWO / TDO / EXTa / TRACECTL NC/EXTb/TDI KEY GNDDetect nRESET GND/TgtPwr+Cap TRACECLK GND/TgtPwr+Cap TRACEDATA[0] GND TRACEDATA[1] GND TRACEDATA[2] GND TRACEDATA[3] 19 20 The Cortex Debug+ETM Connector supports JTAG debug, Serial-Wire debug, Serial Wire Viewer (via SWO connection when Serial Wire debug mode is used) and instruction trace operations. Definition of the signals can be found in the CoreSight Components Technical Reference Manual (reference 2). Legacy connectors The legacy connectors can still be used, and there will be adaptors for the 20-pin IDC connectors. But for new designs, the Cortex Debug connector and the Cortex Debug+ETM connectors are recommended. The following diagram shows the 20-pin IDC JTAG connector compared to a 10-pin Cortex Debug connector. 1 2 VCC VCC (optional) TRST GND NC/TDI GND SWDIO / TMS GND SWDCLK / TCK GND RTCK GND SWO / TDO GND nRESET GND NC/DBGRQ GND NC/DBACK GND 19 20 Another legacy connector is the 38-pin Mictor connector (type 5767054-1 or compatible). The specification for the signal arrangement is documented in the ETM Architecture Specification (reference 3). The following diagram shows the pin assignment for the Mictor connector when used with the Cortex-M3 Trace Port Interface Unit. The Mictor connector can be used for JTAG (and Serial Wire Debug) as well as trace. 1 NC NC 2 3 NC NC 4 5 GND TRACECLK 6 7 Pulldown Pulldown 8 9 NC/ nSRST 11 TDO/SWV 1 2 Pulldown 10 Pullup (Vref) 12 VSupply 14 13 RTCK 15 TCK/SWCLK 0 / TRACEDATA[7] 16 17 TMS/SWIO 0 / TRACEDATA[6] 18 19 TDI 0 / TRACEDATA[5] 20 21 nTRST 0 / TRACEDATA[4] 22 23 0 / TRACEDATA[15] TRACEDATA[3] 24 25 0 / TRACEDATA[14] TRACEDATA[2] 26 27 0 / TRACEDATA[13] TRACEDATA[1] 28 29 0 / TRACEDATA[12] 31 33 35 0 / TRACEDATA[9] 0 / TRACECTRL 36 37 0 / TRACEDATA[8] TRACEDATA[0] 38 37 38 0 30 0 / TRACEDATA[11] 0 32 0 / TRACEDATA[10] 1 34 The Mictor connector is still the recommended trace connector for other ARM processors including ARM7, ARM9, Cortex-R and Cortex-A processors, and other applications that require wider trace widths (e.g multiple processors). There are additional legacy connectors for ARM microcontrollers. A number of them can be found on the KEIL web site (reference 4). They are less common and are not used for ARM Cortex microcontrollers. Which connector to use? There are multiple choices of connector. Normally the Cortex Debug+ETM connector should cover all requirements. But in some cases you might want to include more than one debug connector to allow different debuggers to be used (e.g. evaluation board for different customers). Cortex Debug Connector (10-pin) - Small board space and low trace bandwidth requirement (simple data trace or event trace). - Supported by ULINK2, ULINK-Pro and most third party debuggers. Cortex Debug+ETM Connector (20-pin) - Small board space and higher trace bandwidth requirement (instruction level trace and higher amount of data trace). - Instruction trace supported by ULINK-Pro and some third party debuggers. Legacy 20-pin JTAG IDC connector - Required when traditional debug tools are used (e.g. ARM RealView-ICE), or the debugger/emulator unit is powered by target board via the IDC connector. Usually this can be avoided by using adaptors. - Required when a physically stronger/robust connector is needed. Mictor connector - Required when traditional trace tools are used (e.g. ARM RealView-Trace). Usually traditional trace tools can be connected to the new Cortex connector via adaptors. - Required for other ARM processors (ARM7, ARM9, Cortex-R/A processors). - Required for multiple processor systems which require trace port with more than 4-bit wide. Additional information on Cortex microcontroller debug and trace can be found on the KEIL web site (reference 5) and ARM web site (reference 2). Adaptors For users of existing ARM RealView Development tools like RealView-ICE and RealView-Trace, you can connect to target systems with new Cortex Debug connectors by using the CoreSight High Density Probe (reference 6). Example setup of using the CoreSight High Density Probe with the new connectors can be found on the ARM web site (reference 7). For users of Keil ULINK2 or ULINKPro products there is no need to use any adaptor. For users of Segger J-Link or J-Trace, these products support the 20-pin IDC connector, 38-pin Mictor connector as well as the Cortex Debug+ETM connector. A number of adaptors are also included. For users of Signum JTAGJet-Trace-CM3 product, the unit comes with Cortex Debug+ETM connector, an optional Mictor-38 adaptor cable is also available. Reference: Document 1 Samtech FTSH-110 and FTSH-105 micro header http://www.samtec.com/ftppub/pdf/ftsh_mt.pdf 2 CoreSight Components Technical Reference Manual (Cortex debug connector detailed specification is in appendix C) http://infocenter.arm.com/help/topic/com.arm.doc.ddi0314h/DDI0314H_coresight_component s_trm.pdf http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0314h/Chdcdggc.html 3 ETM Architecture Specification (Physical trace connector description in chapter 8) http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ihi0014o/index.html 4 ULINK2 supported connectors http://www.keil.com/support/man/docs/ulink2/ulink2_hw_connectors.htm 5 Cortex microcontroller debug and trace http://www.keil.com/peripherals/coresight/default.asp 6 What is the CoreSight High Density Probe? http://infocenter.arm.com/help/topic/com.arm.doc.faqs/ka13519.html 7 How do I trace the MCBSTM32E using the CoreSight High Density Probe? http://infocenter.arm.com/help/topic/com.arm.doc.faqs/ka13520.html 8 CoreSight Debug and Trace Connectors for Cortex-M devices http://www.keil.com/peripherals/coresight/connectors.asp