Electronic – Is there only one SMBus on PC Motherboards


I have connected two wires to the SMBus clock and data lines of my motherboard (manually soldered via wires, because there is no header). I wish to interface this bus to my microcontroller.

I hooked these up to my scope, and they show the correct 3.3V or thereabouts (this seems to me that the wires HAVE been connected since there is a pullup).

I can read and write to this SMBus via python-smbus on linux. The same SMBus even picks up the SPD eeproms on memory modules, so THIS smbus definitely works. But I cannot see any of this activity on my scope.

Is there only one SMBus on PC motherboards? Or are there multiple, and so I am hooking up my wires to the wrong places?

My Motherboard is an ASRock X58 Extreme 6 (Southbridge is ICH10R)

Best Answer

Have a look at the datasheet for the ICH10 family.

On page 214, it describes the SMBus. There is only one SMBus interface onboard for controlling/polling motherboard devices, but there's an additional slave SMBus, through which an external master device may send events to the ICH10. There's no way to use this programmatically from the computer's side. Section 5.20.7 on page 222 describes how this works and what you can do. It looks like it's used for lights-out management, external watchdogs, sensor telemetry, etc.

It could well be you've attached to that slave interface, which is why you're not seeing traffic. The pull-ups on those pins are probably there to protect high-impedance inputs.

Related Topic