Story
Description
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.
Details
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 (SBC). It emulates an EPROM programmer to the development software and an in-circuit RAM or ROM to the SBC.
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 74HCT27 controlling the 74HCT245 buffer makes sure the RAM is visible from the SBC while reading.
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.
This project was reposted with the permission of the author. If you are interested in this project and want to know more, Please check the original article: ROM-emulator | Hackaday.io
And if you want to explore more projects, please follow the author: fjkraan (Hackaday). He has many wonderful projects and is an excellent maker. Enjoy it! :)