Pgrm2 project is the programmer side of my programming system. It use a at89c51 microprocessor to handle the programming circuits and the connection with the host, see [3]. So it is not a standalone hardware, it just do a part of the job.
This programmer is initialy aimed to program eproms that can be plugged directely on the socket. But with help of adaptors, it is able to program any moderm devices as long as the firmware has been created. All programming are done in Parallel mode on a byte/word basis.
Communication is done through host PC parallel port or RS232 serial line. The communication protocol is as much as possible compliant with the stk500 protocol.
List of devices, I have used, others should be possible, but I have not tried :
Hardware, essentialy, consists of port extension around the micro and two programming voltage generators, just in order to symplify the wiring for some old devices. The first one is programmable from 9.5 Volts to 25.5 Volts in step of 0.25 Volt and has to supply 0, 5 Volts as well (The luxe !). The second is limited to 0, 5, 12.5 and 25 Volts. Note some manual switching are necessary before accessing these old devices like 2716 (Not the luxe !).
Here is the main schematics. The other parts and adaptors are in the tarball that you can find at the download section. Click the image to view full size.
Definition of signals on the socket pins.
BUSY 1 40 BUSY
A23 2 39 A15
A22 3 38 A20
A21 4 37 A19
VPP 5 1 32 36 VCC
A16 6 2 31 35 A18
A15 VPP 7 3 1 28 30 34 A17 VCC
A12 8 4 2 27 29 33 A14 PGM
A7 9 5 3 1 24 26 28 32 A13 VCC
A6 10 6 4 2 23 25 27 31 A8
A5 11 7 5 3 22 24 26 30 A9
A4 12 8 6 4 21 23 25 29 A11 VPP2
A3 13 9 7 5 20 22 24 28 OE VPP2
A2 14 10 8 6 19 21 23 27 A10
A1 15 11 9 7 18 20 22 26 CE
A0 16 12 10 8 17 19 21 25 D7
D0 17 13 11 9 16 18 20 24 D6
D1 18 14 12 10 15 17 19 23 D5
D2 19 15 13 11 14 16 18 22 D4
GND 20 16 14 12 13 15 17 21 D3
Connection definition for some Avr adaptors.
attiny26 _
at89c2051 _ |
attiny2313 _ | |
atmega8515 _ | | |
atmega8 _ | | | |
| | | | |
BUSY 1+40/40 PD1(3) PD1(11) PD1(3) P3.1(3) PB6(9)
OE 22/28 PD2(4) PD2(12) PD2(6) P3.4(8) PB5(8)
PGM WR 27/28 PD3(5) PD3(13) PD3(7) P3.2(6) PB0(1)
CE BS1 20/28 PD4(6) PD4(14) PD4(8) P3.3(7) PB3(4)
XA0 2/40 PD5(11) PD5(15) PD5(9) P3.7(11) PB1(2)
XA1 3/40 PD6(12) PD6(16) PD6(11) P3.5(9) PB2(3)
PAGEL 38/40 PD7(13) PD7(17) * * *
BS2 37/40 PC2(25) PA0(39) * * *
XT1 4/40 XTAL1(9) XTAL1(19) XTAL1(5) XTAL1(5) XTAL1(7)
VPP 1/28 Reset(1) Reset(9) Reset(1) Reset(1) Reset(10)
The software is writen in 8051 assembler and consists of a parallel driver, a serial driver, and a table driven functions for each device class.
The software is developed on a Linux system with ASxxxx Cross Assembler, see [1].
Schematics are created with gschem from the GEDA suite see [2]. You could need it to edit, print, view or, why not, create other schematics.
The programmer uses a microprocessor, that itself is programmed and it can be done by the programmer with some cares. So it is a good idea to program a microprocessor spare part. An Avr, with a On-chip booting program and In-System Programming feature, should clear half of this problem.
Replace at89c51 with an Avr, pin compatible, like atmega8515 or atmega162 and write the programm in C.