looking for a rom/ram emulator - Page 1
Forum section: electronics / general

author: legacy
author_rank: Super Contributor
timestamp: September 08, 2014, 03:38:42 pm
content: hi guysi need to emulate old DIP ram chips at 5V with parallel bus/8 bit (not SPI, not I2C) asynchronous.looking around for the right equipment i have seen themoates/ostrich-v2which is- 175 USD + shipping, not so cheap but … not so expensive- USB driven (virtual com)- 1Mbyte/sec- a bit documented about its hardware protocol (i could write the handler by myself)- able to emulate a 27040 (512Kbyte/8bit) EPROM at 5V !!! perfect- may be able to bound an other Ostrich unit in order to provide 16bit emulationit is quite perfect, but it is an eprom emulate, i need to emulate a ram because the target should be able to read/write the emulated device.any idea ? suggestions ?edit:if you need information about its protocol, and you find that it is a bit hard to find around the net, don't hesitate to reach out to me by PM.

author: miguelvp
author_rank: Super Contributor
timestamp: September 08, 2014, 05:47:10 pm
content: FPGA with external dual ported memory for higher memory density?PSoC 4 prototype board for 16K? Not sure about speeds and performance.How many address lines are you looking at?

author: legacy
author_rank: Super Contributor
timestamp: September 08, 2014, 06:09:48 pm
content: Quote from: miguelvp on September 08, 2014, 05:47:10 pmSpartan3 are 3.3V, my target is 5V, so this way i will need a level-shifter chip-array to adapt signals, also the fpga needs a SoC and an add on (FTDI-something-chip) to handle the USB protocol through a virtual COM. FT2232 in parallel mode is much more complex at the host side.Quote from: miguelvp on September 08, 2014, 05:47:10 pmWhich one ?Quote from: miguelvp on September 08, 2014, 05:47:10 pmi need to emulate up to 512Kbyte of ram, the Ostrich v2 is exactly like that, but … it is EPROM emulator (read only from the target point of view).

author: nctnico
author_rank: Super Contributor
timestamp: September 08, 2014, 06:14:26 pm
content: AFAIK many eprom emulators can also emulate ram. Try to find the manual online.

author: miguelvp
author_rank: Super Contributor
timestamp: September 08, 2014, 07:12:24 pm
content: Quote from: legacy on September 08, 2014, 06:09:48 pm$4 prototype boardhttp://www.cypress.com/?rID=92146Or $1 chip:http://www.cypress.com/?mpn=CG8000AAThe actual chip on both (the $1 is a current promotion) is:Edit: Oops this is the 41xxx.http://www.cypress.com/?mpn=CY8C4125AXI-483This is the same chip as the prototype 42xxx board.the 42xxx uses the CY84245AXI-483 I believe.http://www.cypress.com/?mpn=CY8C4245AXI-483But only 32K memory that's why i said 16K.But since you need that much memory you might need to add external memory to it.19 bit address space plus 8 bit that's going to need 27 pins plus 4 for read, write, chip enable and power down.31 GPIOs add 5 more for 16 bit plus byte select so it's 36 pins exhausting the chip but you will need some free for external memory.

author: nctnico
author_rank: Super Contributor
timestamp: September 08, 2014, 07:23:47 pm
content: Why use a Psoc? Any microcontroller will do. You basically need to control some bus drivers. Still timing on the target part can be tricky to do. Many decades ago I built a eprom emulator using an 8051. I made it act like a printer so I could print hex files and commands to it. IIRC it could do around 200kB/s so it was pretty fast even for large hex files.

author: miguelvp
author_rank: Super Contributor
timestamp: September 08, 2014, 08:29:28 pm
content: Configurable digital pins and up to 5.5Volts on the GPIOs, also he was asking for suggestions, so I gave one.You are more than welcome to suggest othersEdit, seems it actually can handle 6.5 volts on the GPIO:http://www.cypress.com/?docID=46322page 14:VDDD_ABS Digital supply relative to Vssd –0.5 – 6 V Absolute maxVGPIO_ABS GPIO voltage –0.5 – VDD+0.5 V Absolute maxIGPIO_ABS Maximum current per GPIO –25 – 25 mA Absolute maxIGPIO_injection GPIO injection current, Max for VIH >VDDD, and Min for VIL < VSS–0.5 – 0.5 mA Absolute max, current injected per pin

