1. Introduction

        This text is another topic about EPROM programmer (eprommer). But this time, the eprommer can be used to burn the range type of EPROM (2716 ~ 27512 types). The algorithm is the implementation of the standard EPROM programming algorithm and intelligent EPROM programming algorithm.Original version run on an amiga computer, and developed by 3 person. Version 1 (1989) made by: Bob Blicks (original design), version 2 (1990) changed by: Udi Finkelstein, and version 3 (1992) changed by: Carsten Rose. I got the last version that run on amiga. Now I change it to run on IBM PC compatibles. The circuit is look like this (changes was made according to the computer's LPT parallel port, because amiga's not compatibles).
Eprommer Schematic Diagram (13.868 bytes) Click this thumbnail to see large schematic.
The circuit works in semi-auto process, because it needs a jumper for each type of EPROM. I called it as PIE (Pin Identification of EPROM or Personality Identification module of EPROM). Use a 16 pin IC socket.
Eprommer PIE Connection (7.411 bytes)Click this thumbnail to see large picture.

2. Details

        To make the circuit run on IBM PC compatibles LPT parallel port, some changes must be made, because amiga's LPT port not compatibles with this one. I have selected this bits and the changes are like below :
      PURPOSE               IBM PC's LPT parallel port               Amiga's LPT port
   1. Decoder activated     PC-3 = Select-in (Inv.), pin 17          Sel., pin 13
   2. Data byte             D0 ~ D7, pin 2 ~ pin 9                   D0 ~ D7, pin 2 ~ pin 9
   3. OE activated          PC-2 = Init (normal), pin 16             Busy, pin 11
   4. PGM activated         PC-1 = Auto-feed (Inv.), pin 14          Pout, pin 12
   5. Common ground         GND, pin 18 ~ pin 25                     GND, pin 18 ~ pin 22
   6. Card identify 0       PS-7 = Busy (Inv), pin 11                not implemented
   7. Card identify 1       PS-3 = Error (normal), pin 15            not implemented
   8. Hardware trigger      PC-0 = Strobe (Inv.), pin 1              not implemented
      (for next expansion)
   9. Hardware programming  PC-4 = IRQ-7 enable (normal)             not implemented
      (for next expansion)
  10. Read option           PC-5 = bi-directional enable             not implemented
Note that item 8 and 9 are for the next expansion and used to do the option of programming with used hardware delay time (hardware triggered at IRQ-7, printer interrupt). This option is used to study and for comparison only, beside that adding this option will add more cost. I did not implemented the hardware anyway. Beside that PC already has the very exact hardware timer (PIT), so we can used it and only needs some programming techniques, used interrupt IRQ-0.

The circuit working algorithm is like this :

Vpp decoder,  Power supply section and address decoder latch data  works like this :
  1. Voltage +25V = 000XXXXXB
  2. Voltage +21V = 010XXXXXB
  3. Voltage +12V = 100XXXXXB
  4. Voltage +5Vor 0V = 111XXXXXB, PIE pin 8 and 9 short = 0V, PIE pin 8 and 9 open = +5V
  5. EPROM address Hi = XXXXXX10B (Set Lo), XXXXXX11B (Keep)
  6. EPROM address Lo = XXXXXX01B (Set Hi), XXXXXX00B (Forbidden)
Data byte for PC port works like this :
  1. PC-5 = Set read I/O port (Hi) = XX1XXXXXB
  2. PC-4 = Hardware trigger (Hi) = XXX1XXXXB
  3. PC-3 = Activated Vpp decoder (Lo) = XXXX0XXXB
  4. PC-2 = OE pulse (Lo) = XXXXX0XXB
  5. PC-1 = PGM pulse (Hi) = XXXXXX1XB
  6. PC-0 = Trigger programming pulse, for the next expansion = XXXXXXX1B

3. Program

Implementation of those bytes to each EPROM types and modes are as follow (parts of data program by using look up table) :
;------------------------------------------------;
; Table of each EPROM mode                       ;
;------------------------------------------------;
; Decoder selection                              ;
; D7 = Voltage select +21V                       ;
; D6 = Voltage select +12V                       ;
; D5 = Voltage select +Vpp                       ;
; D4 = Voltage selection for Intelligent prog.   ;
;      +5V standard prog., +6V intelligent prog. ;
; D3 = Pulse delay, 50 ms or 1 ms                ;
; D2 = not used                                  ;
; D1 = EPROM address select (Hi)                 ;
; D0 = EPROM address select (Lo)                 ;
;------------------------------------------------;
; Voltage +25V = 000XXXXXB                       ;
; Voltage +21V = 010XXXXXB                       ;
; Voltage +12V = 100XXXXXB                       ;
; Voltage +5Vor 0V = 111XXXXXB                   ;
; PIE pin 8 and 9 short = 0V                     ;
; PIE pin 8 and 9 open = +5V                     ;
; Intelligent voltage +6V = XXX0XXXXB            ;
; Standard programming pulse = XXXX0XXXB         ;
; EPROM address Hi = XXXXXX10B (Set Lo)          ;
;                    XXXXXX11B (Keep)            ;
; EPROM address Lo = XXXXXX01B (Set Hi)          ;
;                    XXXXXX00B (Forbidden)       ;
;------------------------------------------------;
; each EPROM Decoder selection data              ;
;------------------------------------------------;
                   DB   'DataSeleksiDecoder:'
