JDM2 based PIC Programmer

Summary of JDM2 based PIC Programmer


The article describes an updated JDM2-based PIC programmer schematic and layout that adds clock and data line filtering and a selectable Vpp voltage divider to support modern PICs (8–40 pin, e.g., PIC18F2455/4455). It explains why PGD/PGC filtering (caps and series resistor) helps reduce crosstalk during fast programming, notes the filters are most effective placed at the target, and includes project files and the original uJDM design.

Parts used in the JDM2 based PIC Programmer:

  • Resistor 100 Ohm (series on PGD)
  • Capacitors 22–47 pF (on PGD to ground)
  • Capacitors 22–47 pF (on PGC to ground)
  • Vpp voltage divider components (resistors as required for selectable programming voltage)
  • ICSP connector/header
  • USB or serial interface components (as per JDM2 design)
  • General-purpose PCB and traces/layout
  • PIC programmer support components from original JDM2/uJDM schematic (six common components referenced)

JDM2 based PIC Programmer

Schematic & layout for an updated JDM2 PIC Programmer. Includes clock & data filter, Vpp voltage divider for modern PIC microcontrollers (eg USB PIC 18F2455/4455).

Prior to reading sites like www.hackaday.com & www.makezine.com/blog I had worked only with the Amtel/AVR line of microcontrollers. After seeing all the cool projects people were doing with Microchip PICs, I HAD to have a PIC programmer. About a year ago I made my first PIC programmer based on the uJDM design (http://www.jdm.homepage.dk/newpic3.htm ). This programmer uses 6 common components. Though the link says ’16F84(a)’ only, I used it for the more modern (and cheaper) 16F628(a) processors without problems. This programmer has served me extremely well, but it is limited to (less than) 18 pin PICs with a programming Vpp of 13 volts.
JDM2 PIC Programmer
This ‘instructable’ covers my new design that programs 8/14/18/28/40 pin PICs. The circuit is based on the JDM2 programmer (http://jdm.homepage.dk/newpic.htm ), with two enhancements: clock and data line filtering & selectable programming voltage.

The ZIP archive contains all the project files. The uJDM schematic and layout are included as well.

Design enhancements

Clock and Data Filter:

Newer PICs are programmed so fast that the clock and data lines can experience cross-talk. According to the author of WinPic programming software(http://www.qsl.net/dl4yhf/winpic/ ):

“There was a note on the Microchip forum (by Olin Lathrop) about programming the dsPIC30F201, suggesting to put 22..47 pF on the PGD and PGC lines to ground near the target chip. In addition, put a 100 ohm resistor in series with the PGD line between target chip and the cap. The resistor and cap on the PGD line low pass filter the PGD signal when it is driven by the target chip. This reduces the high frequencies that can couple onto the PGC line. The cap on the PGC line makes it less suceptible to coupled noise. We later found out that this important note also applies to the PIC18Fxxxx family. A user of a Velleman PIC programmer reported success with a PIC18F4520 after adding 2 * 33 pF caps and a 100 Ohm series resistor.” (LINK:http://www.qsl.net/dl4yhf/winpic/#pgd_pgc_filtering )

This note applies primarily to programming PICs through a cable while they are soldered into a circuit. When using this type of programming the extra capacitors and resistor must be near the target chip – it does not help to have them on the programmer:

Schematic JDM2 PIC Programmer
“This means that this problem can not be solved at the programmer end of the cable. No amount of clever circuitry at the programmer can make this issue go away. It must be dealt with at the target circuit. (LINK: see PGD to PGC Crosstalk at http://www.embedinc.com/picprg/icsp.htm )

I emphasize this so it is clear you CANNOT slap a ICSP header on this board without issue. I included the filters in my new programmer because the data/clock traces are long. The capacitors are situated in the circuit so that they can be excluded without weakening the trace. The resistor can be replaced with a jumper wire.

 

For more detail: JDM2 based PIC Programmer

Quick Solutions to Questions related to JDM2 based PIC Programmer:

  • What enhancements does this updated JDM2 design include?
    Clock and data line filtering and a selectable programming Vpp voltage divider to support modern PICs.
  • Which PIC packages does this programmer support?
    It programs 8, 14, 18, 28, and 40 pin PICs.
  • Why are capacitors added to PGD and PGC lines?
    To low pass filter signals and reduce crosstalk and susceptibility to coupled noise during fast programming.
  • Where should the filter capacitors and series resistor be placed for best effect?
    Near the target chip on the target circuit; placing them on the programmer end does not solve cable crosstalk.
  • Can I use the original uJDM programmer for newer PICs?
    The uJDM worked for some newer 16F628(a) chips but was limited to PICs with Vpp around 13 volts and fewer pins.
  • Does adding filters to the programmer PCB always fix crosstalk when using a cable?
    No; the problem must be addressed at the target circuit near the chip, though filters on this programmer can be excluded if needed.
  • Is the series 100 Ohm resistor on PGD mandatory?
    It is recommended to filter PGD, but on the programmer it can be replaced with a jumper if not desired.
  • Are the uJDM schematic and layout included in the project files?
    Yes, the ZIP archive contains the uJDM schematic and layout along with the new project files.

About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:
LinkedinTwitter