Wednesday, January 9, 2008

A simple programmer for PIC microcontrollers


Perhaps this circuit is the simplest programmer for PIC microcontrollers you can build. It is connected to serial port of your PC and it has a very similar design with the SI-Prog programmer for the AVR microcontrollers. With the help of adaptors you can extend the possibilities and program more PIC microcontrollers.

Details

By default this programmer supports the micros: PIC16C8x, PIC16F8x (PIC16F83, PIC16F84, PIC16F84A), PIC16F62x (PIC16F627, PIC16F627A PIC16F628, PIC16F628A), PIC16F648A, PIC16F716 and generally any PIC microcontroller which has the same pinout, with the very well known PIC16F84. However, with the help of the adaptor, you will be able to program almost any PIC micro that supports the ICSP programming technique.
Keep in mind that the programmer is not supporting low voltage programming. So you must always leave the MCLR fuse selected.
USB to serial converters will not work with this programmer. Your motherboard must have build in serial ports. If it doesn't then you can use PCI serial cards (for one serial port the cost is low).


Components

  • Two Zener diodes at 5.1V (low Watt).
  • One 10KΩ resistor (1/4 Watt).
  • Two 4.7KΩ resistors (1/4 Watt).
  • One 100μF electrolytic capacitor (16 Volts).
  • One 100nF capacitor
  • One 7805 voltage regulator (you don't need any cooler).
  • One 1N4001 common diode.
  • One resistor of 270 Ohms (1/4 Watt).
  • One common green LED.
  • A 18 pin DIP socket (for the PIC16F84 type of micros).
  • A female 9 pin DSUB connector (for PCB).
  • Male pin header (5 pins. If you have one with more pins, just cut it).
  • One power jack.
  • A small piece of a Veroboard.
  • Wire for connections.
  • Solder and soldering iron.

Also you will need a stabilized 9V or 12V external power supply. A 9 Volt alkaline battery is the perfect choice.


Schematic Diagram

Here is the schematic diagram of the simple programmer for PIC microcontrollers (click on the picture to enlarge)

Attention: As we said earlier this programmer doesn't support low voltage programming. So keep the MCLR fuse always selected (read the settings section).
Make sure your serial port is capable to generate the necessary programming voltage (about 11 - 14V) at pin 3 (TxD - Transmit Data). This is important to get into programming mode. Although, in most cases (over 90%), you will not have any problems.
You can program more PIC microcontrollers with the adaptor. See how you can program PIC16F876, PIC16F876A, PIC16F873, PIC16F873A micros by building the PIC16F876/3 adaptor.

 
Settings

In order to work with this programmer you need also the appropriate software. You can find a large number of free software you can use. However here, I will discuss the settings only for icprog programmer (www.ic-prog.com).


If your computer isn't fast enough increase I/O Delay. With a Pentium II 333MHz I didn't have any problems with the delay even when set at 1.
Attention: In order to use Direct I/O in Windows XP, you need to download the appropriate driver from the same source you downloaded icprog (www.ic-prog.com).

Don't forget to leave the MCLR fuse bit selected, like in the following picture

Also uncheck the LVP fuse bit (but this is not so critical).

 
Pictures

In the following pictures you see the programmer build on small piece of a Veroboard.


No comments: