In a university lab where we had to work with 8051 MCUs there were some ROM emulator gizmos that would plug instead of the rom chip, and we could upload the hex file over the pc.
It is a very fancy tool for developing stuff for 6502 and similar CPUs.
Has anyone made something like that?
Or can it be bought for a decent price?
ROM emulator
Re: ROM emulator
A ROM emulator is basically an SRAM module with a ROM pinout and a connector to allow a PC to upload a program to it. You could probably build something that would work from a suitably-sized SRAM, a few shift registers, some tri-state latches, and a parallel port connector. Or use a small MCU and a serial port instead of a parallel port.
That said, if your target system has ROM and a serial port already, it might be cheaper and easier to have a small monitor program that can load a program into RAM from the serial port. Or go one step further if you have an in-system-programmable ROM setup.
That said, if your target system has ROM and a serial port already, it might be cheaper and easier to have a small monitor program that can load a program into RAM from the serial port. Or go one step further if you have an in-system-programmable ROM setup.
Re: ROM emulator
We had some of these at one time that er used for the exact purpose that you described for your lab. I think nyef's suggestion is probably more economical. We didn't buy them because they were cheap, but because they were convenient for a system whose SW would not include a monitor.
After we quit worrying about the cost of 29F256 vs 29F010s or 29F040s, we put in a monitor in our projects and just used it's download capability to load and test the SW. The cost of the additional Flash memory to include a 4-8kB monitor was insignificant when compared to the cost of the ROM emulators. Furthermore, unless you opted for a parallel port version, the download speeds of most ROM emulators matched that of the monitor.
After we quit worrying about the cost of 29F256 vs 29F010s or 29F040s, we put in a monitor in our projects and just used it's download capability to load and test the SW. The cost of the additional Flash memory to include a 4-8kB monitor was insignificant when compared to the cost of the ROM emulators. Furthermore, unless you opted for a parallel port version, the download speeds of most ROM emulators matched that of the monitor.
Michael A.
Re: ROM emulator
Since I build projects that have a 8051 or a 6502 at the core with point to point soldering adding an extra rom is not trivial. Also I don't have such a monitor program, and that would also require that all of the projects have a working link to a PC.
I was thinking about using a 32k ram, few latched, mcu, and a ftdi chip to connect via usb to the computer. Then I could just stream the hex file to the com port.
I was thinking about using a 32k ram, few latched, mcu, and a ftdi chip to connect via usb to the computer. Then I could just stream the hex file to the com port.
Re: ROM emulator
Here's ROMBO which uses i2c to shift in data and addresses:
https://sites.google.com/site/beeb816/hardware
https://sites.google.com/site/beeb816/hardware
Re: ROM emulator
I made a ROM emulator a while ago that I'm re-visiting. Right now it supports up to 8k as I didn't want to use more parts but I need to make it support up to 512k or so. The way it works is that you connect it to your computer's parallel-port and then simple type 'copy test.bin lpt1:' which will then copy the contents of that file to RAM. During that time your CPU will be disconnected / execute crap code so you'll need to reset it afterwards. Still, the process takes under a second.
From a technical point of view, it's based around a 74hc123, which is a 'dual re-triggerable monostable multivibrator' and a flip-flop (the top two IC's), counters, multiplexers and a latch. The first half of the 74hc123 acts like a watchdog circuit and switches the address / data bus on the negative pulse of the parallel-port strobe. The positive edge then drives the busy / ack signals as well as performing the write to RAM and clocking the address counters. As long as it receives strobes from the PC, it'll keep the CPU off the bus. Once the file is done, it times out and resets the flip-flop to switch the CPU back.
I'm regurgitating all this from memory but do have the schematics somewhere. If anyone has any requests as to what they'd like to have, let me know..
-Yvo
From a technical point of view, it's based around a 74hc123, which is a 'dual re-triggerable monostable multivibrator' and a flip-flop (the top two IC's), counters, multiplexers and a latch. The first half of the 74hc123 acts like a watchdog circuit and switches the address / data bus on the negative pulse of the parallel-port strobe. The positive edge then drives the busy / ack signals as well as performing the write to RAM and clocking the address counters. As long as it receives strobes from the PC, it'll keep the CPU off the bus. Once the file is done, it times out and resets the flip-flop to switch the CPU back.
I'm regurgitating all this from memory but do have the schematics somewhere. If anyone has any requests as to what they'd like to have, let me know..
-Yvo
- GARTHWILSON
- Forum Moderator
- Posts: 8773
- Joined: 30 Aug 2002
- Location: Southern California
- Contact:
Re: ROM emulator
yzoer wrote:
I'm regurgitating all this from memory but do have the schematics somewhere. If anyone has any requests as to what they'd like to have, let me know..
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
Re: ROM emulator
Yeah, I'm planning on putting it up as soon as I redesign the board. On that note, one of the things I was considering was making separate daughter PCB's that would route the signals the right way. I.e. 24, 28 and 32-pin boards with perhaps some jumpers on there to select different devices.