I want to use a PMIC chip in my project. As any PMIC, it has a couple of outputs: buck Vout, and an LDO out. The PMIC is operated over the I2C bus. The MCU acts as the host device and runs on Vout, so I have the I2C lines from my MCU pulled up to Vout.
The LDO output is controllable, in the interest of saving power and not losing quiescent current, I would like to use the LDO output to power another slave device. Here is a block diagram of how I would like to connect the MCU and slave device:
This slave device also operates over I2C. I only have one I2C bus, so I can only connect the device on that bus. Assuming the voltage levels are the same on Vout and VLDO, I am not sure the configuration I have will completely turn off the device, since the lines are still remain pulled up to Vout. Is this the right way to implement it? If not, how can I correctly configure it? In case my LDO and Buck outputs are not the same, how can this be connected?
Electronic – Multiple rails I2C bus device from PMIC
i2cldolow-power
Best Answer
The letter of the I2C spec says that the powered-down device is not supposed to drag down the I2C lines. In practice, this may not be the case, depending on how the chip designer implemented their I2C I/O pads.
I2C is supposed to be open-drain. However, sometimes designers will use a 'pseudo-open-drain', that is, a regular I/O pad that's wired to use output enable to make low / high-Z to form the I2C signal. The problem is, regular I/O pads have protection diodes that will kill the bus when the device is powered off.
Here's a clue: if the part has a Vi(h) spec on the I2C pads of, say, VccIO+0.5V, or they have no special statement about I2C vs. power-off, chances are there are protection diodes on the I2C pads that will be forward-biased by I2C on power-down.
The safest thing to do is to put an isolation switch between the powered-down I2C section and the main section, and disconnect the I2C domains from each other when the LDO is powered off.
You have options for the disconnect. You can use a level shifter with an enable, a signal switch (e.g., USB 2:1 mux like this one: http://www.ti.com/lit/ds/symlink/ts3usb221a.pdf) or even a pair of N-channel FETs for the cheapest solution.
If you can have a separate I2C bus for that peripheral and the PMIC, even better.