0

I have two microcontrollers on an I2C bus. They're powered by separate buck regulators.

This question recommends buck regulator outputs never be put in parallel. What about through I2C pullups? If not, how might I isolate my two systems?

enter image description here

2 Answers2

2

The situation is different depending on from which point of view it is looked from.

The regulators are not in parallel, the circuit can be reduced to each regulator having a load on their outputs and a series resistance between the both outputs. As long as each regulator has enough load, and the resistance connecting the outputs together is high enough, so each regulator can define the local supply voltage, which could be 3.2V and 3.4V due to tolerances.

The bus would then be held high at 3.3V due to one set pulling high to 3.4V, and one set pulling down to 3.2V equally. A small current would flow through bus resistors.

But that only applies in steady state after powering up.

When two parts of a circuit that are powered from separate supplies but have common data lines, it needs to be designed with great care.

It needs to be considered what happens if the supplies power up at different rate, or one powers up first and the other one later, or the other one is not turned on at all for some reason, like for saving power.

If only one supply is turned on, and the other isn't, the unpowered side gets current through pull-ups, and the unpowered I2C chip may have clamping current flowing into I2C bus pins, so there may be some indeterminate voltage powering the chip and the bus might have some indeterminate voltage too.

It basically means the chips may be subjected to invalid conditions during start-up, and they may degrade or damage under those conditions.

Justme
  • 127,425
  • 3
  • 97
  • 261
0

The pull-ups are generally added on the side of the master. You can remove the pull-up on the slave side but you will need to address the issue that "Justme" referred to when the master and slave are powered by different supplies with the master supply being ON and the slave supply being OFF.

  1. Cleanest option is to have both master and slave on the same supply
  2. If that is not possible, next cleanest option is to use a slave micro-controller whose I2C IOs are fail-safe i.e., the IOs will not load the bus when the bus is powered and the slave micro-controller supply is OFF. Not sure if there are such micro-controllers available.
  3. If both the above are not possible, we need to be aware that there will be extra leakage current from the master VCC supply when the slave VCC supply is OFF. This current will be limited by the pullup resistors. There is also a small possibility of functional issues and/or reliability issues like device damage which might be very difficult to catch.
sai
  • 3,352
  • 1
  • 2
  • 13
  • 1
    Generally, yes, but this is not a general case. The pull-ups should never be on the side which can power the unpowered side. – Justme Feb 25 '23 at 11:02
  • I agree with you about the unpowered side getting unintentionally powered through the IO pins but wouldn't the current be limited by the pullup resistor and hence no risk of any device damage? – sai Feb 25 '23 at 12:25