Choosing a PIC Programmer
If you are a beginner in the world of PIC microcontrollers then you will probably have this question in your mind: Which programmer should I buy? This is an obvious question because there are tons of PIC programmers available from various vendors and if you search on the various online technical discussion forums for their reviews, everybody has his own opinion. This will confuse you more, and you will be ended up with nothing. I would suggest, just buy one that you can afford and that fulfills your need.
Having said that, I won’t recommend to buy one that requires a parallel or serial port. I also don’t recommend to try building the free PIC programmer circuits available on the internet. Most of them are based on either serial or parallel port which are disappearing from the modern desktops and laptops. Even if you do have those in your computer they may not work because those circuits rely on specific voltage and current requirements from the computer ports. At the end, you will be frustrated.
My suggestion would be to buy a USB PIC programmer that has in-circuit serial programming (ICSP) capability. With ICSP, you can program a PIC microcontroller while it is in the application circuit. You don’t have to take it out every time you need to reprogram it. This offers tremendous flexibility in programming and reduce the project development time. ICSP requires altogether 5 connections between the programmer and the PIC microcontroller. They are supply voltage (Vcc), supply ground (Gnd), programming voltage (Vpp), data (ICSPDAT or PGD) and clock (ICSPCLK or PGC). Read ICSP Guide from Microchip for more detail.
These days USB programmers are not expensive. You can get one for less than 20 bucks. I have recently got a new PIC USB programmer (iCP01) from iCircuit Technologies. It is a ICSP programmer that costs just $16.50 and it works great. They ship it from Malaysia, and I got mine in 10 business days which is not bad (I live in USA). It supports quite a bit of flash PIC devices ranging from 8- to 40-pins. The complete list of supported devices is found here. I like this programmer because it is very small and easy to carry. The good thing is that it is compatible with Microchip’s PICkit and MPLAB IDE softwares. I am using PICkit software to program PIC microcontrollers with iCP01 programmer. I have got another USB PIC programmer that I bought a couple of years ago from MCUmall electronics. But the iCP01 programmer programs much faster than that. And it automatically detects the target microcontroller connected to it. Here’s the picture of my iCP01 programmer.
As I said, it has got an ICSP header pins to program a PIC microcontroller in the target circuit. The five pins in the header are sequentially Vpp, +5V, Gnd, ICSPDAT, and ICSPCLK. The Vpp pin can be identified with the red color wire in the ribbon.
You can also use iCP01 as a stand alone programmer by buying an additional adapter from the same vendor. It has a 40-pin ZIF socket to hold a wide range of PIC microcontrollers. The iCP01 programmer with the additional adapter will look like this.
I tested the programmer by loading a test program (flashing an LED) into a PIC16F688 microcontroller. Here’s my test circuit.
Next, I am going to test the programmer with other PIC microcontrollers, and see how it works. I will definitely share my results here.