ELM Home Page


March 3, 1995

Simple ROM emurator


EP-ROM

The ROM emulator is a kind of the debuggers to connect to the ROM socket of the target system. Typical ROM emulators supplied from manufactures have many functions, such as step execution, tracing, source level debugging, and so on. This ROM emulator improves the easiness to build/use it by reducing down its function which can be used as a ROM emurator.

The kind of the ROM types to be emulated, are 2764, 27128 and 27256. The debugging capability is only Load and Run, omit functions such as trace or step execution. It will still sufficient because Load and Run is used mainly even if using an ICE.

No power requiment. Operating power is supplied from the target system. However, the data on the buffer memoly is not held when the target power is down. Therefore, the data must be sent again after power is up.

Use a PC to control the ROM emurator via a parallel port instead of an interface board to attach it to the various PCs easily.

Build the ROM emulator as small as possible. Let's try a limit of the miniaturization this time, the card size is a goal.

Building Hardware

PCB
Circuit diagram

Because a goal is card size, all the parts to be used are surface mount devices. All parts are mounted on the settlement side of the proto-board of 50mils pitch.

First, after the position of the ICs is decided, wire in the order of the power line and the signal line. It is good when TA(0.5mm dia) is used for the power lines and UEW(0.2mm dia) is used for the signal lines.

Wire signal lines as route between the IC's. The wire is connected with pre-soldering because it cannot be wound to the lead of the ICs. Be careful because it becomes the end and has difficulty if it isn't wired with thinking about the wire density.

When wiring is finished and operation is confirmed, cover the circuit board with thin plastic board. The part inside dashedline of the circuit diagram could be built within the size of 69mm x 47mm x 5mm as a result of the try to the miniaturization. The goal was decided to be attained with ease because it was card size.

The power lines that signal returns, of the connection cable from the ROM emurator to ROM plug, are only two. You had better shorten it as much as possible.

There was no special part in the junk box, I used only standard logics. When you couldn't obtain SOP ICs, DIP ICs can be used. I recomment to use DIP ICs instead of SOP ICs.

I think that to obtain high-speed SRAM is easy because it is on the market for the cache memory. If you couldn't get it, a substitution is possible even with an ordinary SRAM. But emuration speed, such as access time, will decrease.

The cost of parts was as much as $40.

The Basic Function

  1. When PROG signal goes "Low", the ROM emulator enters Running Mode. The address from the target system is inputted to buffer RAM via U3 and U4. The read data from the buffer RAM can be read from the target system via a data buffer (U2). The value of address counters (U6, U7) is cleared to zero, and its output is disabled. The data shift register also be disabled.
  2. Data transfer mode: When the PROG goes "High", the ROM emulator enters the data transfer mode. The address input from target system is disconnected from the buffer RAM, and the counter output is enabled and input to RAM as the address to be transfered. The reset of the counter is disabled, and the counter gets able to count-up. Output of the buffer RAM is disabled, and the output of shift register (U8) is enabled and input to the buffer RAM. In data transfer mode, to prevent faulty operation of the terget system, the RESET probe should be connected to reset generator on the terget board. Because the read data from target system becomes wrong.
  3. To write data into buffer RAM: DATA is shifted in into the shift register with rise edge of the CLK. Send data to the shift register in order from MSB.
  4. When positive pulse is given to the STB, data in the shift register is written into buffer RAM, and the address counter is incremented. The first STB is invalid, and an address 0000h is output after that. (due to specifications of 74HC590). An STB pulse must be applied after enter data transfer mode before start to transfer.
  5. Write all data from the first address by repeating 3 and 4. When emurate 2764 or 27128, whole buffer RAM(32KB) including images must be filled, because A13 and A14 may be left unconnected.
  6. Make PROG "Low" after the data transfer is finished, the reset is released, the target system will start.

Control Program

EROM.COM is a control program to use the ROM emurator attached on the LPT1. The archive is including also source files. Its usage is as follws:


Stop the target system and transfer the program code.
>erom <rom type> <hex file>

Start the target system (release the reset)
>erom g


Stop the target system (reset)
>erom r <rom type> is 64, 128 or 256 (ROM type to be emurated)
<hex file> is a data file in intel hex format.

Sign