Eprom Programmer : programmer side

Overview

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.

Devices

List of devices, I have used, others should be possible, but I have not tried :

  1. Eproms : 2716, 2732, 2764,27128, 27256, 27512
  2. EEproms : 2864
  3. msc51 : at89c2051, at89c51, at89s52
  4. msc48 : Program memory read only: 8048, 8049, 8748, 8749
  5. Avrs : attiny15, attiny2313, attiny26,at90s4433, atmega8, atmega48, atmega88, atmega168, atmega8515
  6. Pics : There is an entry for pics - But, it really has to be done...

Hardware

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)

Software

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.

Tools

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.

Warning

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.

To Do

Replace at89c51 with an Avr, pin compatible, like atmega8515 or atmega162 and write the programm in C.

References

  1. ASxxxx Cross Assemblers.
  2. gEDA Project Homepage.
  3. host part of the programming system.

Download