PIC 16C5X/XX Programmer
This is a implementation of
David Taits PIC Programmer.
The mentioned page contains software (with source code!) and original PCB
The Original PCB layout had one errors which I corrected and cleaned
the PCB a bit (latest version date code for my PCB layout is 1999-01-17):
- Incorrect trace from +5V to Q5 base corrected to Q5 emitter.
The Q5 emitter and collector were also swapped (the original bugfix was
- Incorrect value 12k for R6 corrected to 12 ohms
- Reduced 28 jump wires (3 of which were not drawn) to 26 (Wow:-)
- Ground trace from regulator U1 to regulator U2 used to go around the
whole card. Changed to a more direct route.
ERRORS I MADE (ERRORS IN THE DESIGN PREVIOUSLY IN THIS PAGE) Date code 1998-08-29
These errors are mainly at the silkscreen layer. So the
PCB can be used if you built it already.
- PL5 in my PCB is PL1 in the original
- R1 and R2 are 47k ohms and not 4.7k ohms as in my PCB (The design may
still work but it is not so reliable).
- PL2 type was left out. It is 25 pin female D-connector (90 degree angle)
- The original bugfix for Q5 had a bug itself. I corrected the PCB
according to the bugfix. Therefore Q5 is marked the straight side towards
the card edge but correct orientation is to install the curved side towards
card edge and the straight side away from the card edge (C and E swapped).
- Use short male-male cable (e.g. flat cable with 25 pin male crimp
- Use power with DC value above 17V (Max 32V)
- Do not leave PIC at the programmer while PC is booting up. Insert the
PIC only after the software asks.
- Check the DC connector polarity. There is a protection diode D1 but
the device does not work if the polarity is wrong.
- Works when used in MS-DOS mode of Windows 95.
- Has problems in some PCs if the LPT is configured to bidirectional.
- Serial programmed PICs (e.g. 16C84 and 16F84) cannot be programmed
with this programmer.
I have now built this programmer and blank checked,
programmed, verified the programming, dumped the hex file from the PIC,
ASCII compared the input and output hex files (note that option byte
and id locations have read only bits). This all to PIC16C54A-20/P and
for the erasable -JW version.
So I think may say that the design works.
Many thanks for Allan Meyer (firstname.lastname@example.org),
who has also successfully built this
programmer, as he pointed out that Q5 C and E were swapped.
A Cautionary note!
I forgot the enviromment setting SET PPSOCK=2 to the AUTOEXEC.BAT and it
caused the data not to be scrambled. I wondered why my oscillator was in
RS-mode but I programmed it to be in HS mode. The reason was that data was
not scrambled as it should be. The inverse scrambling was done during
reading so the data verified OK. So use PPSOCK=2 only if you have wired the
18 pin socket so that scrambling is not needed!
If you build this card I am interested about the results,
The Protel MS-DOS freeware software can be downloaded as
ZIP-File from Protel Site.
pam(at)iki.fi Updated: 1999-01-25