author: legacy
author_rank: Super Contributor
timestamp: September 08, 2014, 09:28:11 pm
content: Around the CPU/whatever you need to isolate the eprom/ram to the target socket. Just a bit of 245 buffer arounds.Btw, i have foundthisproject that clarifies the concept. This project seems in use for something that deals withpimp my ride car tuning, also is seems using the same protocol used by Ostrich V2, which is a good points for its firmware. His authors claimed a "an ugly bug" exists somewhere in the circuit, be careful about that

author: legacy
author_rank: Super Contributor
timestamp: September 08, 2014, 09:40:23 pm
content: I have also foundthisother project. It is 8-Bit EPROM/SRAM Emulator that uses a FTDI 2232M breakout module to handle signals. Unfortunately the FTDI 2232 has a driver that seems x86 only, i can't find sources and it seems it is supporting Windows XP and linux.Btw, its claimed featuresQuote

author: miguelvp
author_rank: Super Contributor
timestamp: September 08, 2014, 09:41:55 pm
content: Google "crome rtp"http://www.tunewithcrome.com/help/rtp.htmlHas links to 3 RTP hardware devices:Quote

author: legacy
author_rank: Super Contributor
timestamp: September 08, 2014, 09:48:14 pm
content: Quote from: miguelvp on September 08, 2014, 09:41:55 pmsure, what do you think about it ? I have found documentation about its hardware protocol so i am able to write a driver. It uses USB virtual com, so from the host point of view it looks like a fast uart device.Unfortunately it is a ROM emulator, i am still needing a RAM emulator: any hack ?

author: legacy
author_rank: Super Contributor
timestamp: September 08, 2014, 09:49:25 pm
content: guys, what do you think about the two project's links i have posted ?

author: miguelvp
author_rank: Super Contributor
timestamp: September 08, 2014, 10:14:28 pm
content: I know nothing about chipping but that first link I gave you has a lot of information:PGMFI RTP - This device is still in development and testing. For more info go to:http://www.pgmfi.orgSpecially in this link:http://wikitest.pgmfi.org/twiki/bin/view.pl/Library/WebHome

author: David Hess
author_rank: Super Contributor
timestamp: September 08, 2014, 10:37:13 pm
content: EPROM and SRAM target emulators used to be standard equipment for embedded design. They allowed fast programming cycles and real time debugging on embedded systems. Supporting fast cycles times was always a problem.With some external level shifting support, I suspect a small FPGA could handle this easily as long as it has enough build in SRAM. The tricky part will be handling a large asynchronous interface but maybe that will have to be done externally as well.As costly as they are, it would probably be more economical to buy one unless you want the experience in designing it and have the time.

