I sometimes get a question from my customer: I bought a programmer, where do I insert my PIC?.
Read on.
Every PIC programmer implements following 5 signals:
I recommend to look at Microchip ICSP Guide (Google it up if eBay hides the link):
http://ww1.microchip.com/downloads/en/DeviceDoc/30277d.pdf
Typical programmer connection looks like below (unfortunately eBay shrinked the picture, please see Microchip guide above):

If you want to program PIC in socket and not in your target circuit, you may omit all components and only need:
There is also some non-Microchip programmers. Beware as some work better than others, and always check if the programmer can deliver VPP (programming voltage) in the range of your selected PIC model. These may come with their own software and may not be compatible with Microchip software tools.
The required range of VPP can be located in Electrical Characteristics in datasheet for your PIC model. Datasheets can be located on Microchip Technology website.
ICD2 is more expensive but not necessarily better model. ICD2 can regulate VPP within certain small range (approx 10%).
PICkit2 is ICD2 younger brother. Do not be fooled by simpler design, it has hardware to do everything ICD2 can do. PICkit2 can regulate VPP in much wider range than ICD2 and if some devices are not on the supported list yet, they might be added by Microchip shortly.
So where do you insert your PIC? Nowhere, you need to build a circuit or buy/build an adapter with socket. You only need to connect 5 wires from programmer (see the section above describing programming signals) to their counterparts on the PIC socket or adapter.
Use PICkit2V2 application instead of MPLAB as it contains much more options and allows to set VDD:
http://www.google.com/search?q=PICkit2+V2
or directly to version 2.52 (latest at the time of this article):
http://ww1.microchip.com/downloads/en/DeviceDoc/PICkit%202%20v2.52%20Setup%20A.zip
If you need to debug in-circuit within MPLAB, power your target as some USB ports are not strong enough.
If you need to program a PIC in socket and programming fails at 5V with VDD error, set the lower VDD (for example 4.5V insteaod of 5V).
Read on.
Programming Signals
Most models of PIC microcontrollers implement ICSP (In Circuit Serial Programming).Every PIC programmer implements following 5 signals:
VPP Programming voltage, provided by programmer
VDD Supply voltage (provided by target circuit or sometimes by programmer)
GND Ground
PGD Programming data (or ICSP_DATA)
PGC Programming clock (or ICSP_CLOCK)
VDD Supply voltage (provided by target circuit or sometimes by programmer)
GND Ground
PGD Programming data (or ICSP_DATA)
PGC Programming clock (or ICSP_CLOCK)
I recommend to look at Microchip ICSP Guide (Google it up if eBay hides the link):
http://ww1.microchip.com/downloads/en/DeviceDoc/30277d.pdf
Typical programmer connection looks like below (unfortunately eBay shrinked the picture, please see Microchip guide above):
If you want to program PIC in socket and not in your target circuit, you may omit all components and only need:
- programmer
- socket or adapter
- PIC microcontroller
Available Programmers
Microchip had two succesful models - ICD2 and PICkit2. Schematics for both were published and army of cloners duplicated the devices. There is plenty of them on eBay. These are usually compatible with Microchip software (MPLAB, PICkit2V2, etc)There is also some non-Microchip programmers. Beware as some work better than others, and always check if the programmer can deliver VPP (programming voltage) in the range of your selected PIC model. These may come with their own software and may not be compatible with Microchip software tools.
The required range of VPP can be located in Electrical Characteristics in datasheet for your PIC model. Datasheets can be located on Microchip Technology website.
ICD2 is more expensive but not necessarily better model. ICD2 can regulate VPP within certain small range (approx 10%).
PICkit2 is ICD2 younger brother. Do not be fooled by simpler design, it has hardware to do everything ICD2 can do. PICkit2 can regulate VPP in much wider range than ICD2 and if some devices are not on the supported list yet, they might be added by Microchip shortly.
PICkit2
Original PICkit2 sold by Microchip and distribution does not have any target cables. Many PICkit2 clones sold on eBay do provide target cables as well.So where do you insert your PIC? Nowhere, you need to build a circuit or buy/build an adapter with socket. You only need to connect 5 wires from programmer (see the section above describing programming signals) to their counterparts on the PIC socket or adapter.
Use PICkit2V2 application instead of MPLAB as it contains much more options and allows to set VDD:
http://www.google.com/search?q=PICkit2+V2
or directly to version 2.52 (latest at the time of this article):
http://ww1.microchip.com/downloads/en/DeviceDoc/PICkit%202%20v2.52%20Setup%20A.zip
If you need to debug in-circuit within MPLAB, power your target as some USB ports are not strong enough.
If you need to program a PIC in socket and programming fails at 5V with VDD error, set the lower VDD (for example 4.5V insteaod of 5V).
Guide created: 07/27/08 (updated 11/19/09)
Thank you for voting. If your vote meets our 