Optional pull-up resistors for I²C

While I think this would work, I'd not see the immediate advantage of having disconnectedable pullups; I'm sure you have a good reason!

Be a bit careful:

A diode in reverse bias is a capacitor. At let's say 3.3V of your bus, with the jumper open, that means that for example if SDA is low and SCL gets high, then one of the diodes is in forward, one in reverse bias. Datasheet tells me it then has a capacity of around 8pF. The equivalent resistance at 400 kHz × 5 (a harmonic that you'll want to have to get minimally nice and clean clock edges) is \$\dfrac{1}{2 \cdot 10^6 \times 8 \cdot 10^{-12}} = 1/16 M\Omega\$ - pretty close to your pull up resistor values! You might then be introducing involuntary cross-coupling between SDA and SCL. It's not going to be bad, but you will see a bit of SCL ringing on SDA.

Now, as @TonyM points out, 200 pF of capacitance is spec-wise OK for I²C, and he'd been doing this for years, so: Don't you worry about that crosstalk.


It is important that the external pull-up devices connected to the bus lines must be adapted to accommodate the shorter maximum permissible rise time (or fall time) for the Fast-mode I²C-bus. It should be less than 300 ns.

The recommended method for switching a pull-up in the I²C specification is the following:

Switched pull-up circuit

Tags:

I2C

Pullup