Skip navigation

J-Link Microchip PIC32 Support

J-Link fully supports super-fast, direct debugging via JTAG on Microchip PIC32 devices.

Supported Devices

Support for the traditional 4-wire JTAG interface is included, as well as support for the Microchip proprietary 2-wire ICSP® interface.For J-Link, an adapter is available which supports both, the 14-pin 0.1" header and the RJ11 connector. PIC32 support is included in all current J-Link probes (J-Link BASE, PLUS, ULTRA+, PRO and EDU) and can be used without purchasing any additional license.  J-Link supports debugging and flashing of all PIC32 devices. For a detailed list of supported devices, please click here.

Pros using J-Link for Microchip PIC32

The Fastest PIC32 Debugging Experience Available

J-Link is the fastest debug probe available for Microchip PIC32 devices. This includes the very high download speed into RAM and flash, as well as fast debugging speed (single stepping etc.).

Smart, High-Speed Flash Download

J-Link can program the internal flash of all PIC32 microcontrollers as well as external CFI compliant flashes. It only reprograms sectors that have changed, reducing the download time and increasing the longevity of the device, during development. From a debugger perspective, the flash area can be treated just like RAM, so this great feature works with basically any debugger, including GDB. More info...

No ROM Monitor Needed - Allowing "Post Mortem" Debugging

As the only true debug probe available for PIC32, the J-Link does not use a ROM monitor while debugging. This allows the use of the entire memory space (the full Flash and RAM!) by the application while in both release and debug builds. Space does not need to be reserved for a monitor while debugging. This also makes it possible to debug a release build, also allowing to attach to a crashed etc. application and performing post-mortem debugging.

SDK Available - Allowing to Setup Custom Test-Scenarios

For the J-Link software, there is an SDK available which allows to fully customize the use of J-Link. It allows customers to write their own applications which use J-Link with PIC32. Be it for automated testing environments or for automated production purposes. 

Supports an Unlimited Number of Breakpoints in Flash Memory1

Say goodbye to the 6 hardware breakpoint limitation! J-Link offers an unlimited number of breakpoints not only when debugging programs located in RAM, but also programs located in flash memory. Unlike other software breakpoint implementations available, the most noticeable difference is just how much faster the highly optimized SEGGER unlimited flash breakpoint implementation is. Hardware breakpoints are used as much as possible and converted into software breakpoints automatically, when required. More info...

1) Requires J-Link PLUS, ULTRA+ or PRO. Can be used in eval mode with any other J-Link model.

Supported by All Major IDEs

All major IDEs have built-in direct support for the J-Link family (such as MPLAB X and emIDE). Due to the availability of a free GDBServer, J-Link can be used with any GDB-based debug solution. For more information regarding which IDEs support J-Link, please click here.

In general, there are three target interfaces available on PIC32 devices:

Interface No. 1

Debug via traditional 4-wire JTAG (IEEE1149.1)

 Supported by all PIC32 devices

Interface No. 2

Debug via Microchip proprietary 2-wire ICSP®

Does only allow proper debugging since the device is in a special programming mode where using the external oscillator as clock source, is not supported, making it useless for real debugging.

Interface No. 3

Programming via Microchip proprietary 2-wire ICSP®

Is supported by all later PIC32 devices, but not by some old ones. On such devices, debugging via 4-wire JTAG should be used. The following devices, do not support full debugging via 2-wire ICSP®:

  • PIC32MX320 / 340 / 360 series devices
  • PIC32MX420 / 440 / 460 series devices
  • PIC32MX534 / 564 / 575 series devices
  • PIC32MX664 / 675 / 695 series devices
  • PIC32MX775 / 764 / 795 series devices

The J-Link PIC32 Adapter provides connectors for all commonly used headers for PIC32:

  • 14-pin 0.1" connector for 4-wire JTAG
  • RJ11 connector for 2-wire ICSP®
  • 6-pin PICKit connector (soldering option)

What is 2-Wire ICSP®?

2-wire ICSP® is a proprietary debug interface defined by Microchip. Based on 4-wire JTAG device-internally, using a 2-wire converter that multiplexes the TMS, TDI, TDO JTAG lines to a single data line to the outside and demultiplexes it to the inside. Requires a special conversion unit in the device. On older devices, this conversion unit was only activated in case the device was in the special 2-wire programming mode, but did not allow full debugging, using the 2-wire protocol.

Download Speeds

The maximum download speed that can be achieved, depends on various factors such as target hardware, the target interface being used, if a J-Link BASE model or a high-end model is used.

  • 4-wire JTAG: Up to 1 MB/s
  • 2-wire ICSP®: Up to 250 KB/s

J-Link PRO and ULTRA+ deliver even higher performance.

Time Needed to Program 500KB Into a PIC32MX Device

The following graphics show the time needed by J-Link to program an 500 KB image into an PIC32MX under various circumstances (device empty, device already programmed, ...)

* RealICE and ICD3 using ICSP for programming + debugging. Please note; ICD3 does not support  4-wire JTAG. ICSP mode on most MX devices does not allow debug images to run stand-alone (without debugger connected) and does not allow debugging release builds. RealICE via 4-wire JTAG takes 35 seconds to perform these operations.

Settings / Environment

  • MPLAB X V2.15
  • PIC32MX795F512L on Explorer16 board
  • J-Link software V4.88
  • Target interface: 4-wire JTAG
  • Target interface speed: 12 MHz
  • This project: Download MPLAB X Project

Speed Measurement

  • Changed code: Device already programmed with image. New image differs in up to 10% from the pre-programmed one.
  • Identical code: Device already programmed with the correct image. Debug session is just restarted.
  • Time measurement: Manually, from hitting "Start debug" until application stopped at main().
  • Time measurement does not include time taken for firmware update of RealICE / ICD3.
  • Time measurement does not include build time of MPLAB X (make sure "Make for debugging" is performed prior to hitting "Start debug", so MPLAB X does not rebuild on debug session start)
  • Time measurement J-Link + PIC32MZ: Since MPLAB X V2.15 does not support PIC32MZ with J-Link yet, times have been taken via J-Link Commander. "Total time" output by J-Link Commander has been taken as time reference

Time needed to program 500KB into a PIC32MZ device

The following graphics show the time needed by J-Link to program an 500 KB image into an PIC32MZ under various circumstances (device empty, device already programmed, ...)

Settings / Environment

  • MPLAB X V2.15
  • PIC32MZ2048ECH100 on Explorer16 board
  • J-Link software V4.88
  • Target interface: 2-wire ICSP® (RJ11 header)
  • Target interface speed: 12 MHz
  • This project (RealICE / ICD3 tests): Download
  • This project (J-Link Tests): Download

Speed Measurement

  • Changed code: Device already programmed with image. New image differs in up to 10% from the pre-programmed one.
  • Identical code: Device already programmed with the correct image. Debug session is just restarted.
  • Time measurement: Manually, from hitting "Start debug" until application stopped at main().
  • Time measurement does not include time taken for firmware update of RealICE / ICD3.
  • Time measurement does not include build time of MPLAB X (make sure "Make for debugging" is performed prior to hitting "Start debug", so MPLAB X does not rebuild on debug session start)
  • Time measurement J-Link + PIC32MZ: Since MPLAB X V2.15 does not support PIC32MZ with J-Link yet, times have been taken via J-Link Commander. "Total time" output by J-Link Commander has been taken as time reference