This EPROM Emulator was designed to compliment the EPROM Programmer (Mark 2). An EPROM Emulator can save a vast amount of time when developing software, compared to programming and erasing EPROMs.
The unit presented here will emulate the standard 27 family of devices, from 2764 to 27512, and can be used with an IBM PC compatible computer. The smaller 24 pin devices in this family (2708, 2716 and 2732) are almost obsolete and are now more expensive than a 2764. I did not feel it necessary to accommodate these devices in this design since they would significantly increase the complexity.
This design uses readily available components to reduce the likelihood of obsolescence. The unit is powered from either an external PSU or the circuit under development – the supply requirement being 5V @ 100mA. The power supply design for the EPROM Programmer will also power this unit if an external supply is needed.
The emulator itself is dumb and is controlled by the host computer via the RS232 serial port (COM1 or COM2). Device selection and operation mode is set by front panel switches.
The accompanying software is available for download. The software will operate on any PC running MS-DOS or PC-DOS version 3.0 or later and having at least 512K of RAM and one RS232 serial port. A hard disk and a colour monitor are strongly recommended. The software is written in Microsoft QuickBASIC V4.5, and the full source code is supplied for those wishing to enhance or modify it. This source code is also compatible with QBASIC, as supplied with MS-DOS 5.0 and later. You do not need QuickBASIC or QBASIC to use this disk. The disk also contains the software for the EPROM Programmer. A description of the software operation is given later.
The unit may also be suitable for use with other types of home computer having an RS232 serial port, although this has not been tested and no software is available. It will definitely not work with Commodore Amiga computers, due to a peculiarity in the serial port handling.
How it Works
The circuit diagram is spread over a number of illustrations. Although it may initially look complex, it is in fact relatively straightforward. When a “-” follows a signal name (for example STROBE-), this shows that the line is active low. When a number is followed by an “h” this indicates that the number is hexadecimal.
The RS232 (serial) interface, buffering and clock are shown in figure *. IC3 (6402) is a UART (Universal Asynchronous Receiver/Transmitter) which basically converts serial data to parallel and vice-versa. The device supports most common serial data formats, in this application it is configured to give eight data bits, one stop bit and no parity checking. The data rate is set by the crystal controlled clock circuit (IC2), which in most cases will be set to 9600 Baud. Since this unit is designed to receive data only, the parallel input lines (pins 26 to 33) are held low and the serial data output line (pin 25) is not connected.
A gate in IC1 is used as the RS232 buffer, converting the +/- 10V RS232 standard data from the PC to a 5V pulse train suitable for the UART. The diodes restrict the RS232 voltage to within the 0-5V range, the remainder is dropped across R7.
A byte of serial data arriving on pin 20 of IC3 will be converted to parallel data, which will appear on pins 5 to 12. Pin 19 will go high, and no further data can be received until pin 18 is taken low momentarily. One gate of IC4 causes this to happen, R3 and C8 create a slight delay giving a STROBE- pulse with adequate width for clocking other devices.
R4, D1, C9 and one gate of IC4 produce the power-on reset pulse for IC3, IC5 and IC6. SW1 allows the circuit to be reset again as required.
Assume SW2 is in the upper position (Upload), so Fill- is low and Run- is high. IC12, IC13 and IC14 are disabled, so the ‘EPROM’ socket SK1 is isolated from the RAM. IC7, IC8 and IC11 are all enabled, effectively connecting the RAM (IC9 and IC10) to the address counters (IC5 and IC6) and the UART.
Visit Here for more.