SEGGER - Jobs
emWin upgrade     Trade-In program     Web shop

J-Link Microchip PIC32 Support

J-Link fully supports super-fast, direct debugging via JTAG on Microchip PIC32 devices. This includes support for the traditional 4-wire JTAG interface, 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.

 


Why J-Link?

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...

Goto speed tests and comparison

 

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...

 

Supported by all major IDEs
All major IDE's 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.

 


Available target interfaces

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

  1. Debug via traditional 4-wire JTAG (IEEE1149.1)
  2. Debug via Microchip proprietary 2-wire ICSP®
  3. Programming via Microchip proprietary 2-wire ICSP®

1) and 3) are supported by all PIC32 devices, while 3 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.

2) 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.


What download speeds can be achieved?

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.

For further information regarding speed measurements, see 2

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

 

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, ...)

For further information regarding speed measurements, see 2

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

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

2 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