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.

TPS25751: Charging applications using BQ25798 with additional DC input source

Part Number: TPS25751
Other Parts Discussed in Thread: BQ25798, TPS2121

Tool/software:

Hi,
Battery charger application examples show the charger fed by the TPS25751 "I2Cc" bus and having only one DC input from TPS25751 "PPHV".

Our product application has a second "Ext DC" input source having priority over the USB source.  We are using the TPS2121 power mux selecting either the TPS25751 "PPHV" output or our "Ext DC" input to feed the BQ25798 "VBUS" input.

The BQ25798 experiences problems while operating on the "Ext DC" priority input when attaching or detaching a USB source.  The TPS25751 is unaware of the "Ext DC" presence.

Should we instead connect the BQ25798 I2C directly to our Embedded Controller (EC) along with the TPS25751 "I2Ct" (target) bus?  Do you have operational & setup recommendations to use our EC between the TPS25751 and BQ25798?

Thank you for your help.

Norbert

  • Hi Norbert,

    Give me a couple days to put something together and I'll get back to you!

    Thanks,

    Chris

  • Hi Norbert,

    Should we instead connect the BQ25798 I2C directly to our Embedded Controller (EC) along with the TPS25751 "I2Ct" (target) bus?

    Correct, after our meeting, I would recommend that you control the BQ25798 and TPS25751 directly with your Embedded Controller.

    Do you have operational & setup recommendations to use our EC between the TPS25751 and BQ25798?

    There are not too many recommendations that we have, but I'll outline what the TPS25751 would handle if connected directly so you can consider how to integrate it in your EC code.

    For the configuration question in the TPS25751 GUI, you should select the second option. The BQ configurations are specifically for when the TPS25751 is controlling the BQ device over I2C (not if there is a BQ in the system).


    Regarding EC control of the PD and BQ, there are a couple requirements.

    First, here is a rough outline of what the TPS25751 does when it is controlling the BQ. This is mainly for context, in the following section I'll specify what is required and what you should keep in mind.

    Power up:

    • General Config
      • Setting charging currents and voltages
      • Disabling Watchdog
      • other general settings

    Sink connected (TPS25751 power role Source):

    • Enable OTG mode
    • Program VOTG and IOTG to match negotiated PD contract (i.e. if the TPS25751 negotiates 15-V/2.3-A as a source, the BQ needs to be programmed to provide that voltage and current

    Source connected (TPS25751 power role Sink):

    • Enable Charging mode
    • Program IINDPM and VINDPM to support the active contract. (i.e. if the TPS25751 negotiates 15-V/2.3-A as a sink, the BQ needs to set the input current limit to 2.3-A to not overdraw, and set the VINDPM to a safe level to support the active contract)

    Detach/Hard Reset:

    • Disable BQ (disable charge and otg modes) and configure for a safe reconnect
    • Write safe voltages and currents to the OTG and DPM registers
      • This is primarily to put the system in a safe state on reconnect
      • By a "safe state on reconnect", we are generally configuring settings we don't want enable on reconnections that would cause unexpected power deliver or draw to occur.

    Requirements for your EC:

    There is a bit going on, but you should not need to implement it all. I'll list what the EC does need to be aware of.

    On power up, configure the Battery charger as you desire. Work with the team that supports that IC for a full list of requirements, but these are things like charge current, term current, disabling watchdog timers, and other general config.

    When a sink is connected, because you are only supporting a 5-V contract and doing it through PP5V and a dedicated 5-V bus, you don't need to do anything here.

    When a source is connectedand if you are choosing to charge from the Type-C port, you need to update IINDPM and VINDPM to match. These should be configured before you enable the power path connecting the TPS25751 to the BQ.

    Some general guidelines on what is needed for this:

    • In the TPS25751 GUI, you can select which events you want to trigger an I2C interrupt. (Advanced mode, register 0x16)
      • You may want to mask things like plug insert or removal, hard reset, and new contract as consumer
    • Upon interrupt, you can read a status register (0x1A) to see if it was a plug, unplug, and if the port is a source or sink.
    • Once that has been determined, you can read the active contract in the ActiveRDOContract(0x35) register to determine the negotiated voltage and current.

    Detach/Hard Reset is a little more difficult as it will depend on your system. During Detach/Hard reset, your system will either lose power or switch to the other power path. You mainly need to make sure that the next time the PD controller connects, you will not be drawing excessive power from the TPS25751 before a contract has been negotiated. This could be as simple as temporarily disabling the power path to the TPS25751, but is really up to you.

    I hope this helps, but let us know if you have any more questions.

    Thanks and Regards,

    Chris