Sie sind auf Seite 1von 9

Home Sign Up!

Browse Community Submit


All Art Craft Food Games Green Home Kids Life Music Offbeat Outdoors Pets Photo Ride Science Tech

JDM2 based PIC Programmer


by ian on January 19, 2006 Table of Contents JDM2 based PIC Programmer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Intro: JDM2 based PIC Programmer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Step 1: Design enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Step 2: Construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Step 3: USE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Step 4: Future Improvements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Related Instructables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 2 2 3 4 4 5 5 5 5

http://www.instructables.com/id/JDM2-based-PIC-Programmer/

Intro: 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. 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.

Image Notes 1. Enhanced JDM2 PIC programmer.

Image Notes 1. uJDM PIC programmer.

File Downloads

uJDM.brd (11 KB) [NOTE: When saving, if you see .tmp as the file ext, rename it to 'uJDM.brd']

uJDM.sch (193 KB) [NOTE: When saving, if you see .tmp as the file ext, rename it to 'uJDM.sch']

PICpProj.zip (810 KB) [NOTE: When saving, if you see .tmp as the file ext, rename it to 'PICpProj.zip']

Step 1: 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: "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. Selectable Programming Voltage (Vpp): Programming voltage (Vpp) is applied to the MCLR pin to place the PIC in programming mode. Older PICs (12F/16F/some 18Fs) require a Vpp of 13 volts. Newer PICs

http://www.instructables.com/id/JDM2-based-PIC-Programmer/

(such as the USB enabled 18F2455/4455) have a lower Vpp of 12.5 volts. A voltage divider was added to the JDM2 design to provide 12.5 volts from the original 13 volt output. A diode prevents leakage through the voltage divider when it is bypassed. Vpp is selectable by the three pin jumper at the lower left of the programmer. In practice it doesn't seem to matter: I can program 13 volt parts with 12.5 volts, and 12.5 volt parts at 13 volts without damage.

Step 2: Construction
The traces in this design are nice and fat for easy toner transfer (or lazy photo boards). I started making PCB with the TT method, but found it pretty tedious. A $10 investment got me started with photo PCBs (using ink jet transparency positives). I will never go back. All the parts were available at my local electronics shop in Amsterdam, though I ordered the parts from Mouser in bulk. Each board cost about $2.50 to make - the greatest expense was the 9 pin female DB9 connector ($1.60). Layout and BOM are below. Schematic and board files are for EagleCad. Don't forget the 8 jumpers, shown in red. Part Value C1 100uF/25V C2 22u/16V Tantal C3 22...47...100pf C4 22...47...100pf D1 1N4148 D2 5V1 Zener D3 1N4148 D4 1N4148 D5 1N4148 D6 8V2 Zener D7 1N4148 IC1 DIL18S IC2 DIL28-3 IC3 DIL40 Q1 BC547B Q2 BC547B R1 10k R2 1k5 R3 100ohm R4 1K R5 15K SV3 Pin Header (3) X1 Female DB9 9-pin connector (F09H)

http://www.instructables.com/id/JDM2-based-PIC-Programmer/

File Downloads

JDM2-foil.pdf (340 KB) [NOTE: When saving, if you see .tmp as the file ext, rename it to 'JDM2-foil.pdf']

JDM2-place.pdf (186 KB) [NOTE: When saving, if you see .tmp as the file ext, rename it to 'JDM2-place.pdf']

JDM2.brd (22 KB) [NOTE: When saving, if you see .tmp as the file ext, rename it to 'JDM2.brd']

JDM2.sch (247 KB) [NOTE: When saving, if you see .tmp as the file ext, rename it to 'JDM2.sch']

