WZab's animated logo

Free PIC 16x84 programmer with margining support

Assembled programmer
Although there are many free programmers for PIC16x84 microcontrollers, most of them (see the exception list) do not support so called "margining" - verifying of programmed contents at different power supply voltages. Therefore I've decided to propose a very simple programmer, able to programm and verify the PIC's memory at programmed VDD. The programmer is provided as "free hardware". You can reproduce it and use for any purpose, (even commercial) without paying any fee, but please provide the information about the authors.
This is "free hardware". We do not give you any warranty. You connect this device to your computer and your PIC controller at your only risk. We may not assure you, that it will not blow your PC up :-).

Description

The schematic diagram is available as a gzipped EPS file and as a PDF file. The PIC's power suply voltage is set by three lowest bits of printer data, as described in the table below:

D0D1D2VDD
1xx0 V
0006 V (VDD max)
0105 V (VDD progr)
0014 V (VDD min)

With other resistors values, the programmer may be used for "extended voltage range" series of PIC controllers.

Adjustment procedure

Set all data bits in the printer port to "0", and adjusting the RV1, set PIC VDD to VDD max.
Then set D0=0, D1=1, D2=0 and adjust the RV3, to get the nominal VDD on PIC VDD output.
Finally set D0=0, D1=0, D2=1 and adjust the RV2, to obtain the VDD min on the PIC VDD output

The printed board

The printed board in gzipped Easytrax format was prepared by Wojciech Zaworski .
The gzipped PostScript printouts of bottom layer, top layer and top overlay are available. I will be gratefull if someone prepares the printed board in the GPL PCB format.

If you are going to connect the programmer to the PC with a long flat ribbon cable, you should consider using the additional RC-filters (they are not implemented on the PCB). See the schematic diagram. In the picture below you can see the main PCB with the RC-filters mounted on a small additional PCB.
PICPROG's PCBs

The software

There are two programms available for our programmer. Both of them work in Linux OS.
The first program "mp84" is written by Michal Pleban, and is available under the GPL license. You can download:
  1. Sources in tgz format
  2. Sources in SRPM format
  3. Binaries in RPM format

The second way to use this programmer is a "quick and dirty" patch for the Brian C. Lane's programming software.
To get the software working with our programmer you should:
  1. Download the original picprg sources
  2. Uncompress them with "tar -xzf picprg.2.2.tar.gz"
  3. Download the patch
  4. Apply the patch with "gzip -dc picprg.2.2.wz.diff.gz | patch -p0"
    If the patch gets uncompressed during the dwonloading (Netscape does this), you should apply the patch with "patch -p0 < picprg.2.2.wz.diff"
  5. Compile the software "cd picprg.2.2; make"
  6. As root make "chown root picprg; chmod u+s picprg"
The Vdd level controlling pins (3 [D1] and 4 [D2]) are hardcoded into the software (I didn't decide to modify the GUI so seriously). In the configuration menu you may switch the Vdd level with "<" (Vdd min) "=" (Vdd norm) and ">" (Vdd max) keys. The rest of pins are configured by the GUI, and should be set as follows: In the main menu of the modified PICPRG there are two verification options:

Warning

On my Linux box it happens sometimes, that when I run the picprg, the PIC's Vdd gets on (up to this time I have not found the reason). Inserting of PIC in the socket in this condition may be dangerous. Therefore I recommend adding LED (with a 3k resistor) connected between the GND and Vdd pins, to be warned about such a situation. Chosing the [C] option, and exiting the configuration menu switches the Vdd off, and then it is safe to insert the PIC.

What should be done in the future

We are planing a few improvements in the near future:

List of others free PIC programmers with margining support

If you know about other such designs, please let me know...
Please send any suggestions or comments to me.
Wojciech Zabolotny


[Skip Prev] [Prev] [Next] [Skip Next]
[Random] [Next 5] [List Sites] [Join Ring]
Last modified: Tue Mar 7 15:33:18 CET 2000