Motorola MCM5101 RAM to FRAM Adapter

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.

Motorlola MCM5101 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).


Creative Commons License
MCM5101 FRAM Adapter by Andrew Honecker is licensed under a Creative Commons Attribution 3.0 Unported License.

This entry was posted in Pinball Repair. Bookmark the permalink.

4 Responses to Motorola MCM5101 RAM to FRAM Adapter

  1. Len says:

    Hey nice that you did the 5101 design. I need something similar for a 6116 replacement but in SMD. I’m re-making an old 80’s DIP board with common SMD parts but there was never a 2k SMD RAM produced.
    Can I just wire up the FM16W08 chip 1:1 by signal and ground A11 and A12 to make it a 2k SRAM? Or leave those 2 pins unconnected or tied high?

    • Andy says:

      Yup just wire up the FM16W08 chip like you say and ground A11+A12. Don’t leave those inputs floating! For ease of routing, you can swap around A0-A10 and D0-D7 (only swap data pins with data pins and address pins with address pins), they don’t need to match up 1:1. The SRAM doesn’t care how the data is organized or what chip address the data lives at. I didn’t compare the 2 pinouts that closely, so I’m not sure how the routing will end up. Anyway, just throwing that out there.

      Also, since this’ll be on a little carrier board, don’t forget to add a ceramic decoupling cap from VCC to GND. This can be really any value from 0.1uF up. Just make sure it’s a good dielectric type, don’t use the garbage Z5U or Y5V. Absolutely worthless caps. Stick with X5R or X7R. It may cost a few cents more, but it’s worth it. A 1uF or higher in 0603 or even 0402 would be the best bet. You essentially want the highest capacitance in the smallest package at a voltage higher than your VCC (in your case, >> 5V). Ceramic capacitance degrades significantly even with the good dielectrics the closer you get to their max working voltage.

  2. Doug Crawford says:

    Thanks for posting this.
    It doesn’t look like a lot of folks have started using these for retro applications.
    I’m thinking of using to replace old eproms and avoid eprom programmer hardware and issues/
    by being able to just write data into them on something like an Arduino.
    So I will be needing to adapt these to various eprom configs. Your design might be
    a great starting point. And it looks like a very complete file complement that
    you are providing.
    Can you advise me on what CAD software I should use?
    I don’t currently use any but expected to very soon. Nows a good time to start!
    Doug C

    • Andy says:


      Your idea sounds like it would work good, as long as you can prevent your device that these would be used in from accidentally writing to the FRAM. Good software design wasn’t always used in retro devices and many times depend on oddities of the hardware the parts are used in. Since the programmer knows they never have to worry about overwriting an EEPROM, there could be write accesses to the part that wouldn’t actually do anything to an EEPROM, but would overwrite stuff in a FRAM part. This could occur if writable hardware happened to decode to the same address/chip select as an EEPROM. I guess I’d suggest tying the read/write line of the FRAM to make it a read-only device after you’ve programmed it. This situation is probably pretty unlikely to happen, but a lot of weird things were done back in the days when computers were pretty new.

      As far as CAD software goes, it really depends on your budget. There are some free tools out there and some low priced tools, but in my opinion, you get what you pay for. I’ve used KiCAD, Eagle, PCB123…etc and they are all clunky, non-intuitive, and really aren’t professional grade tools. They’re alright if you’re doing this kinda stuff once in a while, but if you want to do this say every day or multiple times a week, the inefficiencies built into the cheap/free tools becomes a major problem quickly.

      On the other hand, you can pay a ton of money for equally terrible, or sometimes worse, tools. In this category, I would happily place anything made/owned by Mentor Graphics. You pay a ton of money for a tool that’s extremely dated, bug ridden, poorly supported, and slows you down like you can’t even imagine. An exception to this I think is PADS, which seems like a decent layout editor. It’s still not my recommendation though =).

      Somewhere in the middle cost-wise lies what I use, Altium Designer. I used to be a diehard Cadence/Orcad (another pricey CAD package) user, but after using Altium for a month, I haven’t looked back since. Don’t get me wrong, Orcad Capture is nice (Orcad layout on the other hand was terrible), but it’s just a schematic tool. If you invest in Orcad, you’ll need some layout tool. Cadence’s Allegro is supposedly the “best” layout tool in the business, but if you’re not a layout house, I’d doubt you’d have any reason to buy that too. It’s also not an easy tool to learn. Altium Designer to me is quite easy to learn and even dive into the more advanced features of routing without much pain. They have a huge library of parts already made, and it works well w/ subversion to keep track of your hardware changes/backups. It’s more expensive than Eagle (eagle < $1000, Altium somewhere around $5-7000), but it's way more intuitive and easy to use. This is a huge time saver when you're working w/ designs all the time. So...I guess my recommendation to you is go w/ Altium if you can, otherwise, Eagle is a well supported, widely-used tool in the hobbyist arena. Personally I don't like Eagle as I find it difficult to do pretty much anything I'd do very quickly in Altium and I really don't like their layout editor, but other people use it just fine. - Andy

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload the CAPTCHA.