PIC16F877 Programmer And Development System

Last update: 03/06/2008

Welcome everybody

in these pages you (electronic hobbyist) will find a project to home-built a reliable PIC16F87X based programmer and development system. 

Moreover, a 32 bit native software has been developed around this programmer. 

This  project allows also to program the  PIC16F84 and the I2C serial EEPROM 24LC16.

 

P877 first prototype

Photo of the P877 first prototype

Forewords

Maybe most of you has been looking around the internet resources to find such programmer and a, even more hard to find, freeware software to handle it (possibly not a command line one, nor a 16 bit one).

So while the whole internet world is full of PIC16F84 programmers designs and schematics (driven both by serial and parallel port) there is no much about the PIC16F877 and his family. The same discussion could also apply for the serial I2C EEPROM 24LC16.

Anyway, what is the reason of  the enormous success of these kind of device ? Well,  the answer in pretty simple: with a Microchip PIC's MCU you can built everything you can electronically speaking  imagine.

In fact with a few components beside the PIC (a crystal or ceramic oscillator, a pair of capacitor and a few resistors) it is possible to built MCU controlled circuits to solve the most of electronic topics.

Particularly the one used in the development system it's a mid-range PICMicro MCU ( the 16F877)  that's powered by  8 K of FLASH program  memory  (14 Bit word) that can store long user program. To store non volatile data the 16F877 has built-in a 256 Bytes EEPROM data memory. Moreover 6 analog 10 bit I/O channels are our interface with the whole analog world. With these analog I/O you can measure whatever you want.

That’s way these page comes and I hope this will help someone out there.

Notes: to build with success this circuit a minimum skill in electronics construction is required; so if you have no experience in electronics at all or even can't hold a soldering iron these pages are not for you, sorry :). 

P877 project features

First of all I’ve tried to design this programmer and the software to be fully compliant with the Microchip PIC programming specification, so the input files you will use should also follow these rules.

Please see the Microchip documentation available on line if you want to learn more about the file format used to program the PIC.

The followings are the main features of both HW & SW:

P877 Programmer hardware features:

·         Parallel port driven;

·         ICSP support;

·         Serial I2C EEPROM support;

·         Stand-alone power supply

P877 Programmer software features:

·         Auto detect parallel port I/O address;

·         Read both INHX8M and INHX16 Intel HEX program file format;

·         Program, read and verify 16F84, 16F87X and 24LC16;

·         Copy device on the fly;

·         Save fully compliant Microchip INHX8M file;

·         Read and write MCU internal EEPROM;

·         32 bit native code;

·         Friendly user interface;

·        Works with most parallel port based programmer hardware;

·         Freeware for non commercial uses

The P877 project has been developed  in two version:

·         Programmer only for PIC16F87X, 16F84, 24LC16;

·         Programmer and development system for the PIC16F877.

The programmer only version is very simple (just a few components) and allows to program the PIC16F87X family, the PIC16F84 and the 24LC16.

The programmer and development system version allows to built an ICSP (In Circuit Serial Programmer) hardware board to experiment with the powerful PIC16F877.  

With the help of this board you could test and debug your PIC16F877 applications without the needs to built a prototype board for every project you plan to develop.

The main feature of this system are:

·         LCD display to view results of computation, user interaction etc;

·         Buzzer to emits alarm sound;

·         16 keys standard keyboard;

·         Printed circuit board MCU pinouts extension that allows direct connection to other circuit;

·         Analog I/O connector

The programmer is parallel port driven, signals on port are first buffered by a 7407 and then applied to the proper MCU serial pins (RB6/RB7) to read/write or verify serial data.  Buffered signals will ensure the reliability of the programming process.

This programmer is a derivation of the well-known, public domain, Microchip AN589 application note and algorithm. Voltages are switched using PNP BJT. 

Moreover the programmer hardware has its own power-supply to warranty the respect of programming voltage.

The P877 programmer software can be also used in conjunction with several other parallel port based programmers available on market that compliant with the following parallel port connection:

Parallel Port Signal

Programmer

Signal

D0

D1

ACK

D2

D3

DATA

CLOCK

VERIFY

Vdd Switch (*)

Vpp Switch

(*) The Vdd switch signal it is used by programmer only hardware to switch ON/OFF the Vdd power supply to avoid live circuit while the PIC is being inserted in the socket, since P877 is both an ICSP hardware and  a programmer  it does not use this feature, otherwise the P877 software, to ensure compatibility with other hardware, handles this signal correctly and regularly switch the Vdd ON/OFF as required  by the programmer hardware.