Step 3: USE
The programmer will work with any programming software that supports the JDM2. I like WinPic800 (LINK:http://perso.wanadoo.es/siscobf/winpic800.htm ), and WinPIC also deserves credit for the great technical support info (LINK:http://www.qsl.net/dl4yhf/winpic/ ). Both support the newest USB PICs (18F2/4455). ICProg is great, but has not been updated in some time (LINK:http://www.ic-prog.com/ ). This programmer has been tested with the following PICs: Pins Part # 8 12F683 14 16F684 18 16F84(a)*, 16F628(a)* 28 16F737, 18F2455 40 16F74, 18F4455 *Original and 'A' revision OK. Placement for various PICs is show in the diagram below. It is not limited to these PICs - it should work with any PIC that has Vpp, Vss, Vdd, PGD, & PGC arrangements as shown.

http://www.instructables.com/id/JDM2-based-PIC-Programmer/

Image Notes 1. Detailed map of 18 pin socket connections. 2. Stick wires in the 5 required connections to use this programmer for ICSP.

File Downloads

JDM2-guide.pdf (201 KB) [NOTE: When saving, if you see .tmp as the file ext, rename it to 'JDM2-guide.pdf']

Step 4: Future Improvements


I used cheap AMP IC sockets from Mouser because I had them on hand. My next design will replace the 28 and 40 pin sockets with one 40 pin ZIF socket. A little extra clearance around the 18 pin socket makes a ZIF substitution possible as well. -ian (instructables-at-whereisian-dot-com)

Related Instructables

Simple JDM PIC Programmer by hosam_eldin

Business Card PIC Programmer by ian

Building the Cheap PIC Inchworm ICD2 Programmer by PIC Intro to PIC vladutz2000 Programmer / Microcontrollers Debugger by by leevonk blueroomelectronics

GTP USB PIC PROGRAMMER (Open Source) by keolerea

Comments
50 comments Add Comment view all 100 comments

levonTech18 says:

May 16, 2010. 8:29 PM REPLY Are you really sure this jdm2 proggramer supports:18F2xx0, 18F2x21, 18F2xx5, 18F4xx0, 18F4x21, 18F4xx5 : 18F2221, 18F2321, 18F2410, 18F2420, 18F2423, 18F2450, 18F2455, 18F2458, 18F2480, 18F2510, 18F2515, 18F2520, 18F2523, 18F2525, 18F2550, 18F2553, 18F2580, 18F2585, 18F2610, 18F2620, 18F2680, 18F2682, 18F2685, 18F4221, 18F4321, 18F4410, 18F4420, 18F4423, 18F4450, 18F4455, 18F4458, 18F4480, 18F4510, 18F4515, 18F4520, 18F4523, 18F4525, 18F4550, 18F4553, 18F4580, 18F4585, 18F4610, 18F4620, 18F4680, 18F4682, 18F4685 Today i will program Pic18F4550.. i hope it work

http://www.instructables.com/id/JDM2-based-PIC-Programmer/

lenmorvash says:
hey, did it work? I really need to program an 18F2550 for my project.... thanks

Mar 11, 2011. 7:24 AM REPLY

instbubba says:

Feb 19, 2011. 8:16 PM REPLY The Eagle schematic has a problem, the transistor's pinout for the one that goes to Vpp is backwards. The collector and emitter are reversed. It may not affect the board, but the schematic could not possibly work the way it is apparently wired. FYI, for an easy to understand diagram of this circuit, take a look at the Olimex PIC-PG2. This circuit is essentially identical with the addition of the filtering networks.

cavemen says:
Can i replace rare BC547B with 2n3904? I already did. the board ain't working with my pic16f628 trying to figure out why

Oct 21, 2010. 1:51 PM REPLY

falseadress says:
Try flipping transistor around. the BC547B is CBE and i think the 3904 are EBC

Feb 8, 2011. 11:21 PM REPLY

nikon95 says:
Will this work with my 16f877 and picpro (linux)??? ?ny tips would be appreciated . :-)

Nov 19, 2010. 12:47 PM REPLY

homermike says:

Aug 14, 2010. 3:18 AM REPLY Hello... We'v been dealing a lot of projects using PICs... and now we come up to a project that we could do the PIC programming on AIR using GSM module.. So i would like to ask if someone had an idea on how to make a system that have 2 PICs.. one PIC is the MAIN PIC and the 2nd PIC would be the program or HEX loader PIC to the MAIN PIC...

obie87 says:
hi, i want to know if this Programmer can program PIC 16LF628A, Thanks

Aug 8, 2010. 4:58 PM REPLY

levonTech18 says:
D2- must be : 1N4733 5.1v 1w .....And D6-Must be : 1N4738 8.2v 1w Thanks < i hope this can help you to build ..

May 16, 2010. 8:08 PM REPLY

levonTech18 says:
Hi< do you really think this is working and can program PIC18F4550..

May 14, 2010. 12:03 AM REPLY

naveen.a019 says:
hi, why do u need ...sv3...i am a newbie to electronics hobby...can any bdy..help...

Apr 9, 2010. 9:17 AM REPLY

silverplated says:
YOU ARE COOL MAN THANK YOU FOR THIS PIC PROGAMER

Feb 5, 2010. 11:39 AM REPLY

cm6lar says:
I think that the Q1 transistor is not corrected placed.. the emisor an collector are bartered.

Jan 19, 2010. 10:32 AM REPLY

