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.

TUSB320HAI: Device VDD and I2C pull-up voltage range

Part Number: TUSB320HAI
Other Parts Discussed in Thread: BQ25896, , TUSB320

Hello,

Could you please clarify the relationship between device VDD Supply Voltage and what is referred to as "VDD_I2C Supply range" in the quote below?

"6.5 Electrical Characteristics
VDD_I2C Supply range for I2C (SDA/OUT1, SCL/OUT2) 1.65 - 1.8 - 3.6 V" (p6)

I would expect the SDA and SCL pin I2C signal voltage range to be quite independent of the device VDD voltage range. The datasheet says ...

"When using the 3.3 V supply for I2C, the end user must ensure that the VDD is 3 V and above. Otherwise the I2C can back power the device." (p12)

... so this is a limiting factor, but so long as this is met, having e.g. 5 V VDD should work perfectly well with a 3.3 V I2C bus. (?)

Could you confirm that VDD_I2C is not referring to device VDD, but simply specifies the I2C bus pull-up voltage range?

---

My question comes from a need for a solution to this limitation ...

"VDD must be 3.5 V or greater to advertise 3 A current." (p5 footnote)

... in the following scenario:

Our system is powered from a bq25896 battery charger for a single Li-Ion cell of ICR or "high-voltage" chemistry (sharp knee in the discharge curve at about 3.5 V). The bq25896 specifies that its VSYS output will not exceed 4.42 V when charging a 4.35 V cell. The 3.24 V system supply rail is generated from VSYS via an LDO. This 3.24 V is used for the MCU and the I2C buses. When battery drops below about 3.5 V we enter bq25896 shipping mode as a means to power off the system.

So, powering the TUSB320HAI VDD from the bq25896 VSYS output would be a simple way to meet the requirement. (It is still necessary to level shift the PORT input pin with e.g. an 74LVC1G34 buffer. The MCU can interface directly to the EN pin on the HAI variant, but the LAI variant would require an additional 74LVC1G34 buffer level shifter.)

Thank you in advance and best regards

Niclas

  • Niclas;

         VDD_I2C is not device VDD, it's just pullup voltage of I2C Bus.

         LAI is enable with low voltage, HAI is enable with high voltage. You mean HAI need level shifter?

    Regards

    Brian

  • Thank you Brian,

    This answered my question. I'll mark this thread as resolved after we finalize the second part of my posting.

    Regarding the difference between LAI and HAI, and particularly in the scenario I described:

    I desire two things: I want to be able to advertise 3 A when in DFP role and to be able to switch between DFP and UFP on the fly. If 1.5 A advertisement is sufficient, you can just power the TUSB320xAI from the same 3.3 V LDO as the MCU and the I2C bus (which makes most of the rest of this posting non-applicable). I am not interested in DRP; only user-configurable DFP or UFP. I am only using I2C mode (not GPIO mode).

    Please see the datasheet page 5 under "CONTROL PINS: PORT, ADDR, INT/OUT3, EN_N, EN, ID". There is a subtle difference regarding VIH; The LAI variant is from VDD - 0.3 V to VDD on the EN_N pin. The HAI variant is from 1.05 V to 3.65 V on the EN pin.

    In the use case when you are supplying the MCU and the I2C bus from LDO e.g. fixed 3.3 V and the TUSB320xAI from a non-fixed VSYS (from LiIon cell) 3.5 V to 4.42 V, the HAI variant EN pin can be controlled directly from the 3.3 V MCU but the LAI variant EN_N pin must have some kind of level shifter circuit. A simple N-channel enhancement mode FET inverter with pull-up to VSYS would work but a 74LVC1G34 buffer or a 74LVC1G04 inverter would do the same level shifting without pull-up resistor loss.

    If I understand correctly, you would want to change the EN / EN_N level for two reasons; lower power loss when not connected to another USB gadget and for DFP <-> UFP role change. The role change can alternatively be done via I2C_SOFT_RESET on the TUSB320xAI.

    The PORT input pin has the same requirements as the LAI EN_N pin. (And the ADDR pin, but few designs would benefit from the ability to change I2C address on the fly.)

    This is assuming that DFP <-> UFP role change in I2C mode requires changing the PORT pin level and that cycling EN_N / EN is advantageous in this context. "7.3.1 Unattached Mode" (p13) leads me to believe that you can hard-wire the PORT pin to e.g. UFP role and (re)configure the role via writes to the MODE_SELECT register. There might be use cases in which this wouldn't work, e.g. when already physically connected to a DRP gadget, in which case the TUSB320xAI with PORT hard-wired to UFP would become attached as SNK before you can write DFP to the MODE_SELECT register (which can only be changed when unattached). Controlling both EN_N / EN and PORT at pin level should hopefully make it a DFP before it becomes attached.

    Could you please clarify this?

    The use case is slightly more complicated when taking pin-compatible competing devices PI5USB30216C / PI5USB30216D or FUSB303BTMX into consideration. The TUSB320HAI is my favourite in terms of features and ease-of-programming, but having multiple sources is wise, especially with today's semiconductor shortage. At least one of the competing devices needs power cycling of the USB C controller device for a role change.

    Best regards

    Niclas

  • Are you going to  control EN/EN_N high/low or just keep it high or low all the time? Port pin can be just floating for easy control.

    Regards

    Brian

  • Hi Bryan,

    I'm afraid this is my question to you. Yes, you can change roles via I2C write to the MODE_SELECT register - if our system is not already attached. But what happens in the situation when our system is already physically connected to another gadget when our system powers up or when we want to change roles? We have a few alternatives for making sure we are (at least temporarily) unattached so role change is possible:

    1. EN deasserted, PORT (re)configured to the wanted role, EN asserted

    2. PORT hardwired (high, low, or floating), SW reset, I2C write wanted role to the MODE_SELECT register

    3. EN deasserted, PORT hardwired (high, low, or floating), EN asserted, I2C write wanted role to the MODE_SELECT register

    And:

    "Initially, right after power up, the TUSB320 device comes up as an Unattached.SNK. The TUSB320 device checks the PORT pin and operates according to the mode configuration. ... In unattached mode, I2C can be used to change the mode configuration or port role if the board configuration of the PORT pin is not the desired mode. Writing to the I2C MODE_SELECT register can override the PORT pin in unattached mode." (7.3.1, p13)

    The I2C write takes time, so (2.) and (3.) should run the risk of becoming attached in an unwanted role before the I2C write completes. The clarification I was seeking is an expected confirmation that (1.) is the best alternative.

    Our system is normally a UFP / device that the user can choose to change to a DFP / host, so PORT should be pulled down to GND at system power-up.

    Regards

    Niclas

  • In pin-strap mode, PORT pin selects the mode.  The need to control the EN pin and change PORT pin to the desired mode.

     

    The datasheet mentions how to change mode in I2C: