DDR2 DIMM SMBus Breakout Board

Click this image to return to the main index. Okay. *hand wavy motions*
This was inspired by lm-sensors.org's hardware hacking docs. The idea of adding extra devices to a computers System Management Bus (SMBus) appealed to me, and I thought this could be useful for some embedded system applications that I was tinkering with.
Attaching wires directly to a mainboard didn't seem like a good solution. The docs above mentioned a trick where the SMBus could be tapped into by attaching wires to EEPROMs on RAM DIMMs. Way at the bottom, they show a breakout board made by Analog Devices that breaks out those pins.
Unfortunately I don't think that board is in production anymore (I couldn't find it at least), and I suspect that it would be fairly expensive if it was. As such, I figured making my own version would be good practice with PCB and a fun project to boot.

Resources and Credit

Joint Electronic Device Engineering Council (JEDEC) PC2-6400 UDIMM 2 Rank x8 with ECC (G0, 2005-05-31) layout, schematic, ect. (local copy)
Toshiba's SM8 package info page
Texas Instruments TXS0102 2-Bit Bidirectional Voltage-Level Translator for Open-Drain Application (local copy)
Molex Part# 0877050021, Document SD-87705-001 - DDR2 DIMM 1mm Pitch 240 CKTS (Forklock Version) (local copy)

Files

Image of DDR2 DIMM SMBus breakout board schematic and outline.
Gerber files (silkscreen, back/front copper/mask, drill file) for board: ddr2dimm_smbus_breakout.2009-08-25.2156.tar.gz (Rev 0A)
gEDA PCB footprint for TXS0102: txs0102.fp (Yes, I realize this flys in the face of gEDA/PCB convention to have a footprint for a specific part.)
gEDA PCB footprint for DDR2 DIMM (with SMBus/EEPROM pins): ddr2dimm_smbus.fp
gEDA PCB layout file for DDR2 SMBus Breakout Board: ddr2dimm_smbus_breakout_rev0A.pcb

Notes

[2009-05-06]
I'm going to leave the layout of pins and whatnot to the docs mentioned above. They do a better job of it than I could. Rest assured: if you download the above docs, you'll have everything you need.

The basic idea is to breakout the SMBus lines of a DDR2 DIMM slot into a perf-board-style prototype board. I took it a step further and added a TI TXS0102 level shifter to the SCL and SDA lines. This will protect the mainboard to some degree (hopefully), allow higher voltage devices to be attached to the bus, and to work around the somewhat limited current supply to the DIMM. (I think JEDEC specs indicate a max current draw of a few dozen milliamps?)
NOTE: As I understand it RAM is supplied with voltages lower than the traditional computer 'low voltage' of 5VDC - however, on the specs from JEDEC, the EEPROM on the DIMM is provided with its own voltage supply - VDDSPD - so I'm honestly not sure WHAT the SMBus there is running on. The first thing I plan to do when I fab a board is to put a voltmeter on the VDDSPD and GND pins and see whats coming out.

WARNING: If the VDDSPD voltage turns out to be something like 5VDC, this will damage the level shifter I selected! The A port on the TXS0102 only supports 0VDC (well, -0.5VDC) to 4.6VDC. Also, the supply voltage for B port MUST be equal to or higher to the supply voltage for A port. So says the level shifter datasheet at any rate.

The extra 0603 outline above the shifter is for a pull-down resistor - when either of the Vcc ports is low on the shifter, it shuts down. Adding the pull-down makes sure the device isn't floating and messing with the bus if nothing is connected to it.
The prototype area to the left is a simple 100 mil grid of holes.
The JEDEC docs also indicate several lines connected to the address pins of the EEPROM. Is most applications I've seen, these pins are connected to ground. Didn't know if they would be useful or not, so I broke them out anyway.

Now, while simple in theory, the devil is in the details.
By far the hard part of this project was the DIMM and contact pad layout since it needs to be ex-fucking-zact. It took me a while to locate the official JEDEC measured drawings - I actually got my measurements off of a DIMM socket datasheet I got off of Digikey.
The SM8 footprint of the level shifter was also a pain - getting everything measured up and laid out correctly took about a day.

[2009-06-10 1153]
Got my laser printer back.
Turns out the alignment notch was off by ~1mm. I fixed that, and then discovered that the board width/length/whatever may be wrong as well. It MAY be within tolerance (as defined by Molex at least), but once I get that fixed I'll upload the corrected files and send it off to get fabbed.

[2009-06-10 1205]
Nevermind, its spot on at 133.35mm!
Files updated.

[2009-07-09]
Got the board back from BatchPCB.
I screwed up, made most of holes too small:
Picture of revision zero breakout board from manufacturer.
Whoops. Good enough for a test board, but it isn't going to work as a perf board. Oh well! That's why it's revision zero!

[2009-08-25]
Revision change; went from 0 to 0A.
Only change was that the hole diameter was bumped up to 38 mils.
Files updated.

[2009-09-21]
BatchPCB delivers a board that is too thick for DDR2 DIMM slots apparently; my board is ~1.5mm (0.062"?) and the Molex datasheet lists 1.27(+/-0.10)mm (0.05") for board thickness.
Oops. (TIWIIRZ!)
I discovered this while attempting to force my prototype board into a spare DIMM socket on a Gigabyte mainboard.
This presents a bit of problem because board thickness doesn't seem to be a variable that PCB fab companies want to adjust. (For very low volume orders at any rate.)


DISCLAIMER
All content is owned by its respective creators/licence holders.
Creative Commons License
DDR2 DIMM SMBus Breakout Board by Chlazza is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License.