monsterman says:
dous anyone know if this will work with a 18F2550

Dec 3, 2009. 11:06 AM REPLY

forte1994 says:
will this work with vista 64x

Aug 20, 2009. 7:04 PM REPLY

http://www.instructables.com/id/JDM2-based-PIC-Programmer/

JohnnyVegas says:

Aug 9, 2009. 11:04 PM REPLY Just built this and must say it worked great on a 16F628A @ 13v. Did not try 12.5 For C2 I used a 22uF 16v Mini Alum Elect CAP. For C3 and C4 I used 68 pF ceramic. That's what I had around. winPic800.

moraru says:
Hi ian, I want to write a dsPIC30F4012, can' I with JDM2? Tanks. Moraru.

Jul 1, 2009. 11:38 AM REPLY

hesperaux says:

May 21, 2009. 3:50 PM REPLY This is fantastic. I just programmed a PIC16F72. I was able to dump it's memory, erase it, and program it without any issues. I did this in Arch Linux using picprog (works very well and is easy to use). Unfortunately I can't yet test the program I burned onto it because all my tools and parts are not yet mailed (on vacation). But according to picprog, it burned properly. Also, it takes about ..2 seconds to burn a small program. Thanks for your PCB design, Ian. It was very helpful. And thanks for using Eagle, cuz it has a Linux version. =) I'm very excited because this is my first PCB and my first programmer and it works.

beeshyak says:

May 19, 2009. 7:00 AM REPLY I have downloaded WinPIC 800 from the WinPIC website. I scrolled the hardware programmer selection. Within the list, I only see JDM but no JDM2. Will this work with selection of JDM only? I plan to use it on 18F26K20 but it's Vpp is lower. Apr 1, 2009. 5:15 AM REPLY hi everybody , is it possible to if i change tantalum capacitor with other ordinary electronic capacitor?, it's so hard to find it in my place. thanks best regard juan rio sipayung

juans says:

MicRoelelectronica says:

Jan 25, 2009. 5:57 AM REPLY nice thingy maar er is toch iets wat ik niet begrijp C3 en C4, welke waardes moet je hebben? i dont quite know how to say that in english.

ian says:
Any of those values should work. Kies een van de waardes.

Jan 25, 2009. 6:24 AM REPLY

curioussole says:

Jan 26, 2006. 3:06 PM REPLY Why do none of the part lists ever include the wattage on the resistors? Are they 0.5W or 1/4Watt? Don't diodes and capacitors also have wattages? Why are the full specs on the parts not listed?

ian says:
Everybody assumes 1/4watt if not specified.

Jan 25, 2009. 6:23 AM REPLY

sim says:
hi!i think that the pin 1 and 2 of the jumper must be conncted? if it's not right what's the role of this pin?thank you!

Jun 12, 2006. 11:42 AM REPLY

ian says:
If the pins look like this (from the picture above): (x) (x) (x) 123

Jun 13, 2006. 5:29 AM REPLY

pin 1 and 2 *or* pins 2 and 3 should be connected by a jumper. In the picture above the jumper is between the middle pin (2) and the left pin (1) for low vpp. All this does is choose vpp from the standard JDM2 (13 volts) or a resistor divider network (12.5 volts). No big deal. I have found, in practice, that it isn't even needed. I program a 18f2550 by ICSP without the caps and vpp=13 volts with no problems.

kubeqz says:

Apr 19, 2008. 4:43 AM REPLY Hello everybody! I've a got solution for your problems with this programmer. The author of this project made a mistake. To make this programmer works properly, you should change few connections in cable, which connects programmer to pc: In RS232 pins have to be changed: pin 1 with pin 5 pin 2 with pin 4 pin 7 with pin 8 pin 8 with pin 7 For more question ask me by e-mail..

vkumar says:
Hello Kubeqz Is Null modem cable to be modified or can I use as it is ? to connect PiC Programmer to PC vkumar

Dec 21, 2008. 1:59 AM REPLY

http://www.instructables.com/id/JDM2-based-PIC-Programmer/

itachi012587 says:

Jul 13, 2008. 1:51 AM REPLY Hello. I would like to ask, why when I program the microcontroller PIC16F84A using the programmer I have attached here is working but when I try to program the PIC16F877A it will not working. There is a problem when I try to verify it. By the way I used the PICALL software. What probably the problem? Thank you.

ian says:
I think the reason is that you are using a null modem cable -- a cross over cable for two computers.

May 8, 2008. 2:37 AM REPLY

Eddie_English says:

