1. Introduction
click the image for zooming
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
click the image for zooming
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 implementedNote 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.
- Stuff data byte for latch address decoder lo (loaddr = 0, hiaddr = 1) + Vpp for each EPROM mode to DP port.
- Activated SEL hi (pin 11 decoder = 1) to PC port, data byte for latch address lo stuff in to Vpp decoder.
- Stuff EPROM address data byte lo to DP port.
- Deactivated SEL lo (pin 11 decoder = 0) to PC port, EPROM address data byte lo stuff in to address decoder lo and Vpp decoder data not changed (keep).
- Stuff data byte for latch address decoder hi (loaddr = 1, hiaddr = 0) + Vpp for each mode to DP port.
- Activated again SEL hi (pin 11 decoder = 1) to PC port, data byte for latch address hi stuff in to Vpp decoder.
- Stuff EPROM address data byte hi to DP port.
- Deactivated SEL lo (pin 11 decoder = 0) to PC port, EPROM address data byte hi stuff in to address decoder hi and Vpp decoder data not changed (keep).
- If the process are for read and verify mode, stuff data byte Vpp mode to DP port. Activated SEL hi (pin 11 decoder = 1) to PC port, Vpp data stuff in to Vpp decoder. Stuff data byte to enable bi-directional option + Busy lo (so the tri-state buffer direction reverse) to PC port. Read data byte from DP port. Stuff again data byte to disable bi-directional option and busy hi. And so on ...
- If the process is to write data byte (program mode), stuff data byte Vpp mode to DP port. Activated SEL hi (pin 11 decoder = 1) to PC port, Vpp data stuff in to Vpp decoder. Stuff data byte to enable PGM lo (Pout = 0) to PC port, programming pulse activated. Wait for delay time according to programming algorithm (standard or intelligent programming), Stuff data byte to disable PGM hi (Pout hi) to PC port. And so on ...
- 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
- EPROM address Hi = XXXXXX10B (Set Lo), XXXXXX11B (Keep)
- EPROM address Lo = XXXXXX01B (Set Hi), XXXXXX00B (Forbidden)
- PC-5 = Set read I/O port (Hi) = XX1XXXXXB
- PC-4 = Hardware trigger (Hi) = XXX1XXXXB
- PC-3 = Activated Vpp decoder (Lo) = XXXX0XXXB
- PC-2 = OE pulse (Lo) = XXXXX0XXB
- PC-1 = PGM pulse (Hi) = XXXXXX1XB
- 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 |
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.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 R10, R11 = 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.
No comments:
Post a Comment