Close
0%
0%

ROM-emulator

Emulate a small size ROM with a RAM and Arduino with Intel-HEX interface

Similar projects worth following
ROMemu is a combination of software and hardware that allows the usage of modern software development tools for simple, old style single board computer systems. It emulates an (EP)ROM programmer to the development software and an in-circuit ROM/RAM on the board. With WR* signal wiring it is accessible as RAM from the SBC.

The firmware is stable for some time (developed that with the prototype shield) and the hardware is just debugged on the v1.1 PCB.

ROMemu is a combination of software and hardware that allows the usage of modern software development tools for simple, old style single board computer systems. It emulates an EPROM programmer to the development software and an in-circuit ROM on the board.

The current version 1.1 uses an Arduino Mega 2560 with a shield containing a 32 kByte RAM-chip which is (partially) readable by the SBC-processor. The Arduino USB-connection is available as serial port to the development system. This allows to write Intel-hex data to the RAM.

ROMemu has two modes;
* SBC-mode where it is visible from the host computer and all Arduino pins (data, address, control) are tri-stated,
* Arduino-mode where it is isolated from the host and accessed by the Arduino. There is no synchronisation, but as long as the SBC isn't executing code from the emulated memory, the SBC shouldnt crash (mine didn't).

Technical details.

The basis of the ROMemu is an Arduino shield with a static RAM chip, fully connected to Arduino pins. Additionally three 74HCT244 connect address and control lines and a 74HCT245 connects the data lines of the host SBC. In this mode all Arduino lines are in tri-state mode. An extra signal, ArduinoOnline, can isolate the RAM from the SBC. An 74HCT02 makes sure the RAM is isolated from the SBC when the Arduino has access.

A short flat cable and an adapter board (pod) makes sure the RAM-chip signals are properly configured for the socket. The pod consists of two parts, an adapter between the RAM-pins and the pins provided by the socket and a set of pins for the socket. A pod configuration has to be made for each  socket type you want to support.

There is a github page at https://github.com/electrickery/ROM-emulator.

ROMemu0.5.ino.zip

Copy of the latest Arduino firmware (also on Github: https://github.com/electrickery/ROM-emulator)

Zip Archive - 3.49 kB - 12/24/2020 at 17:11

Download

emuPodKicad.zip

KiCAD files for the flatcable-socket board, with signal pads for patching. These are the 1.1 version files with some extra patch pads. Quite optional, as the pins are available too.

Zip Archive - 7.09 kB - 11/01/2020 at 14:37

Download

socketAdapter24.zip

Adapter to the 24-pin socket.

Zip Archive - 4.24 kB - 11/01/2020 at 14:37

Download

ROMemu1.2.zip

KiCAD files for the Arduino Mega 2560 shield. Fixed, but unproven.

Zip Archive - 28.25 kB - 11/01/2020 at 14:35

Download

RomEmuV1.2.pdf

The boards with the known issues fixed and some minor extra features. I didn't had these produced (yet). There are still more unpopulated shields which are easy to fix, so I probably won't. I certainly don't expect to sell them.

Adobe Portable Document Format - 139.25 kB - 10/28/2020 at 15:43

Preview
Download

View all 6 files

View project log

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates