Summary of Free programming software for various of the MicroChip PIC series of micro-controllers by Nigel Goodwin.
WinPicProg is updated software for programming Microchip PIC microcontrollers, now hosted at winpicprog.co.uk. It supports EPROM-based chips like the 12C508/9 and 16C505. The article details hardware options including the P16PRO40 programmer kit from Dontronics, modified PCBs by Martin Sniedze and Carlier Patrick, and the FD-ICP parallel port ICSP programmer from Gajjar Dinesh (Foxy Delta). Configuration instructions for the FD-ICP in Custom Hardware mode are provided, along with disassembler updates for 12-bit code.
Parts used in WinPicProg Programmer Project:
- P16PRO40 programmer circuit diagram
- P16PRO40 complete kit from Dontronics
- Ozipic modified PCB layout by Martin Sniedze
- P16PRO modified PCB layout by Carlier Patrick
- FD-ICP parallel port ICSP programmer kit from Foxy Delta
- Optional Programming Adaptor Board for FD-ICP
- High quality PCB included in FD-ICP kit
- All required electronic components for FD-ICP assembly
Following the name change to WinPicProg I’ve now bought the domain name winpicprog.co.uk so all future updates will be under this address, with links from my old pages. I’m happy to try and help with any problems people have, either via email or (preferably) via the new PHPBB support forum, where other users will be able to take advantage of the answers. I’ve added an FAQ page to the support forum, and the first stop with any queries should be to look there!, all users are required to register, and will be emailed when any updates take place.
I’ve had a lot of requests for a circuit diagram for a programmer, so you can download the diagram for the P16PRO40 programmer here, this works nicely with my software, and is one of the programmers I use. You can order it as a complete kit from Dontronics. I’ve been sent PCB layouts for a couple of modified versions of the P16PRO40, you can download details on how to build them, Ozipic by Martin Sniedze and P16PRO by Carlier Patrick, Carlier has offered to make small quantities of boards available, you can contact him on [email protected].
At one time there were plenty of P16PRO40 (and other) kits available, but these seem to have all but disappeared. Happily, I received an email from a gentleman called “Gajjar Dinesh” in India, who’s now selling a parallel port ICSP programmer, and he kindly sent me a sample to evaluate. He dispatched the kit on 25th August, and I received it on 30th August, which I thought was pretty good considering it spanned a weekend and a bank holiday Monday!. The kit includes a very high quality PCB (which you can order separately), and all the required components, and only took about half an hour to put together.
You can order the kit from his website at http://products.foxdelta.com/icp.htm, it’s the FD-ICP, and he also sent me the optional “Programming Adaptor Board” which allows you to use it as a normal (non-ICSP) programmer – I would suggest you order that as well.
To use the FD-ICP you need to set WinPicProg to ‘Custom Hardware’ mode and set it like this, I also had to set the Vpp Delay to about 5mS, this is because of the reset pulse generated on the programmer board – you might need to experiment with this setting. The reset pulse is a vital part of ISCP, and is a major reason why non-ICSP programmers don’t work with ICSP.
Vdd Vpp Vpp40 MCLR Output Clock Input
Pin D2 D3 D4 N/A D0 D1 Ack
Invert No Yes Yes N/A Yes Yes Yes
PIC Tutorial Series
Supported Chips
This is the latest revision of my PicProg series, it has undergone fairly drastic changes, and I’ve now added support for a limited range of EPROM based PIC’s, in particular the 12C508/9, the 12C671/2, and the 16C505. Because of the increased number of chips supported, I’ve changed the Processor selection to a drop-down box. These supported EPROM PIC’s are the only ones I currently have JW (UV erasable) versions of, if anyone wants a particular chip adding I’m willing to look into adding it, but would appreciate an erasable chip sending for testing (as the 16C505JW was – thank you Gene!). I haven’t had time to update the help file for a fair while now, so it’s no longer included with the program downloads. You can download the last version of the help file from here Download HelpFile.
This picture shows the main screen, set to write to a PIC12C672, with a file already loaded and the filename displayed at the top.
With the addition of the 12 bit EPROM chips I’ve had to extend the dis-assembler, it now copes with both 12 and 14 bit code, it also now is able to display larger source files, and I’ve added a much greater range of register and flag labels, it appears to be working extremely well – as usual, I’ll be pleased to hear of any problems or suggestions. One ‘problem’ I already know off (and don’t really see a satisfactory resolution for!) is dis-assembling of Org instructions in 12 bit code, with 14 bit code I do this by checking for a blank byte ($3FFF), but with the 12 bit code a blank byte ($FFF) is a valid instruction ‘xorlw 0xff’, which amazingly was used in the first code I tried it on!, as things stand it will be dis-assembled as an Org line – but will still assemble and run as normal.
For more detail: Free programming software for various of the MicroChip PIC series of micro-controllers by Nigel Goodwin.
- Where can I find future updates for WinPicProg?
Future updates are available under the address winpicprog.co.uk. - How can I get help with problems using WinPicProg?
You can seek help via email or preferably through the new PHPBB support forum. - Can I download a circuit diagram for the P16PRO40 programmer?
Yes, you can download the diagram for the P16PRO40 programmer from the provided link. - Who sells the FD-ICP programmer kit?
The FD-ICP kit is sold by Gajjar Dinesh at http://products.foxdelta.com/icp.htm. - What settings are required to use the FD-ICP with WinPicProg?
You must set WinPicProg to Custom Hardware mode and adjust the Vpp Delay to about 5mS. - Which EPROM based PIC chips does the latest WinPicProg revision support?
It supports the 12C508/9, 12C671/2, and 16C505 chips. - Why is the Blank Chk box visible when programming a 12C672?
It is visible because the chip is an EPROM type that requires checking if blank before programming. - Does the disassembler handle 12 bit code correctly?
It handles both 12 and 14 bit code but may display Org instructions incorrectly for 12 bit code due to valid instruction conflicts.
