h. JTAG PROGRAMMER FOR PIC32 FAMILY

Programmers for all PIC32 microcontrollers share the same schematic, except the JTAG pin (TCK, TDI, TDO and TMS) connections might be different. See the schematic of a PIC18 based JTAG programmer below.

PIC18 Programming guide describes the details on how to write your own JTAG programming application for PIC32 microcontroller. JTAG Programmer support is also available for PIC32 microcontrollers (*.HEX and *.DLL files), though no application support is currently available for a PIC32MX250F128B based programmer. See PIC32MX2xxFxxxB Programming guide for details.

PIC Programmer v3.2 application from Downloads section is written for a PIC18 microcontroller (PIC18F24J50, PIC18F26J50 and PIC18F2550). PIC Programmer v3.2 (x64) with source code.zip archive file also includes SVLIB_PIC18F24J50 v2.7b.NET4(x64).dll that should be copied to the same folder as PIC Programmer v3.2 application. Don’t forget to install .NET v4.0 framework, which you can get from http://developers.microsoft.com. PIC Programmer v3.2 application is a major upgrade. It was tested to perform programming of PIC32MX250F128B microcontroller. A test HEX file was built with MPLAB X v1.7. It is important to note that not all microcontrollers from PIC32 family have the same memory model.

NOTE: You need a PIC18F24J50 or PIC18F26J50 with v2.5 firmware or later (from Downloads section) for the programmer application to work. PIC Programmer v3.2 application may malfunction, if it loses focus during programming, read or verification operations.

Here is the schematic of the PIC32 4-wire JTAG Programmer:

A programmed microcontroller is fully operational, but the current version of the application is unable to erase it, read it or verify it, if an external clock source is configured. However, PICkit3 programmer proves that the PIC32MX250F128B is always correctly programmed. A fully functional version of PIC32 programmer without the replicated external clock source can only work as 2-wire ICSP programmer. Therefore a major rework of PIC Programmer application will be needed in the future. But, if your circuit enables incircuit programming, a PIC18F2450 or a PIC18F26J50 microcontroller can easily be used as 4-wire JTAG programmer.

Here is why a 4-wire JTAG programmer cannot erase, read or verify an externally clocked PIC32MX (consider Microchip PIC32MX programming manual codenamed DS61145L for more information):

"If using the 4-wire (JTAG) interface, the oscillator source, as selected by the Configuration Words, must be present to access flash memory. In an unprogrammed device, the oscillator source is the internal FRC allowing for flash memory access. If the Configuration Words have been reprogrammed selecting an external oscillator source then it must be present for flash memory access."

More information:

- Making a PIC32 programmer considerations

- How to make a 32-bit PIC32MX250F128B (PIC32) microcontroller to work on USB 2.0

- ICSP Programmer for PIC32 microcontroller family

Click on the schematic to enlarge.