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.