PICmicro programmer

MrBarby

Member
I'm looking into building a PICmicro programmer for a more timing critical project and also out of interest.

I've done some google searches but find the array of different designs confusing. I was hoping someone could give me some info on which designs are more compatible and which are easier to use. I'd like the board to be able to program multiple sizes of chip. Also, which chip would you suggest I get to program on? I need features akin to that of the 08M, so shall I just get a 12F683?

Thanks,

Jack
 

hippy

Technical Support
Staff member
The first thing to get your head round is "serial programmng"; this confusingly refers to how the bits are pushed into the PICmicro, one at a time in a long stream, rather than how the programmer necessarily connects to your PC.

The first question is how you wish to connect to your PC ( serial port, parallel, USB ) ?

PICmicro programming is also a marriage between the programmer hardware and the software which drives it running on the PC, and for serial port and USB programmers, firmware within the device itself. You need to find the right combination of hardware and software which will program the chips you are thinking of using, now and in the future.

For general purpose, all-round experimenting I would recommend 16F688 (14-pin), 16F88 (18), 18F1320 (18), dsPPIC30F3012 (18), 18F2450/18F2550 (28), 18F4455/18F4550 (40). The 12F683 sounds like a good choice for an 8-pin.

You should really be looking for a HVP ( High-Voltage Programming ) programmer rather than LVP as that will give you much more flexibility.

And, yes, it's all very confusing. Most designs have evolved in particular families and are often compatible within the family, but not always. Unless buying a pre-built programmer which comes with software and support for a particular chip is advertised, it's a case of having to plough through what software there is and match that against what chips and programmers it supports. Be aware that software support for some chips can be buggy ( especially for some 18F's ) and you may need to use more than one piece of software to use the same programmer with different chips.

I have a P16PRO40 parallel port programmer ( "Tait" family ) which I like, and use PicAll and IC-Prog software although neither support all the chips I'd like them to. It would be interesting to hear what others use.

For someone starting off I would recommend a cheap(ish) ready built programmer ( such as the Rev-Ed BAS800 ), or simply take someone's recommendation as to what they use. Otherwise, find software you like / want and chose the programmer to match is the way I would recommend ( my path was dictated by the programmer being a birthday present ).
 

hippy

Technical Support
Staff member
As to my recommended PICmicro's, that might need a litle explanation as to why those.

These are the ones which best meet my criteria for software development ( which is what I do most of ) and minimum hardware configuration. Must be DIP packaged, must have INTRC clock, after that I score them on ...

Flash : <2K = -2, <4K = -1, 8K = +1, >8K = +2
Ram : <256 = -2, 256 = -1, >512 = +1
Eeprom : <256 = -1, 256 = 0, >256 = +1

I then went through every in-production device in 'number of legs' groups, and found the ones with the highest score. The best of those usually drag in good on-chip hardware with them.

For the ones I didn't cover, since checking ...

10F222 ( 6-pin )
12F683 ( 8-pin )

These ae the devices I'd consider to be the best samples to get or buy from a plethora available if just tinkering or experimenting. For specific tasks or to save money, other criteria would come into play.
 

MrBarby

Member
Thanks very much for your help!

I've been looking around on the internet and I think I might try making this programmer:
<A href='http://www.olimex.com/dev/pic-pg2c.html' Target=_Blank>External Web Link</a>

I have most of the components to hand except the zener diodes, which I can't find anywhere... The schematic shows BZV55C5V1 and BZV55C6V2. I found BZV85C5V1 and BZV85C6V2 diodes at maplin, which have the same zener voltage range but different values such as mA which is rated at 35 instead of 5. Is there any chance that these would work?

Again, thanks for your help, it's much appreciated :)

Jack
 

Dippy

Moderator
Wow, that looks straight forward enough.
And cheap.
Give it a go and let us know how you get on.
What do you reckon the cost will be?

Zeners: as long as the spec is the same they'll be fine. You suggest they're nominally the same with a higher power rating - is that right? I haven't checked, but as long as they're not a foot in diameter they should be fine.

Hurry up and make it as I'm interested in the results.
 

hippy

Technical Support
Staff member
JDM-style programmers seem to be quite widely used and supported by a fair range of software. I've never understood their electronics ( using 0V as Vdd and generating a virtual negative rail ). It might be worthwhile doing a quick Google to see if there are any problems with using JDM-styles on laptops which will likely not give the normal +/-12V serial out, just 0V/5V if you have a laptop.

Also, does this version of JDM do &quot;Vpp before Vdd&quot; which might be needed for programming some PICmicros ? You might need to do some research there to see if this circuit is compatible with what you want to use. One place to start is ...

http://www.hamradioindia.org/circuits/feng.php

It's issues like those which make the whole subject very confusing and have led me to simply stick with what I've got. Getting a straight answer to, &quot;Will this programmer, work with this chip, using this software&quot;, is frequently harder than I'd expected it to be. Sorry if I'm posing more questions than answering.

As to the zeners, as long as the voltage is the same, if they can handle a larger current than what the circuit components call for they will be usable, but I'm not your hardware expert I'm afraid.

If building your programmer on PCB or vero-board, and not using a ZIF socket, I'd recommend adding separate sockets of various size ( 8, 18, 28, 40 ), as that makes it plain sailing to get the chip in the socket in the right place. Having to double-check that the chip is in correctly each time, especially with 8-pin, can become a real chore, and then you'll get careless :)
 

