Electrical – I2C bus isolation for dummies

busi2cisolation

Consider you have two devices designed to be I2C masters in same bus. However, only one of them is operational at a time and the other one is completely powered down. In my case the devices have internal pull-ups on SDA/SCL so when one device is powered off, it'll effectively kill the whole bus which is obviously not good.

It should be super simple to just severe powered down device's SDA and SCL lines from the bus when it's VCC is low, and re-attach them when it's VCC is high. Like a relay switch. But when I try to google for what I think I need, I get some big mains voltage relay stuff which (while I guess it could work) is a bit too dumb for my taste. My devices and I2C bus are 3v3.

There must be a word or technical term I'm missing here. What am I looking for and where to buy one piece of that component?

Best Answer

I am not too convinced that using an external relay is a good solution, but to answer your question, the terms to look up are "low voltage signal relay"

Mouser has a few: https://no.mouser.com/Electromechanical/Relays/Low-Signal-Relays-PCB/_/N-5g38/

You have not specified a part number for the two masters, but I presume that they are a microcontroller of some kind. Most of these devices, usually allow to turn off the pullups, which means that all that you need to do is to have them externally.

Alternatvely, maybe something like a dual I2C bus buffer could help, or a level translator which can be enabled/disabled at will, might even work better.