Dec 3, 2008. 5:40 AM REPLY Hi Ian, I'm sorry but I had a bit of a false dawn with this programmer. The programmer runs fine on a laptop I can borrow but I haven't been able to make it run in 5 different standard PC's. Any idea how I can fix this or narrow down the problem? or even hook a power supply up to the card if all else fails? Thank you

ian says:

Dec 3, 2008. 6:06 AM REPLY Not really. A power supply won't work because the JDM2 uses a negative ground to get the 13 volts needed to program the PIC. A power supply will introduce a true 0volt ground and throw the whole thing out of whack.

Eddie_English says:
Sugar, stuck to the one works laptop then. Thanks for the quick response Ian.

Dec 3, 2008. 7:03 AM REPLY

Eddie_English says:

Nov 25, 2008. 1:29 AM REPLY ian, thank you so much for this. I have converted your pcb over to vero board and it works a treat on the first chip I have tried (reading/writing a sample hex using winpic800) Pic 12f683. The only things I changed were the 2 BC547B (Q1, Q2) for 2N3904 due to availability. (also used 47pf for C3 & C4) Now to try and find some help starting out in Pic programming. thanks again

vikramemails says:
does it ork well with PIC 16F84A. i'm using that but it is not working?

Oct 3, 2008. 12:14 AM REPLY

vikramemails says:

Sep 24, 2008. 4:43 AM REPLY hello sir, i am using winpic 800 and its showing errror when checking device. i've switched hardare settings to JDM 2, but still the problem persists.

npala says:

Aug 3, 2008. 8:24 AM REPLY hello sir, can you please send a diagram on how to connect the programmer to the PC port (pin to pin), i think i am not connecting them properly. thanks.

mborman says:

Apr 6, 2006. 2:25 PM REPLY and - to my previous topic - the programming voltage is not appearing - about 0.2 V is present on VPP leads. And another question - the GND has to be connected to corresponded pin on COM-port or not? Thank You

ian says:

Apr 7, 2006. 2:56 AM REPLY For the VPP problem: do you have a jumper between two of the pins for VPP selection? That would be the first thing to come to mind. You need a jumper over the middle pin and one side pin to select the VPP. Are you using a laptop? Some laptops have non-standard serial ports that won't work with JDM2 style programmers. Have you setup WinPic800 for JDM2 type programmer? I have been working on a 18f2550 project for the past month using the programmer shown in the picture.

badboydas says:
I could`nt get this programmer to work with Winpic 800 but works fine with Winpic.

Mar 1, 2008. 6:38 AM REPLY

http://www.instructables.com/id/JDM2-based-PIC-Programmer/

mborman says:

Apr 7, 2006. 6:44 AM REPLY - Yes, I have jumper (I've tried both positions) - Yes, I use the laptop, but my laptop has no COM ports - only USB, so, I use the "USB-to-COM" converter. How I can check suitability of my converter to use with JDM2? Can You, please, send me the voltage reference on COM-port pins? - In my WinPic800 the "JDM2" programmer is not present - only "JDM". May be, I use wrong version of WinPic800? And - may be, I have to set additionally some parameters - like "inversions" on pins, differen assignments and so on?

ian says:

Apr 7, 2006. 9:38 AM REPLY Yes, you are right. Here is what my settings look like. You're problem is probably the USB to serial cable. JDM2 are notorious for not working with those. Google JDM2 to read what others have done.

ian says:
That should be: your problem is (sorry).

Apr 7, 2006. 9:42 AM REPLY

mborman says:
Thank You, very much

Apr 7, 2006. 9:41 AM REPLY

ian says:

Apr 7, 2006. 2:57 AM REPLY A for ground - NO, JDM style programmers use a funky negative voltage balancing act to provide the needed VPP. COM ground cannot be used at the PIC ground, as I understand.

technodude92 says:
are there any instructables on making a USB ICSP Programmer?

Dec 30, 2006. 8:08 AM REPLY

grahamslawson says:
Look here

Nov 26, 2007. 8:06 AM REPLY

technodude92 says:
is this an atmel or microhip programmer... the linked one i mean

Nov 27, 2007. 7:44 PM REPLY

binnie says:
that ones a atmel programmer

Jan 17, 2008. 1:38 AM REPLY

grahamslawson says:
Don't count me on this but I think it it is Atmel. Ill ask in the forums. Look here

Nov 28, 2007. 12:21 AM REPLY

view all 100 comments

http://www.instructables.com/id/JDM2-based-PIC-Programmer/

Das könnte Ihnen auch gefallen