author: legacy
author_rank: Super Contributor
timestamp: September 08, 2014, 10:47:01 pm
content: Quote from: David Hess on September 08, 2014, 10:37:13 pm96Kbyte on the Spartan6 of Papilo/Pro (it's a very nice fpga-board), BRAM is expensive, also you need to allocate BRAM for your soft core, the BRAM is used to synthetize its ram and its rom, where its firmware will be run.it seems to me 64Kbyte of the 96Kbyte may be a real constraints in a such practical project.Quote from: David Hess on September 08, 2014, 10:37:13 pmThe best idea is to synthesize an uart inside fpga and then interfacing it to an FTDI chip. This makes things easy and simple.Quote from: David Hess on September 08, 2014, 10:37:13 pmMy problem is … what to buy.

author: nctnico
author_rank: Super Contributor
timestamp: September 08, 2014, 11:03:13 pm
content: Still try to consider the parallel port idea. Printing a hex file to an LPT port (even if it is a USB lpt port) makes life extremely simple to get a hex in your emulator quickly.

author: David Hess
author_rank: Super Contributor
timestamp: September 09, 2014, 12:10:42 am
content: Quote from: legacy on September 08, 2014, 10:47:01 pmThe FPGA could use a fast external SRAM as long as the target cycle time is slow enough which is almost certain on old and low performance systems. Fast EPROMs are not common.QuoteI mean the asynchronous parallel memory interface unless you somehow phase lock the FPGA clock to the target system; the EPROM/SRAM control signals and interface can change state at any time relative to the FPGA clock. -CS and the read/write control lines of course latch the address and data bus so maybe that is not such a large problem.QuoteThey are pretty specialized devices so all of the makes and models I am familiar with are long gone.

author: MarkL
author_rank: Unknown
timestamp: September 09, 2014, 12:40:23 am
content: The Dataman S4 is an EPROM programmer with ROM and RAM emulation. It accepts various hex format and binary downloads on its serial port, so interfacing to Linux should not be an issue (albeit slow).Unfortunately, it's old and discontinued but you can still find it on ebay.Here's the product page where you can find the manual and other support info:http://www.dataman.com/dataman-s4-resourcesAnd at the moment there's one on ebay, NIB, for US$375:http://www.ebay.com/itm/131289875274

author: legacy
author_rank: Super Contributor
timestamp: September 09, 2014, 04:29:23 am
content: Quote from: nctnico on September 08, 2014, 11:03:13 pmLike the SoftTech MultiROM of my friend. Even if i think it is closed, its protocol should look like something similar to "printing hex" to an LPT portI can't find any information about that, i don't know which parallel mode it is using (SPP ? EPP ? ECP ? whatever ?), it may be it could be hacked to be encapsulated into USB-something-adapter that makes it possible to use this equipment with LPT-port-less linux machines.It looks like an old school professional equipment, my friend has found one of this brand-new old gadget on ebay for 100 USDQuote

author: legacy
author_rank: Super Contributor
timestamp: September 09, 2014, 04:55:58 am
content: Quote from: David Hess on September 09, 2014, 12:10:42 amThanks, it clarifies. Do you know any existing project or product like that ? It looks cool.

author: legacy
author_rank: Super Contributor
timestamp: September 09, 2014, 05:00:33 am
content: Quote from: MarkL on September 09, 2014, 12:40:23 amyeah, the Dataman S4 has been in my wish list since the beginning, sooner or later it will be under the christmas tree

author: David Hess
author_rank: Super Contributor
timestamp: September 09, 2014, 11:17:51 am
content: Quote from: legacy on September 09, 2014, 04:55:58 amNo, I have just given it some thought in the past.Given the complexity, the price for a high capacity dual port asynchronous SRAM is actually pretty reasonable although the FPGA provides better debugging capability since it allows setting breakpoints.

author: skyline_stu
author_rank: Newbie
timestamp: October 03, 2014, 04:52:14 pm
content: I understand what you are trying to do, but there may be some issues with the current suggestions.The Dataman S4 may not support your device. And if I remember correctly, it may well be limited in read/write speed !BTW, watch out for leaking NiCd batteries in the old units !!! Their serial interface is a tad slow too.But the LCD display is handy for changes when not connected to a PC.BiPOM have some great devices available, but they are parallel only.The Ostrich's works OK for ROM emulation but have some limitations when tracing. Getting 2 Ostriches syncronised and tracing can be a bit of an issue.You neglected to mention how fast your target bus speed is, but I assume it's pretty slow.A while back I needed a device to emulate/monitor a Flash EEPROM and SRAM on a multiplexed bus, so I rolled my own emulator. This flash was written to on power down, just to make things even more 'fun'.I used a FTDI USB serial to parallel chip for comms. For the ROM emulation I used some NVSRAM. They are very fast and cheap. The #1 advantage is that you can program them like an EPROM. You can also dump these after powering down and read/reset the changed data. Not having any dual port rams in my parts bin, I 'built' some out of some 128kx8 SRAM's with a CPLD as a memory, I/O and BUS controller. There's also a micro in there which monitored reads, writes and real time tracing. It's big, power hungry and worked very well at the time.I initially considered using an FPGA & soft micro core, but the BRAM limits on my FPGA boards was a limiting factor (not to mention 3.3v and potential bus translation issues). Do remember many FPGA's list the BRAM in kilo BITS, not bytes.BTW, the best tracing EPROM emulators EVER were produced by Racelogic, but sadly they are no longer made. The software was extremely well though out (it's DOS based). These are from the early 1990's. It's handy to know the genius who made these, as I've since hacked one of mine to allow R/W access, tracing and updating in real time. It's only 64kx8 bit though.

author: legacy
author_rank: Super Contributor
timestamp: October 03, 2014, 09:46:17 pm
content: Quote from: skyline_stu on October 03, 2014, 04:52:14 pmBut it is fast, usb driven (by libusb, on the linux user land side). Unfortunately it is expensive and ROM only. The trace feature is not working, bugged in software.Quote from: skyline_stu on October 03, 2014, 04:52:14 pm120nsec time accessQuote from: skyline_stu on October 03, 2014, 04:52:14 pmwhich FTDI chip ? 2232 ? Can i see something ?

author: skyline_stu
author_rank: Newbie
timestamp: October 04, 2014, 07:24:32 am
content: Yes, the Ostrich is fast, a 27010 loads in about 4 seconds. Actually, I feel the bug is in the Ostrich hardware/firmware, not the PC end. It doesn't reliably trigger on the bit masks you send to the emulator.I used a FTDI245R based board. They are inexpensive (no more than $20) and easy to use. There are 4 pins to monitor with your embeded software or hardware.They are fast - 1Mbyte / sec and have a decent FIFO buffer 128byte RX, 256 byte TXI send out the data in an 8 bit stream and have the emulator h/w re-assemble it to 16 bits.My emulator is pretty simple in it's operation. The Micro waits for a control command, like download/upload data, base address and trace window size. Uploads to the emulator are performed with the target power off - otherwise there will be contention and this really slows things down.There are several SRAM's banks in the design. Some monitor reads, some writes and the corresponding data. The address bus is common to all devices, as well as being under micro & cpld control.When I'm tracing, I send a command to repeatedly scan through the trace region and see if there have been hits in the desired region (i.e. $2000-$20FF).This is performed by using another SRAM, When a system bus write is performed, the HIT buffer (which is initially cleared to $00) changes to $01, and the corresponding write value is placed in a dedicated write SRAM buffer. If there was a hit, the micro sends out a block of data with the raw address (a hex value from $0-$FF) and the data as a raw hex value. The PC end determines the address by adding the base address + offset (from the HIT buffer). The s/w then marks the area RED (write) and updates the value. For a read, a block toggles to GREEN.There are 2 SRAM 'system' banks, they are mirrored copy of the other, unless a value has been changed. The CPLD and micro control which is accessed, swapping when the RAM is disabled. (using the target _CE line and a system CS pin). The micro then updates the other bank until another change is done.Doing it this way reduces the processing overheads and improves trace speed. Obviously the micro & cpld monitors the R/W - _CE and/or _WR/_OE lines depending on where your trace region is, and does the update and swap when the chip is not selected.You may find 16 bit SRAMS easier to use due to their larger size. In that case, you'd just need to select the upper or lower 8 bytes of data.Break your design up into blocks and it will be a lot easier to implement.

author: marmad
author_rank: Super Contributor
timestamp: November 04, 2014, 08:54:22 pm
content: Just saw this thread, so I don't know if you've already bought a Moates or built something. It's been awhile since I needed to emulate parallel EPROM/RAM chips, but I need to do it again for some old devices, so I'm throwing together some parts to hack onto an old Xeltek programmer.If you just need emulation but don't really require complex tracing (which, for me, is the majority of the time), it's quite easy to turn any existing USB EPROM programmer into an emulator for a couple of bucks worth of parts and a couple of hours of time; this allows you to skip both spending much time on hardware as well as having to develop any software. If you want to get clever, you can tap into some of the programmer's routines to simulate some trace-like features.

author: marshallh
author_rank: Unknown
timestamp: November 05, 2014, 02:04:40 am
content: Cyclone III + 2mbit SRAM + FT245?

author: solac
author_rank: Newbie
timestamp: October 05, 2015, 04:20:37 am
content: Quote from: legacy on September 08, 2014, 09:28:11 pmhi sorry to revive and old thread. i was wondering if anyone has built this using the schematics ?

author: commie
author_rank: Frequent Contributor
timestamp: October 05, 2015, 10:13:24 pm
content: I bought this about year ago, used it once with success so far as I remember. Emulates up to 512k bytes roms.http://uk.mouser.com/ProductDetail/EETools/EEROM-8U/?qs=%2fha2pyFadujQ4oaad2MGF7AB4v%252bBJJb9qocvcQuRPzaBOuwuz7FGwzIv3GOkcmmY

author: free_electron
author_rank: Super Contributor
timestamp: October 05, 2015, 11:02:02 pm
content: What protocol ? its a ram / eprom emulator. it emulates the classic static rams and parallel e/eeproms.it can also dump the ram content and inverse assemble.launch setup.exe. has really neat software.

author: commie
author_rank: Frequent Contributor
timestamp: October 06, 2015, 11:12:08 am
content: Quote from: legacy on October 05, 2015, 11:07:05 pmSorry Legacy, I'm using Windows XP and it works with that, but I do not know whether it will work with Linux.It has the capacity to go to 1Megbyte but you need a special adapter, with the adapters supplied , 512kbyte max.

author: free_electron
author_rank: Super Contributor
timestamp: October 06, 2015, 08:30:11 pm
content: Quote from: legacy on October 05, 2015, 11:07:05 pmdoes that matter ? the target system is irrelevant. if your MIPS machine has a socket for an Eprom it will work. the OS / CPU doesn't matter.the emulator has a ram on board with some logic that makes it behave as an eprom. Load the image into the emulator and your MIPS machine is none the wiser. it doesn;t need access to USB. the USB port is for the host machine where you run the development environment.Oh , wait .. you mean : you want to use this on a MIPS based machine using linux , cause that is your development box ? tough shit sherlock. The prevalent dev hardware is a intel architecture running microsoft stuff. once in a while you may find some linux stuff on intel. But beyond that ? it's a VERY small world.... Things are developed for the market. like it or not , that is still 90% Wintel ...and a bit Lintel and maybe a tiny bit iOS. anything else is esoteric and you will have to resort to homebrew.Elektor magazine made an eprom emulator in the mid 90's that was using a 62256 ram , some counters and hooked up to a standard printerport.you would take the binary image of the rom and simply 'copy' it to LPT1.you had to press a button on the emulator to 'reset it'. you could then simply use a dos command 'copy eprom.bin lpt1:' and that was it.they later made an rs232 versionhttps://www.elektormagazine.com/magazine/elektor-200101/16948https://www.elektormagazine.com/magazine/elektor-200101with any luck you can still buy the circuit board. a few dollar for the PDF file and off you go. that may be your best shot.here's another one (older) :http://www.davidprojects.net78.net/styled-2/index.htmli built several of the printerport ones. they were mades using SMd and used 74590 and 74593 dual counters that were expensive and hard to find at the time.

author: solac
author_rank: Newbie
timestamp: October 07, 2015, 12:46:18 am
content: Im no engineer, nor do i understand how code work. Was looking to build this for personal use. I have seen this device demonstration in youtube. It used xtronics protocol to connect to crome. I was wondering if the hex file in the hub works? If i could i would just buy a moates ostrich but they don't sell it locally from where i live, trying to get one would probably cost very much since tariffs are very high for electronics stuff.I was also thinking of using dip through hole chips. Almost all of the chips are avaialble in through hole except the ftdi chip. Why was the schematic made with atmega16 and not atmega16u ? which has usb support? to eliminate the need for ftdi chip?

author: free_electron
author_rank: Super Contributor
timestamp: October 07, 2015, 08:36:40 pm
content: Quote from: legacy on October 06, 2015, 10:17:03 pmlooks like you painted yourself in a bit of a corner...the truth is that things like eprom emulators are all designed to work with a bit of driver software. and that will invariably be win/tel.you may have a chance using an emulator that uses an rs232 link. you can always slap a usb->rs232 converter in front of it. those protocols will be open.Try Emutec. they may have one that works for you

author: solac
author_rank: Newbie
timestamp: October 12, 2015, 03:43:01 pm
content: hi need some help with the constrution of honda rtp. i replace the ft232bl with ft232rl since its whats available locally. i have checked the data sheet and it seems to be the same, and it does not need an external oscilator? Also i bought a ram with the same part number is62c256 problem is its 70ns would it make a lot of difference in terms of speed? im using all dip packages for the ic except for the resistors and passive capacitors.thanks

author: grantb5
author_rank: Regular Contributor
timestamp: November 25, 2018, 12:44:22 am
content: Quote from: free_electron on October 06, 2015, 08:30:11 pmFWIW there is one called the Momik MemSIM2 that is serial over USB and the protocol is available on Github I think. It's very inexpensive too which is nice.

author: technix
author_rank: Super Contributor
timestamp: November 28, 2018, 05:07:57 am
content: Quote from: legacy on November 25, 2018, 03:07:27 amI am now looking into building one myself for a few projects that needs bootstrapping. I need UNIX support so a bit of challenge here.My general idea here is to build a small module that takes whatever source protocol and turn it into 3.3V SPI Flash. This way I can either just use a W25Q128 in DIP-8 or use a STM32L432 to emulate a SPI Flash.