1
\$\begingroup\$

I am working with someone on a data logger based on an MSP430. Since it operates on battery power, we want the device to use as little power as possible. We are planning to use this chip (FT201X) to interface the device with USB in the next revision. When the chip is running, it draws considerable current, and when it is in standby mode, the current drawn (125µA) is still more than several other components on the board, so it seems like it would decrease battery life nontrivially, which isn't desirable since the chip doesn't do anything when it's not connected to USB. Most of the time the device will not be plugged in to USB. The device has its own I2C bus connected only to the MSP430, so disabling the bus might work, but would add hardware to handle the pull-ups.

My question is whether it is safe or not to leave the FT201X unpowered (that is, only powered by USB, and unpowered by the circuit) for normal use and only let it power up when USB is supplying power. I'm concerned that the I2C lines, which each will have a 1K pull-up resistor to 3.3V, might damage the chip when it has no power. The data sheet says that the inputs have an internal resistance of 75K, but the SDA might be the problem. Am I right in assuming that this is a bad idea?

Additionally, what other options might I have? Is it possible that I could power VCCIO but not VCC? That might be my favorite option if it's possible. I suppose other options include connecting the pull-ups to FETs or, I suppose, powering the chip always. Are there any better ways?

\$\endgroup\$
2
\$\begingroup\$

Why not just do what the datasheet suggests as the Application example for an USB-to-I2C-converter? Which is having the USB-chip powered via USB and the pull-ups via the VCCIO which is driven by the USB-chips 3V3OUT? In that case the pull-ups would not be active when the USB-device is not powered and there should be no problem I think...

\$\endgroup\$
  • 1
    \$\begingroup\$ If you do this, you need to be careful not to try accessing the I2C bus from the master while the pull-ups are unpowered. It would see an unclearable bus-busy condition and could hang if not coded properly. \$\endgroup\$ – DoxyLover Jul 10 '14 at 17:35
  • \$\begingroup\$ I hadn't even thought of that, but it's the obvious solution. Thanks for pointing that out! @DoxyLover this I2C bus will be bit-banged, so I'll probably configure SCA and SCL as inputs to indicate when there's USB power, but you're right, that's an important thing to look for when the device is spontaneously unplugged. Thanks. \$\endgroup\$ – krs013 Jul 10 '14 at 17:52
  • \$\begingroup\$ In my opinion any function accessing the I2C-bus should always have some sort of timeout to avoid situations where it could enter an infinite loop waiting for the bus to clear. Also in this scenario the master should probably check that the signals are high before it issues a start condition. \$\endgroup\$ – og1L Jul 10 '14 at 18:13
1
\$\begingroup\$

Disclaimer: I'm mostly a beginner.

From what I've learned so far, the danger in driving I/O lines higher than the supply is that it drives the collector-base diodes in the transistors on the input buffer in forward direction.

If the supply rail is connected to ground, and assuming 0.6V forward voltage drop, that leaves 2.7V across 76kΩ of resistance, so roughly 36µA are going to be leaked there.

If you don't keep the supply rail connected to the ground while the IC is unpowered, then it will float to 2.7V, which may cause a lot of interesting behavior.

I think that the "keep VCCIO powered" approach may work. If that chip didn't have its own buffer/driver logic, I'd add one to do the voltage conversion between the USB side and the battery side, but since the logic is already there, using it makes sense. Still, I'd clarify with the manufacturer first.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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