Parallel Port PIC16C5X/XX Programmer


This page describes a simple programmer for the PIC16C5X family. It is retrofitted to a programmer intended for In-System Programming (ISP) of serial mode programmable PICs; the combined unit is capable of programming all the low-range (5X) and mid-range (6X/7X/8X) PICs. You can download the schematic as a zipped 300dpi Windows Paintbrush file (38K), in Circad format or view it on-line (28K). The programmer is powered by an unregulated wall power adapter (12V setting giving around 17V) and attaches to the parallel port of an IBM compatible PC. Unlike other published designs this circuit does not use any pre-programmed parts and an experienced hobbyist should be able to build it directly from the schematic. My prototype was built on a small piece of Veroboard. PCB designs are now available from:

Please note that I can't vouch for the accuracy of any of these designs.

The ISP circuit is similar to (but better than :-) the PIC16C84 programmer described in Microchip's application note AN589. A 5-pin header provides clock, data, VPP/MCLR, GND and either a steady +5V or switched +5V (on only during programming) supply. If the PIC to be programmed is not already in-circuit, it can be placed in an off-board Zero Insertion Force (ZIF) socket connected to the ISP header. The basic ISP circuit is designed around the following major components: two voltage regulators, an HCMOS tri-state buffer, two VMOS FETs, and three small-signal bipolar transistors.

The addition of two HCMOS universal PIPO shift/storage registers (74HC299) and an on-board 28-pin Aries type ZIF socket (i.e. one that accepts both 0.6 and 0.3 inch chips) allows the 5X PIC family to be programmed. The version shown in the schematic uses a switch to configure the programmer for either 18-pin or 28-pin PICs. One of the LPT port input bits is used to inform the PC of the current configuration. This is needed for two reasons: a) to prevent the application of VPP to a 28-pin PIC when the switch is in the 18-pin position; and b) to simplify the hardware the data bits must be scrambled when in 18-pin mode. There are some obvious variants: for example, the switch can be omitted and separate 28-pin and 18-pin sockets (preferably ZIFs) used; the ISP signals can also be bussed to some 18/28/40 pin sockets, or, with a little ingenuity, a single multi-pin ZIF, to allow mid-range PICs to be programmed on board.

This design is NOT in the public domain and any commercial exploitation MUST be licensed by me. Although I'm happy for individuals to build their own version for non-profit use, for the moment I am not prepared to release free software for this programmer (though I've partially changed my mind - see below). I have had enough trouble trying to support my free PIC16C84 programmer and this design is more complicated and potentially more difficult to debug. Of course, if anyone wants to write their own software (even shareware) to go with this programmer then that's fine; I can test it with a couple of EPROM PICs and archive it here provided it's made clear that I can't be expected to support it. Remember the programming algorithms are freely available and as I can assure you the hardware works all you need to get your own multi-PIC programmer going is a "few" free hours ...

STOP PRESS - Software for PIC16C5X programming now available.

I would like to thank Microchip for supplying me with the free samples I used to test the programmer.


Back to PIC links

David Tait September 1996.