Microchip PIC microcontrollers come in a wide variety of types from very old PIC16C family through to the latest PIC16F and PIC18F devices, with several other less common types as well. Apart from some very old chips, they are all In Circuit Serial Programmable, which means that they can be programmed in circuit using a PIC ICSP programmer.
There may be some overriding reason why you want to program PIC microcontrollers in a socket programmer before placing them in the circuit but it is hard to think of the benefits as socket programmers aren’t any faster. You also lose the advantage of being able to do firmware updates later, to fix bugs, update a product’s features or customise a product. In System programming has to be the way to go.
Ok, you need a PIC ICSP programmer not a socket programmer, which one should you get? The obvious first choice is a Microchip PICKit3 programmer.
This has these advantages
- Emulator as well as a programmer
- Works from within MPLAB software
- Also has its own programming software
- Low cost
- Can power target circuit (up to 30mA)
- USB interface
- Free firmware updates from MPLAB
- 6-way DIL ISP connector
For development use, it is hard to beat PICKit3 as it acts as an ICE to debug code as well as a programmer. Other Microchip development tools like ICE2 have an RJ11 (telephone jack) connector rather than the simple 6-way ICSP connector. This gives connection issues when you move a product to production as RJ11 is a big, relatively expensive connector choice. They have more debug features but are not good at small scale programming unlike PICKit3. Kanda supply PICKit3 with all our PIC microcontroller training products.
Once you move to production, you probably need something more robust. Having a simpler user interface and the ability to supply more power to the target would be additional benefits. We supply Asix PIC programmers commonly for production as they have lots of production friendly features, such as a Go button , serial numbering and a DLL interface.
The low cost PRESTO PIC Programmer programmer is slower than the more expensive FORTE Version and can only supply 12.V programming voltage. Newer PIC16F1xxx and some PIC18Fxxx require only 9V VPP so would need a circuit to limit VPP voltage if programmed with PRESTO.
Both support all PIC microcontrollers, including PIC24, PIC32 and dsPIC. They also support AVR microcontrollers, Atmel dataflash, serial EEPROMs, TI MSP430 and CCxxxx microcontrollers, CPLDs and many more. As a single programmer for all your production needs, they take some beating. FORTE programmer is generally twice as fast as PRESTO.
What about field updates? What ever you do, it makes sense to add an ICSP interface to your circuit. It is only a 6 x 1 pin header with a few resisters – see PIC ICSP Circuit Schematic. This gives you flexibility to change the firmware in existing products once they have been shipped and you never know when this might be necessary.
Of course, you could use a PICKit3 or PRESTO programmer but these require laptops and some skill to use the programming software. A better solution is a PIC programmer designed specifically for field updates and Kanda Handheld PIC Programmers fit the bill.
They are loaded from the PC but are then completely standalone. A single button press will update the target, which means that anyone can use them. What could be easier?
PIC Programmer Links