DATA_DECODER       LABEL BYTE
M_2716             DB   11111111B ;Read
                   DB   11111111B ;Stand-by
                   DB   00011111B ;Program
                   DB   00011111B ;Verify
                   DB   00011111B ;Inhibit
                   DW   07FFH     ;Byte count
M_2732             DB   11111111B
                   DB   11111111B
                   DB   00011111B
                   DB   00011111B
                   DB   00011111B
                   DW   0FFFH
M_2732A            DB   11111111B
                   DB   11111111B
                   DB   01011111B
                   DB   01011111B
                   DB   01011111B
                   DW   0FFFH
M_2764             DB   11111111B
                   DB   11111111B
                   DB   01011111B
                   DB   01011111B
                   DB   01011111B
                   DW   1FFFH
M_2764A            DB   11111111B
                   DB   11111111B
                   DB   10011111B
                   DB   10011111B
                   DB   10011111B
                   DW   1FFFH
M_27128            DB   11111111B
                   DB   11111111B
                   DB   01011111B
                   DB   01011111B
                   DB   01011111B
                   DW   3FFFH
M_27256            DB   11111111B
                   DB   11111111B
                   DB   10011111B
                   DB   10011111B
                   DB   10011111B
                   DW   7FFFH
M_27512            DB   11111111B
                   DB   11111111B
                   DB   10011111B
                   DB   10011111B
                   DB   10011111B
                   DW   0FFFFH
;------------------------------------------------;
; All of control byte data                       ;
; Send to PC port                                ;
; Note : PC-7 ~ PC-6 = not used                  ;
;        PC-5 = +Enable bi-directional           ;
;        PC-4 = +IRQ-7 enable                    ;
;        PC-3 = +Select-Input (Inv.)             ;
;        PC-2 = -Initialize                      ;
;        PC-1 = +Auto-feed (Inv.)                ;
;        PC-0 = +Strobe (Inv.)                   ;
; Byte used for EPROMMER :                       ;
; PC-5 = Set read I/O port (Hi)                  ;
; PC-4 = Hardware trigger (Hi)                   ;
; PC-3 = Activated Vpp decoder (Lo)              ;
; PC-2 = OE pulse (Lo)                           ;
; PC-1 = PGM pulse (Hi)                          ;
; PC-0 = Trigger programming pulse               ;
;        for the next expansion                  ;
;------------------------------------------------;
; Special for 2732 and 27512 types, pin OE/VPP   ;
; was combined in 1 pin                          ;
;------------------------------------------------;
; Special for 2764 - 27128 types, pin PGM/CE     ;
; separated, so CE opt. taken from pin A-15      ;
;------------------------------------------------;
; Each EPROM setting data                        ;
;------------------------------------------------;
                   DB   'DataPemalang:'
DATA_PEMALANG      LABEL BYTE
P_2716             DB   11001010B ;Read
                   DB   11001100B ;Stand-by
                   DB   11001110B ;Program
                   DB   11001010B ;Verify
                   DB   11001100B ;Inhibit
P_2732             DB   11001010B
                   DB   11001100B
                   DB   11001110B
                   DB   11001010B
                   DB   11001100B
P_2732A            DB   11001010B
                   DB   11001100B
                   DB   11001110B
                   DB   11001010B
                   DB   11001100B
P_2764             DB   11001000B
                   DB   11001100B
                   DB   11001110B
                   DB   11001000B
                   DB   11001100B
P_2764A            DB   11001000B
                   DB   11001100B
                   DB   11001110B
                   DB   11001000B
                   DB   11001100B
P_27128            DB   11001000B
                   DB   11001100B
                   DB   11001110B
                   DB   11001000B
                   DB   11001100B
P_27256            DB   11001010B
                   DB   11001100B
                   DB   11001110B
                   DB   11001010B
                   DB   11001100B
P_27512            DB   11001010B
                   DB   11001100B
                   DB   11001110B
                   DB   11001010B
                   DB   11001100B

