Over the past few weeks, I’ve been doing a bunch of repairs on an old Williams System 6 pinball MPU and Driver boards. There were actually two sets of MPU boards to fix and two sets of driver boards to go over. One driver board was known to have problems, and the other was supposedly a gone-over, upgraded, tested-good driver board, which cost a good amount of money. I’ll have a post dedicated to that atrocity shortly.
Anyway, in the process of fixing both MPU boards (neither booted), it just so happened that the MCM5101 SRAM (or 5101 RAM as shown in the Williams schematic) on both boards was bad. This SRAM is the battery-backed memory that saves game settings, high-scores, and other statistics. These chips are not in production anymore and haven’t been for a long time, so obtaining new parts would be tough to do, and supposedly even NOS (New Old Stock) parts could be bad too. This left me with a few options: Hack some other SRAM I had laying around onto the boards, buy someone’s super-expensive (like $30 each) FRAM adapters, or make my own FRAM adapter.
Obviously I chose #3 above, but I did hack on an old SRAM just to make sure that the MCM5101’s were indeed bad. The other non-5101 RAM passed the memory tests in Leon’s test ROM, so the 5101 RAM’s were definitely bad. Now, I was left with making my own FRAM adapter.
The design of a FRAM->MCM5101 RAM adapter was quite easy actually. The 5101 RAM luckily is a pretty standard asynchronous SRAM part, which means a parallel, asynchronous FRAM from Ramtron would work just fine, as both had the same control signals. Ramtron also has 5V FRAM, such as the FM16W08, which makes it even easier to plop in place of the 5101 RAM. Really the hardest part of this project was finding out the distance between the two rows of pins, as most of the 5101 datasheets do not list any mechanicals, and the 5101 RAM is an oddball width for a DIP part.
Checking out the MCM5101 datasheet here: MCM5101, it becomes apparent that this is a 4-bit device with separate pins for input and output for each data bit. The output driver is tristate capable, so I’m not sure what the purpose of separating the input from the output circuitry for each data bit. Regardless, in the Williams schematic, they have the input/output of each bit connected together as in all memory devices of today. To adapt this to the FRAM, 4 of the 8 data bits are used, and the remainder of the 8 bits are left floating. Normally you’d strap unused input pins to GND or VCC, but in this case I left them floating since the chip would try to drive those strapped pins when data is read out of the part. It just didn’t sound like a good idea, so I left them floating, even though leaving possible inputs floating isn’t the best idea either. Probably the best thing to do would be to strap each unused pin via a 1K or so resistor to GND or VCC to ensure that the chip is protected when it tries to drive a value out. I didn’t do this in order to keep the part count low.
Speaking of floating inputs, the new FRAM chip is higher density than the old 5101, so there’s more address bits to deal with. I strapped the unused address bits to GND (safer than strapping w/o a resistor to VCC). Alternatively, some DIP switches could have been added to allow for saving multiple sets of game settings, high-scores…etc just by setting the unused address bits high or low.
Lastly, on the MCM5101, there are two chip enables: one active high and one active low. At least in the case of the Williams System 6 schematic, chip enable 2 is only deasserted when the game is reset, so I didn’t need to use it since the new FRAM only has one active-low chip enable.
Here’s the MCM5101 FRAM Adapter source so you can make your own boards, see how I hooked things up…etc. I may sell bare PCBs if there’s interest. I’m not going to offer completed units as it’s easy enough for anyone to go to Digikey/Mouser and order the parts needed (4 total parts) to complete this adapter for much less than a similar, larger adapter. The design works great in place of the 5101 and it was a cheap, fun little project too (keep in mind this was only tested on a Williams System 6)!
The MCM5101 FRAM Adapter is copyrighted under the Creative Commons Attribution 3.0 license. If you use these sources for creating your own adapter that you post online, please attribute my adapter as the original source (as the license states).
MCM5101 FRAM Adapter by Andrew Honecker is licensed under a Creative Commons Attribution 3.0 Unported License.