6116 to 5101 RAM Adapter for Stern MPU-100
Author: Wayne Eggert
The Stern MPU-100 uses 5101 RAM and sometimes this RAM ic is bad. Unfortunately it is no longer made and getting very expensive -- usually $10+ to replace. I had an issue with a Hot Hand machine scoring incorrectly and suspected the RAM but didn't have any extra 5101's.. and I really wanted a better option when diagnosing boards than to be prying an expensive chip in and out.
I found a few great articles on adapting the 6116 to older Williams and Stern pinballs. One of the articles had you mounting a 3v coin cell on the adapter board and I thought that was a neat concept since coin cell batteries last a lot longer than alkaline. So I merged some ideas and also set out to wire directly to the existing 5101 socket.
Parts & Building
Since this was a prototype, I'm not going to do a step-by-step of what I did since in the end I had to modify the design some. Instead I'll just show some pictures with quick description & also the pins wired. It wasn't overly complicated, but when converting between different types of RAM there are often pinout differences so it took a little time researching what to do with the remaining pins that didn't align 1:1 with the 5101.
Picture: Parts - coin cell holder, 6116 RAM, 24-pin socket, 1n5817, prototype board, header pins
Along with the parts above I also ultimately ended up using a 22-pin socket since the header pins were too big for the machine pin sockets on the MPU board. Really should probably use SIP header pins here instead of these larger header pins.
Picture: Cutting prototype board with dremel
I cut the prototype board in half using a dremel. This isn't necessary really but I figured I'd likely have other smaller projects so why waste it.
Picture: Initial layout of socket / coin cell holder
I maximized the space on the board -- I actually did this before cutting the board with the dremel. If I do it again I'd leave a little more space, as things got very confined once I started soldering wires on.
Wiring the Adapter
I searched for some datasheets for the 5101 and 6116 RAM to compare the differences. Since the 6116 RAM is larger, it will have more address lines than the 5101. So the 5101 has A0 thru A7. The 6116 also has A8, A9, A10 -- these unused address lines need to be tied to +5v.
So on the back of the 24-pin socket on the board, I tied pins 9,10,11,13,19,22,23 to the VCC pin. I connected the (+) pin to the battery using the 1n5817 shottkey diode. The diode prevents the 5v vcc from the board from attempting to recharge the coin cell battery. When the board is not powered, the coin cell will power the 6116 and keep the data from clearing.
GND on the 24-pin socket was tied to the (-) pin on the battery as well as the GND pin on the header pins for the 5101. All header pins for the 5101 address lined were wired to their respective address lines on the 6116 socket, so in other words A1 on the 5101 was wired to the correct A1 on the 6116 socket.
I then wired I/O 4 thru I/O7 on the 6116 socket. Looking at the Hot Hand schematic, the data in (DI) and data out (DO) pins on the 5101 were electrically connected together. So DI1 and DO1 were both connected, just as DI2 and DO2 were connected together. So I assumed I only needed to wire the data outputs to the 6116 socket. I connected pin 14 (I/O 4) on the 6116 socket to pin 10 (DO1) on the 5101 header pins.. this was after seeing the DO1 lines on the schematic were referenced as "D4".
Once this was done, all that remained were the /CS (chip select), /OE (output enable), and /W (write enable). I wired /CS (pin 18 on the 24-pin socket) to /CE1 (pin 19 on the 5101 header pins). I then wired /OE (pin20 on the 24-pin socket) to OD (pin 18 on the 5101 header pins). Pin 17 on the 5101 for CE2 (chip enable) was not tied to anything.
So here are the 6116 pins and what I tied them to:
|pin1 - A7 (pin7 on 5101 pins)||
pin24 - vcc (pin22 on 5101 pins),
|pin2 - A6 (pin6 on 5101 pins)||pin23 - vcc (since A8 is unused)|
|pin3 - A5 (pin5 on 5101 pins)||pin22 - vcc (since A9 is unused)|
|pin4 - A4 (pin21 on 5101 pins)||pin21 - R/W (pin20 on 5101 pins)|
|pin5 - A3 (pin1 on 5101 pins)||pin20 - OD (pin18 on 5101 pins)|
|pin6 - A2 (pin2 on 5101 pins)||pin19 - vcc (since A10 is unused)|
|pin7 - A1 (pin3 on 5101 pins)||pin18 - /CE1 (pin19 on 5101 pins)|
|pin8 - AO (pin4 on 5101 pins)||pin17 - D7 (pin16 on 5101 pins)|
|pin9 - vcc (I/O 0 is unused)||pin16 - D6 (pin14 on 5101 pins)|
|pin10 - vcc (I/O 1 is unused)||pin15 - D5 (pin12 on 5101 pins)|
|pin11 - vcc (I/O 2 is unused)||pin14 - D4 (pin10 on 5101 pins)|
pin12 - GND (pin8 on 5101 pins),
|pin13 - vcc (I/O 3 is unused)|
On the 5101 header pins, the CE2 (pin 17), and the data input pins 9, 11, 13, 15 were not wired. CE2 does not appear to be needed on the 6116 and the data input pins were electrically connected on the solder pads of the MPU board.. and since the 6116 has I/O pins and not separate pins for input and output, only one connection needed to be made.
5101 RAM Datasheet
6116 RAM Datasheet
This is a prototype and as such the wiring is a bit messy. It took much longer than anticipated to get everything soldered since I had cut the board short and confined myself to a very small workspace.
Picture: Back of 6116 Adapter
In the picture above is the mess of wiring on the back of the board. To the far-right where the diode at the top connects is the (+) of the battery. Also on the right, three solder pads up from the bottom is the (-) from the battery. A 22-pin socket was connected to the header pins I had initially wired everything to. This was due to the header pins not fitting in the machine pin (SIP) sockets that were on the MPU board. So beneath the 22-pin socket are two rows of 11 header pins where wires from the 24-pin 6116 socket were soldered to -- this wiring is the conversion from the 5101 pinout to the 6116 pinout.
It's kindof a bad idea to string a bunch of wires all over the place like I've done here. I haven't tried wire wrapping yet but it might have been a very good candidate for this particular job. When you string data lines all around and especially if you're wiring over long distances and crossing other circuits, you can introduce noise into the circuit. Best to keep the wire distance short and not have them crossing over eachother. Additionally you can easily have a problem with a bad connection when wiring like this -- anyway live and learn, but next time I would try to lay things out a little better.
Luckily everything worked in this case, after verifying all of the connections with the continuity test on my multimeter I put the 6116 into its socket & added the coin cell battery, installed in the MPU-100 board. The 4 red wires coming out of the right side are unused -- those were wires going to the unused data input pins on the 5101 pinout in case I needed to wire them.. but as mentioned since they're eletrically tied together to the data output pins on the socket I really didn't need to wire them.
Picture: 6116 to 5101 Adapter Installed
***UPDATE -- UPDATE -- UPDATE***
This project has evolved into a "Budget 5101 RAM Adapter" for early Bally/Stern/Williams pinball machines. Below is a picture of an assembled adapter that uses an on-board memory capacitor to keep high scores/settings. If you like little projects, I am selling bare boards and kits of these adapters -- or you can also purchase a fully assembled adapter. For further details, see the Budget 5101 RAM Adapter at Pinitech.
|Posted 01/21/12 1:29PM by Anonymous Techdoser|
Nice work on the article. Thanks for referencing my site: WarpZoneArcade.com!
Feel free to drop me an email if you have any questions about pinball hardware. Also, I launched a site recently to sell NVRAM adapters for pinball machines, among other things. You can find it at:
|Re: Better solution|
|Posted 09/27/11 6:43PM by AceBHound|
|Right, there are many ways to build this that are better than the way I built it or even the way you've described. NVRAM without a battery would be an even better solution. The above project was a "prototype" thus all the wires and perf board. It's certainly not worth doing more than 1 or 2 of these to get the prototype figured out.|
|Posted 09/27/11 1:21PM by Anonymous Techdoser|
You do realize that several places sell adapters to plug simtek and ramtron non-volatile RAMs (or DS1220 battery backed rams) into 5101/2101 sockets, using real PCBs instead of perf board and wire wrap, right?
It's a much cleaner solution and more robust than a 6116 and a coin cell (and you really should be using a cmos or at least a low power 6116, and be sure to use a schottky diode instead of standard silicon for a lower forward drop).