Programming microcontrollers isn’t hard. Building a programmer makes a great first electronics project. The goal of this instruct able is to explain the simple ‘in circuit serial programming’ method used with Microchip PICs. Programming a big DIP (through hole) chip is easy. Pop it into a socketed programmer, burn, and return to the application circuit. Test and repeat.
Things get more difficult with smaller (surface mount) chips. There are no standard sockets for QFN, SSOP, QFP, or even the large SOIC .300 packages. There are really expensive ($100s) clips that can attach to, and program, these chips. A different clip is needed for each chip type and pin count you use.
There is an alternative. Its called ICSP.
ICSP means ‘in circuit serial programmer(ing?)’. It is a way of programming a PIC while it is still attached to the application circuit. That’s right, no more chip swapping.
1. There are no programming sockets for small package chips. Clips are expensive.
2. Its a pain to move chips in & out of the programmer during development. Impossible for surface mount parts.
Five connections are needed to program a PIC while attached to an application circuit. I add a 5 pin header to my circuit boards to make this connection quick and easy.
The basics of PIC programming.
Five connections are required to program a PIC. Power, ground, a programming voltage, clock, and data.
+ (Vdd)/-(Vss) These are the power & ground connections (Vdd, Vss). Pretty standard. If you are using a programmer with ‘real’ voltage levels (NOT a JDM2!), your application can run from its own power supply when programmed, eliminating these connections.
Read More: Understanding ICSP for PIC Microcontrollers