0
\$\begingroup\$

I am planning a circuit centered around I2C communication. The I2C network will contains multiple sensors, one of them already possessing internal pull-up resistors.

Since I2C communication employs one pull-up per line, I thought to use them as the network's pull-up resistors. Later I realized that if the sensor somehow malfunctioned, the network would not work.

So I came here to ask: Are there any big problems in connecting a sensor with internal pull-ups to an I2C network that already has them?

So far, the system uses a pocket Beagle as the 3.3 V I2C bus master, a liquid flow sensor named PLF2135 and a pressure sensor named LWLP5000-5XD.

PLF2135's I2C uses 5 V and requires pull-up resistors. The manufacturer doesn't not give a detailed datasheet about the I2C communication, only an application note saying you should test resistors with values between 2.2k and 10k and see which works best.

The LWLP5000-5XD's I2C uses 5 V and uses 10k resistors. See this schematic.

Since the master has a voltage different from the devices, I am using a MOSFET between them and the 10k resistors, similar to the circuit below:

enter image description here

\$\endgroup\$
5
  • 1
    \$\begingroup\$ What are the values of the pullups in your sensor? The sensor datasheet would help. \$\endgroup\$ Commented Oct 4, 2022 at 14:28
  • \$\begingroup\$ If you use the wrong pull ups, yes, if you use the right ones, no. If you tell us the full system: all details about all devices on the I2C bus, we might be able to help. \$\endgroup\$
    – Puffafish
    Commented Oct 4, 2022 at 14:50
  • \$\begingroup\$ Sorry, just edited with more information \$\endgroup\$
    – GRS
    Commented Oct 4, 2022 at 15:10
  • \$\begingroup\$ It depends in which way the sensor is expected to malfunction. If you expect it to be cut off from the bus, where the bus is left without any pull-ups, then it won't work. On the otjer hand, if power is lost to sensor that is on bus, it will halt the bus. \$\endgroup\$
    – Justme
    Commented Oct 4, 2022 at 16:18
  • \$\begingroup\$ So either way, the bus stop working \$\endgroup\$
    – GRS
    Commented Oct 4, 2022 at 18:11

1 Answer 1

3
\$\begingroup\$

In itself, having multiple pull-up resistors on the same I2C bus shouldn't be a problem provided they pull to the same voltage.

However, if you have several pull-up resistors, they are 'in parallel', so they are equivalent to one smaller resistor. Make sure that this smaller resistance is still in the acceptable range. Formulated otherwise, if you putting the equivalent resistor in a single place is fine, then you can spread the resistors along you bus if you want. If the equivalent resistance is too low, then you are not allowed.

PS : make sure to pull up to the right voltage. Some sensors for example work with 5 V, but can handle a 3.3 V or 5 V I2C bus because they read 3.3 V as high, and writing on bus requires only pulling low. But if you activate their internal I2C, they might pull the bus up to 5 V, which will/might destroy any other non-5V-tolerant device on the bus (master and slaves)

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.