I've recently (April 2009) got into Microchip's PIC chips, after looking into using them as part of my CNC router solution for producing PCBs - they will be the controllers for the stepper motor boards. These are fantastic little devices - very simple building blocks glued together into one very nice little package. They are very flexible and their simple building blocks can be quickly combined to produce complex interactions and control circuitry, lending themselves to a bewildering array of real-world problems. It is this versatility that causes the complexities - the sheer number of configurations and applications they lend themselves to is mind-boggling.
I had always intended to make a PIC programmer - and I will devise my own in due course - but I needed one quickly so that I could write and test my motor control routines - so I borrowed a (commercially made) version of the JDM programmer. This served the purpose nicely for the 16F684s I was initially intending to use (I had some already), but a limitation soon became apparent - the lack of PWM pulse steering broke my design for microstepping (an oversight on my part), so I had to choose another chip.
The 16F685 was my PIC of choice - it actually cost less than the 16F684s, and it had pulse steering; the downside was that it had more pins than I needed. After buying a few, I tried programming them and realised the JDM programmer didn't work, even though the software said it should. So, I needed a new programmer - one that I could get my hands on quickly and very cheaply.
This is where Miguel Vallejo's variation of the JDM programmer comes in. I looked on the 'net and found the EA4EOZ JDM Programmer - I could build it with bits I already had, and I could do it quickly. It's a simple variation on the JDM programmer, most significant for me is the switch to toggle Vdd or Vpp assertion first at startup; I think that this is where the other JDM programmer came unstuck. I contacted Miguel to say a thank you for publishing his design variation, and with his permission I am writing it up here. Thank you, Miguel !
This is Miguel's circuit diagram for his programmer. You can see his full
write-up and pictures on his site
here. I have
tested this with my 16F685s and it works perfectly. Note that because JDM
designs exploit the potential between the PC RS232 port logic levels to
obtain the high Vpp for the PIC, this solution may not work for everybody -
laptops are particularly notorious for having low (yet still RS232-compliant)
voltages. Your mileage may vary.
This is the programmer as seen from above. A quick veroboard assembly that
took me a few hours to assemble. I used a DIP socket rather than a ZIF
socket as this was intended as a quick and cheap solution. As a programmer,
it serves its purpose very well.
The assembly from below (just in case I need to build another one of these in
a hurry I can see the track breaks - I'm not trying to show off my soldering
or anything :) I should really get a tripod too - the photo's a little
blurry !