Dippy

Moderator
Good points. No 18F support unless I misread...

But for the sake of a fiver and a morning its worth a go.
If it doesn't work then buy some booloaded PICs and make a simple 3 transistor (Tx/Rx) serial programmer.
 

hippy

Technical Support
Staff member
Here's another variant of JDM, the RCD. The link explains the issue regarding &quot;Vpp before Vdd&quot;; a problem if you need to program both for Internal Oscillator and MCLR as an Input Pin, like the 08/0M is, and how you are likely to want to program your 12F683 to maximise I/O ...

http://feng3.cool.ne.jp/en/rcd.html
 

MrBarby

Member
OK, I'll give it a go and let you know how I get on :)

It should cost around a quid to make, so the worst I can do is blow up my parallel port! It's about time for a PC upgrade anyway...

Yes, there are supposed to be issues with running these on laptops - I'll be using this on a desktop, so I'm hoping it should be OK. As regards the chip, I'm going to try the 16F84 since it seems to be supported by the JDM programmer and is again fairly cheap.

I'm hoping to use this as a stepping stone to greater things :) If it works fairly well and I like the results, I'll look into it further... if not, I'll stick with picaxe for the time being.

Boot loaded chips also look like a really good option, asumming you can still program them in assembler. I'm looking into making some faster programs than aren't possible with picaxe, but can't really justify the &#163;30 price tag on retail programmers.
 

RickAlty

Senior Member
I have a JDM programmer that I bought off eBay from a guy that was making them in Bulgaria. Cost me about $5, but this was before I'd ever made a PCB. I've tried it with a couple of software programs, including the PICAXE programmer in PIC mode, and it can't program any of the chips I've tried it with - although it reads already programmed chips perfectly, and erases chips perfectly as well. Whenever I program with it though, there is always about 3 groups right at the start that don't go in right.
 

djh82uk

Member
Well I do a fair bit of pic programming, I have 3 programmers

An Elvis Multiprog
A Willem EEprom prog
A JDM Prog

They all program pics (limited with the elvis tho) but I prefer the JDM over them all, it is also the cheapest. I have built one, but I also bought one from ebay for around &#163;15 with a ZIF socket (reccomended).

I had trouble getting icprog to work but in the end it work fine now and progs every time without issue

I generally use 16F627A's, 12F629's and 16F877A's (If I want a bootloader). I cannot write code in assembly tho, I just can't figure it out so i use Proton + (picbasic) and sometimes Jal.

Im not very good tho, so I actually use the normal pics for the easy stuff, and the picaxes for the more complicated, just because the picaxe is so much easier to write programs for.

Ive got an AVR programmer here I want to play with next

DJH
 

djh82uk

Member
Rick, I had a similar problem, are you using Winpic by any chance?

try ICprog with the XP patch and the correct hardware settings.

DJH
 

MrBarby

Member
I've been trying to blow up the serial port for the past 3 months using picaxes, but still havn't managed to... Looks like I need to try harder :)

That RCD programmer looks really interesting too. I'll get the components for that and give it a go too!
 

RickAlty

Senior Member
djh.... I've used ICProg and winpic, as well as the PICAXE software. Same problem with all three - if I load a program into one of the buffers in ICProg, for example, then program the chip with it, the &quot;verify&quot; fails. If I then read the chip back into a second buffer and compare the two, the only difference is always like two or three of the groups in the very first row. Everything else will be the same.
 

djh82uk

Member
hmm, thats deffo a wierd problem, if it was not writing anything at all then I could understand.

are you using direct or windows api in icprog?

DJH
 

Tim Vukman

New Member
Hi MrDarby

I have just finished building a version of the Pic-Prog2 which is the one you have posted the external link to.

I have also built a &quot;demo&quot; board to play on and I am using the ICSP interface.

The Pic-Prog2 has a low part count and I found building it to be quite straight forward. All of the components are easily found.

It is working perfectly for the PicMicro 16F88s that I am playing with. I did find the schematic very confusing in terms of wiring to all the empty sockets so I just wired up an 18 pin socket which is all I needed. The data sheet will give you the pin locations that match up with the labels on the schematic.

I have a 4.7k on the MCLR pin on my target circuit to hold it high for normal operation once the chip is programmed. I put this resistor through a jumper which I disconnect when programming. I found that the chip would not program with the resistor in place.

I now have collected quite a series of schematics on programmers and decided the Pic-Prog2 was the one for me to tackle.

I am using the Pic-Prog software set as JDM type programmer and I can write, verify and read with no problems.

I am trying to use the internal clock circuit to drive the 16F88 which is currently not cooperating, but I suspect that's a problem with me and not the programmer.

I also built the Pic-Prog4 circuit from the schematic which did not verify my program. There's a good chance it's a witing issue, but I couldn't find it.

Hope this has been helpful

Tim

 
Top