The program (beta version) already test for the CPU speed of 80486-DX2-66 (66 MHz) and Pentium II - MMX (300 MHz) and run well (Note: run only in pure DOS mode, not in DOS Box - win95 and up). It should be run on PC below this speed in fact, but I didn't try it. Please try by yourself. The limited is it can be operated on a bi-directional parallel port only, not on the standard parallel port. Besides that, I only test for 2732-A, 2764-A, 27256 types of EPROM. Sorry, its only available in Indonesian version right now. If I have received about 50 emails, may be I try to make the english version later. Here is it looks like :
Eprommer Menus (6.927 bytes)Eprommer Editor looks like (14.944 bytes) Click these thumbnails to see large displays.
Carsten's software adds the ability to read/write EPROM type 2364A, but I don't put it in here (I don't have the data book for this type). He also adds the ability to read some of RAM types which work like IPROM. I also didn't implemented it too, but I add special option to allow users choose any kind of type by their own purpose.

4. Hardware

        Because the original layout was written in amiga software, I could not open its layout (unknown file format), so I redrawn it using protel software. There were quiet a lot of jumpers, because I used a single layer PCB. You can draw your own design if you want. But this one works well. The PCB separate to two pcs, one for the panel and another for power supply.
Eprommer PCB Layout (16.902 bytes)Eprommer Power Supply PCB Layout (7.755 bytes) Click these thumbnails to see large PCBs layout.

5. Part Lists

Component part lists to build the complete set are :
   1. Resistors :
      R1 ~ R3 = 5k1 ..................................................... 3 pcs
      R4 = 1k ........................................................... 1 pce
      R5 = 220 Ohm ...................................................... 1 pce
      R6 = 4k3 .......................................................... 1 pce
      R7 = 20k .......................................................... 1 pce
      R8, R10 ~ R12 = 10k ............................................... 4 pcs
      R9 = 3k9 .......................................................... 1 pce
      R13, R14 = 4k7 .................................................... 2 pcs
   2. Capacitors :
      C1 ~ C3 = 0.01 uF (ceramic) ....................................... 3 pcs
      C4 = 68 uF/16V (elco) ............................................. 1 pce
      C5, C6 = 220 uF/50V (elco) ........................................ 2 pcs
      C7, C9 = 4.7 uF/16V (elco) ........................................ 2 pcs
      C8 = 470 uF/16V (elco) ............................................ 1 pce
   3. Semiconductors :
      D1 ~ D4 = 1N4001 .................................................. 4 pcs
      D5, D6, D8, D9 = 1N4148 ........................................... 4 pcs
      D7 = 5V1 (zener) .................................................. 1 pce
      Q1 ~ Q3 = BC548 (transistor) ...................................... 3 pcs
      IC1 ~ IC3 = 74LS374 (octal latch) ................................. 3 pcs
      IC4 = 74LS245 (3-state octal buffer) .............................. 1 pce
      IC5 = 74LS02 (quad nor gate) ...................................... 1 pce
      IC5 = 7805 (volt-reg) ............................................. 1 pce
      IC6 = LM317T (volt-reg) ........................................... 1 pce
      LED = red, green (3 mm) ........................................... 2 pcs
   4. Others :
      IC socket for EPROM (28 pin) or better zif-socket (textool) ....... 1 pce
      IC socket for PIE (16 pin) ........................................ 6 pcs
      Optional IC socket (20 pin) ....................................... 4 pcs
      Optional IC socket (14 pin) ....................................... 1 pce
      LPT connector, DB-25 socket (female) .............................. 1 pce
      Transformer = 12V-AC/500mA ........................................ 1 pce
      Optional on/off switch for power supply ........................... 1 pce
      Optional miniature jack socket for power supply ................... 1 pce
To reduce the cost, I used LS type ICs. HCT types may cost about 2 times more expensive. HCT types may be improve the speed performance however. But LS TTL is good enough. My prototype run well, I put a 15 us delay for setup time (data book says about 2 us, refer to the programming algorithm) I/O access.

6. Testing

When everything was done for the first time, the circuit must be test for the correct working. Run the test program with a good multitester. The test program look like this :
Testing Preview (7.265 bytes) Click this thumbnail to see large display.
The test point can be tap at EPROM socket or PIE socket. Note that pin 14 EPROM socket is common ground.

7. Mounting

        For the compact mounting, all the components and pcbs can be put in one box, except for the transformer. My prototype has dimension about 20 cm x 15 cm x 5 cm and made by plywood and seems nice.
Panel Preview (9.548 bytes)Box Preview (1.834 bytes) Click these thumbnails to see large constructions.

8. Next Modifications & Expansions

        Below are all the modifications and some expansions which can be added to the circuit. Note that in my prototype, this modifications & expansions didn't implemented. Schematic Modification for Eprommer (25.617 bytes) Click this thumbnail to see large schematic.

8. My Prototype

        Here is the implementation of the layout panel above. The dimension about 20 cm (L) X 15 cm (W) X 5 cm (H). All the component include heatsink plate for IC, except for the trasformator can be filled inside.
My prototype (18.847 bytes) Click this thumbnail to see large prototype.
 

9. Feedback

  1. A few reader gave me feedbacks, that some already built it but had found some difficulty. Another with apreciate. But all of it I think that more important things is a help to understand Indonesian. So for that I already prepare the help file in hope that it will be useful for another person who doesn't know Indonesian. The translate is in English. May be helpful.

  2. Peter Kasac asked about the 2 leds (green and red) where to put. Because they aren't in the schematic. I put it at the output of ic-7805 for the red led, and the output of ic-lm317 for the green led. Don't forget to connect the R13 and R14 to limit the current.

  3. Thomas Ciciyan from Iran-Tehran designed the single layer pcb for all of the functions, include supply part, port, uv access to erase EPROM's, and some other improvements. But I couldn't see the layout. I don't know which program he used to modify the layout. If some one know it please inform me later then.


LibrariesReferences :


- by : David Setya Atmaja
Visitors number : 


HomeReturn to Main Page

Free Web Hosting