It is possible to program PIC's and eeproms with linux. There exists a several programs for parallel and serial port programmers. One of these is prog84 originally by Wim Lewis.
I have improved prog84 to work better with Intel hex files and added the ability to read the PIC and dump the contents in an 8 or 16-bit intel hex file.
prog84-2.x can read and write 24c16 eeproms. Similar eeproms like 24c65 and 24c08 should also work, but I haven't tested this.
The program works with most ludpipo-style programmers
(uniprogIV/BR870/BR875 and equivalent serial programmers).
As the pins of the DB25/DB9 connector
are defined in a config file, it should be possible to adapt the
program for many of the serial programers available.
prog84 version >= 2.2b10 again works with parallel port pic-programmers.
I have compiled a DOS version of prog84. It should work in real DOS (MSDOS 6.xx, OpenDos7/DRDOS/...) and in a windows 9x dosbox.
Development is mostly for Linux (should work for freebsd, but not tested). Only source code, no binaries.
For users of windows/DOS, there exists several programs that kan program PIC and eeprom's : pip02, pix, miniprog, picprog06 (or here), ntpicprog (or here), multi5, etc. To my knowledge none of these can do thru-pic programming on ludpipo style programmers, but they can be used to program the PIC-part.
The UniprogIV, BR870 and ludpipo uses a circuit resembling the one shown here. There are additional switches used to select eeprom on MM2 cards, or select RB6/RB7 cards (these switches are not shown).
To use for "write-thru", it is necessary to run a program on the pic16x84. To be able to run this program, the pic16x84 needs +5V on /MCLR, so an additional switch is added ("run" switch). "thru02b.asm" is a pic16x84 program that when run, writes data to the eeprom in conjuntion with "thru84" on the PC. Thru84 generates the clocks necessary for the OSC1 pin on the pic16x84.
An old manual I found for uniprog IV In danish & swedish. In word-doc and wordperfect 7/8 format.
The BR875 is different from BR870. The programming voltage for
PIC's is better than ludpipo style programmers, with BR875 often
12.5-13V. The specifications say 12-14V. Ludpipo-style (and BR870)
often only have 9-11V, which is below specifications (but often
works!). The voltage depends on the quality of the serial port in
Prog84/dump84 works with pic16x84 as usual. Galaxy cards with C4/C8 connected requires a minor change in prog84/dump84 (fixed in version 2.2b9).
The information supplied with BR875 states that it should be possible to run PIC-programs (and write-thru). This is NOT true. The voltage on the MCLR pin of the PIC is either Vpp (13V) or GND (0V), it must be +5V if it should be possible to run programs on the PIC. The extra J3 and R5 are not needed, and have no function at all.
The solution is to ignore J3, and short D6 (8V2 zenerdiode) when running PIC programs (write/read-thru mode). A nice fix is to remove R5 (1k5), cut the GND from J3, and connect J3 on one side to Vdd (+5V) found on pin3/IC1 socket, and the other side (the R5 side) to D6+ (the side connected to + on zener and C1 / 100uF). With jumper-J3 shorted, run-mode is possible, and without jumper J3, br875 works as usual.
These ISO cards have a 16x84 chip and an 24c16 eeprom built in. Whith appropriate software running on the PIC, the eeprom may be written or read. An modified ludpipo programmer may be used with thru84 and thru02b.hex to read and write the eeprom.
16x84 pic +---------+ 24c16 eeprom | | +-------+ | | data | | C2 MCLR-+mclr rb4+--------+sda | C7 DATA-+rb7 | | | C3 CLK--+osc1 rb5+--------+scl | | | clk | | | | +-------+ +---------+ C1=Vcc +5V C5=Gnd 0V
|The connections between the Pic and the eeprom are:|
|pin 10 (Rb4)||-->||pin 5 (SDA)|
|pin 11 (Rb5)||-->||pin 6 (SCL)|
|pin 1,2,3,4,7 of the eeprom should be grounded.|
|pin 8 of the eeprom requires 5v.|
If using multimac cards that have pin 4 & 8 on the ISO-card connected to the eeprom, remember to add tape over pin 4 & 8 !. But in this case why bother use "write-thru" :)
|my picasm page back to my homepage||e-mail: frda(a)post3.tele.dk|