Moreover, to be fully compatible with P877 software the programmer hardware should not invert the parallel port signals in any way.

P877 Schematics

Below are the P877 project schematics. The whole schematic has been split in four part for convenience:

Power supply - Click to enlarge

Power supply

Programmer - Click to enlarge

Programmer

Development system - Click to enlarge

Development system

Programmer adapter - Click to enlarge

MCU programmer adapters

To download the schematics simply click your right mouse button and select 'Save link document as..' or 'Save object as'. If you want to see the schematics  in the browser simply click and and they  will load in a new page. Do not forget to hit your browser back button to return to these page. 

If you want to download all the schematics into a single ZIP file please follow the link below:

Schematics Download

P877 Software

Please follow the link below  to download the latest version of the P877 software. This release of the software is in English language, there is also available a version in Italian; if someone is interested please let me now. Before download please read this.

P877 Download

 

Using Ic-Prog as alternative software on Windows NT/2000/XP

Click here to find how configure Ic-Prog to work in conjunction with P877 hardware.

Reference documentation

The Microchip web site is the best source for info on their MCU'S and serial EEPROM. Another good source of information about PIC micro is 'The Pic Archive'; worth a visit.

Feedback

I've received a big amount of e-mail from many many people around the world that have built the P877 hardware successfully, while I'm very glad of this I cannot ensure feedback and support to this project on regular basis, sorry :)

Anyway the most common question I've received are:

Q: Does your software works on Win XP, 2000, NT?

R: No, and I have no plan  to develop a version for such OS (lack of spare time sorry)

 

Q: Your SW report this error: Run-time error 53, file not found pro877.dll

R: assuming the sw installed correctly the error does not means that the DLL could not be found, it means that the DLL cannot be loaded in memory since you are running the sw on a OS not supported, try to run the software on a supported OS.

 

Q: Can I have the source code to add some feature, etc, etc ?

R: No, it is available only for interested commercial subject that can ask for custom modification.

 

Q: Does your HW/SW can program 20 Mhz PIC16F877?

R: Yes

 

Q: Does your project support 16F877A- I/P?

R: No

 

Q: Help, I cannot read, verify, program, and so on....

R: Try these tips: 

these problems are  most commonly due to long  connection.

to solve these problem you can try either:

- short the RB6/RB7 terminal connection

- add a 1000 pf capacitor between RB6 / RB7 and ground

- check  the 12.75 V at the MCLR pin during programming...

- use a standard 7407 not a 74LS07 or other IC...

- use a short LPT cable

-review the LPT connections (that should be set via BIOS in EPP or bidirectional mode

 

Q: I love your hardware but your software, are there alternatives?

R: Yes, you can try the well-known IcProg

 

Q: Can I use freely your project at university, school, non profit organization?

R: Yes

Guestbook

Guestbook has been removed because of ridiculous and idiots spammers! My apologies for the inconvenient. Anyway allways you can use e-mail.

Conclusion

Hope this small work will help someone. If you have any question about or any idea or suggestion please do not hesitate to contact me. 

P8777 source code

Source codes of the P877 are available for individual or company interested, source codes are comprehrensive of all is needed to develop custom application using the P877 hardware. 

Source code are priced at 150 Euro full royalties to modify and use them for any purpose.

Payment via PayPal (preferred) or bank transfer. Once the payment has been received the source codes will be emailed to you. 

 

Please note: I'm not affiliated in any way with the up and below banners,You are not obliged to click on them.

Angelfire put them automatically on my web page (ruining also the web site layout)

 

Hit Counter

Site visitors since June 2001

The whole contents of this web site is the intellectual property of the author; it is prohibited the use in the commercial busyness of any part of the published schematics or software.

 

Copyright (c) Mario Catena 1999-2005

Contact the author mp.cat@tiscali.it for any question concerning this site

 

 

 

 

 

 

 

 

PIC16F877, PIC16F84, 24LC16, satellite, hack, wafer card, wafer card gold, programmatore, seriale, parallelo, porta, ricevitore satellitare, elettronica, digitale, parabola, pic16f84, f84, pic, microchip, middle-range, MCU,mcu, microcontroller, HEX, BIN, DVB, goldbox, box, 16f84, 16f877, 16f876, programmatore pic, card, software, hardware, biscotti, bioscottini.