A pic programmer circuit based on AN589

AN589 is microchip's application note for a parallel port pic programmer circuit which I chose as I wanted something reliable to get up and running quickly.

Note: This page is left on site for legacy information that is applicable to older computers. These days PCs and laptops have only a USB interface so a parallel programming circuit is not useful. instead you should be using a PicKit3 (or maybe PicKit2) programmer which interfaces to the MPLAB X IDE and works well.

It is really quite a simple circuit and its main objective is to provide ICSP connections to your pic microcontroller.

Here is the pcb version (
click to enlarge):

pic programmer

Note: That the PGM signal is not provided - it's not really necessary anyway as you can turn off PGM mode by programming the chip.  For first use of a chip you will need to pull the PGM line low as PGM is enabled by the manufacturer.

PIC Programmer Circuit diagram

Click on the following diagram to open it as a PDF document.

pic parallel port programmer

 

Disclaimer : If you build this circuit you must double check each connection to the parallel port cable to avoid damage to your computer. This includes checking for shorts between each pin at the parallel port on your circuit. For initial testing it is best if you use a spare (old computer). Building this project is your own responsibility and I can not be held responsible for any damage to your computer.

Modifications

It has a few modifications that are useful and easy to do:

    • Transmission line termination - lets it work over a long cable.
    • LM317 voltage regulator to get 11.6 volts and protect the circuit
    • Power supply steering diode (stops you reverse connecting the supply).
    • Changed LM340-5 to 3pin 100mA LM78L05.
    • ICSP connector.
    • An LED to show that power is applied.
    • Changed 74LS244 to 74HCT244 because I had one handy!
    • Standard 10k resistors instead of 2k - just easier if they are all the same.

Circuit notes

Transmission line termination

The transmission line termination lets you use the pic programmer circuit at the end of a long cable - I am using a normal parallel cable ~6 feet long. If you want to know more about transmission line terminations then follow this link.

When I first tried to use it I got all kinds of random results so it is worth adding the termination.

Power supply regulators

The LM317 saves you needing an accurate bench power supply - you can use a dc power block - anything that supplies more than about 15V dc. If you don't use a 317 it's just too easy to accidentally apply the wrong voltage by turning the dial on a bench supply and frying your microchip. Using the 317 lets you put up to 35V into it (you shouldn't but you can).

Note: the LM317 and LM78L05 are standard components and are easy to find.

To save using odd resistor values I used a 10k and a 1k to set 317 output voltage. The equation for the LM317 is:

Vo = 1.25 * (1+R2/R1)

Vo = 1.25 * (1+10k/1k2) = 11.66V

5V power supply

Following on from this is the 5 volt regulator which is only used to power the LS244 buffer. Its just not worth using a Zener diode supply as the actual voltage at the Zener varies with the load (it's voltage is only specified for a constant current through it) you then need a transistor to isolate the Zener so its just easier to use the three pin regulator.

Note: The pin out of the LM78L05 is different to its larger counterpart the LM7805.

It is not a good idea to power the board from the programmer as :

    • The 5V regulator should be designed for the target board i.e. heatsinking etc.
    • You could get more noise into your circuit.

If you want to power your board from the programmer then change the 78L05 for a 7805 which can supply up to 1A but for higher current it will need a heatsink.

Buffer

The pic programmer circuit is a bit wasteful as it only uses two gates from the eight available in the LS244 but it's a cheap part anyway.

Q1, Q2 and Q3 can be replaced with any standard general purpose transistors (two npn and one pnp).

Software

You can use ICPROG with this pic programmer circuit. It erases, programs and verifies your pic microcontrollers.

ICPROG also controls resetting the microcontroller at the end of verify so after programming and verifying the program will start.

ICPROG is a good choice for programming software as it has many programming algorithms for many devices (not just PIC microcontrollers) and it is FREE. It also specifically supports this type of pic programmer circuit i.e. the AN589 pic programmer circuit.

Note: Double check the settings in ICPROG e.g. the HS setting for oscillator selection - otherwise you may find your microcontroller just sits there doing nothing!


Jump from pic programmer to
Best-microcontroller-projects home page

New! Comments

Have your say about what you just read! Leave me a comment in the box below.



Privacy Policy | Contact | About Me

Site Map | Terms of Use





Subscribe to the MicroZine Newsletter and collect your free microcontroller Ebooks, download project code and more...


Visit our Facebook Page:

   Click Here

Recent Articles

  1. The Essential I2C Tutorial: All you need to know about I2C...

    I2C tutorial: Learn all about the 2 wire I2C serial protocol. Learn how easy it is to use, how it works and when to use it...

    Read more

  2. [Arduino] : Using the 74HC595 shift register with shiftOut().

    The Essential Guide to the 74HC595; What it is and how you can easily use one in any of your projects.

    Read more

  3. How to use a DS18B20 on the Arduino for easy temperature measurement

    How to Easily Use the DS18B20 Maxim One-Wire thermometer with Arduino example code showing external or parasitic power modes.

    Read more

  4. Secrets of Arduino millis: How it works and how to use it.

    How to use Arduino millis() to make delays, one-shots and simple schedulers plus simple analysis of arduino millis() code; Find out how it works.

    Read more

  5. The TCS230 Color Sensing Chip: How it works and how to use it.

    How to use the TCS230 (/TCS3200) Color detector chip and easily add it to any of your projects.

    Read more

  6. Pic Programmer Types

    Which pic programmer do you need? This page discusses PIC programmers and gives some essential information on choosing or building your own programmer.

    Read more

Readers Comments

"I wanted to thank
you so so so much
for all the information
you have provided in
your site it's

SUPERB and FANTASTIC."

- Ranish Pottath

"This site really is
the best and my favorite.
I find here many useful
projects and tips."

- Milan

bursach<at>gmail.com<

"Awesome site,
very, very easy and nice
to navigate!"


- Matt
matt_tr<at>
wolf359.cjb.net


Learn Microcontrollers

"Interested in
Microcontrollers?"

Sign up for The
Free 7 day guide:

FREE GUIDE : CLICK HERE


"I am a newbie to PIC
and I wanted to say
 how great your
site has been for me."


- Dave

de_scott<at>bellsouth.net

"Your site is a great
and perfect work.
congratulations."


- Suresh

integratredinfosys<at>
yahoo.com

"I couldn't find the correct
words to define
yourweb site.

Very useful, uncovered,
honest and clear.

Thanks so much for
your time and works.
Regards."


- Anon

Back to Top