This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

I2C Level Shifter with Vary Supply Voltage Range from Battery Power Source

Other Parts Discussed in Thread: CC3200MOD, TCA4311A, LSF0102, TCA9517

Hi, 

I'm looking for a level shifter to use in my battery application. I have a fuel gauge connected to a lithium-polymer battery with a voltage range from 3V to 4.2V on one side, which needs to communicate with a fixed 3.3V powered MCU on the other side through I2C.

When I was searching for parts, their datasheets always specify that VCCA must be less than or equal to VCCB, which won't be the case for my application.

Does anyone know any level shifters that can work for me? 

Any help is appreciated!

  • Kychen,

    I have a couple of questions to ask so that I can better assist you in finding a solution.

    1. Do you intend on the fuel gauge being on the "A" side with VCCA = 3V to 4.2V and the MCU being on the "B" side with VCCB = 3.3V?

    2. Can your MCU safely tolerate 5V at the pins? Sometimes MCUs have this feature.

    3. What is the communication speed of the I2C?

    If the answer to question 1 and 2 is true, powering VCCB with 5V would ensure the condition of VCCA <= VCCB.

    -Lucas
  • Hi Lucas,

    I'm using the CC3200MOD from TI. I believe it cannot tolerate 5V, and its standard I2C transmission speed is 100Kbps.

    The fuel gauge can be on A side or the other way. My worry is that if VCCB should always be higher or equal to VCCA based on the datasheets, my circuit won't function when the battery voltage drops below 3.3V.

    Thanks!

  • Would you be willing to incorporate an LDO on the side with the fuel gauge? A 2.7V or so LDO would produce a constant output voltage for that that side of the level shifter for the input voltage of 3V to 4.2V. The side of the MCU can then be the constant 3.3V and always be above the side with the LDO.

    -Lucas
  • I am already using a voltage regulator to produce a constant 3V3 to power the MCU. Can I power both VCCA and VCCB with the same 3V3 output then? Would the performance of the level shifter still be good for I2C if I have VCCA=VCCB all the time?

    I also found this forum post e2e.ti.com/.../576669 that provided a solution for a similar case, but it's not testified. Would this be something that could work for me?

    Thanks!
  • Using a voltage divider to provide different reference voltages for the LSF0102 should work and I have seen other posts recommending similar approaches for this kind of device. If you are looking at using one single voltage supply, maybe look at the TCA4311A buffer. This I think would be straight forward and can be powered from the 3.3V supply.
  • After reviewing your application and request, I have found that the TCA9517 could directly work for you as shown in the diagram above. It does not have the limitation involving VCCB and VCCA as discussed before. Let me know if this could work you. Also let me know if you need any digital isolation or buffering as I can make recommendations for those too.

    -Lucas

  • Thank you Lucas!

    TCA9517 seems very applicable to my project. I'll have to test that out once I get the parts.

    -Kychen

  • Hi Lucas,

    I don't have the fuel gauge at hand, so I tested the TCA9517 with the MCU and another I2C device.

    I used 1k Ohm as pull-up resistors on both sides, and it worked for my current setup. However, when I tried 10k Ohm as pull-up on side A, it stopped working. I looked into the datasheet, and saw it mention that the pull-up resistance need to be carefully selected to ensure that logic levels will be transferred correctly.

    Can you provide some insights on how to determine the pull-up resistor values? I want to make sure the setup can still function when I switch over to use the fuel gauge.

    Thank you!
  • Kychen,

    I apologize for the late response. Check out this document that shows how to calculate values for the pull up resistors.
    www.ti.com/.../slva689.pdf

    -Lucas