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.

TPS65987D: Adjusting BQ25792 IINDPM based on negotiated PDO contract

Part Number: TPS65987D
Other Parts Discussed in Thread: BQ25792

Hi,

I am planning on using the TPS65987D in I2C master mode to configure the BQ25792 IINDPM current limit based on the negotiated PDO. However I have a question that involves configuring of this current limit when Ask For Max is set in a sink PDO. The example given in the technical reference manual is the following:

When set to 1, the PD Controller will request the maximum current that the Source is able to provide that fits within the range of [ Operating Current : MaxOperatingCurrentOrPower]. Example: If a Sink PDO is configured with (Fixed supply 20V, Operating Current = 1A, MaxOperatingCurrentOrPower=3A) without the AskForMax flag checked and the Source is capable of providing 20Vat2A, the Ssink will request an Operating Current = 1A, MaxOperatingCurrentOrPower=2A.If instead the Sink PDO is configured with (Fixed supply 20V, Operating Current = 1A, MaxOperatingCurrentOrPower = 3A) with the AskForMax flag checked and the Source is capable of providing 20V at 2A, the Sink will request an Operating Current = 2A, MaxOperatingCurrentOrPower = 2A.

So based on this I have a problem if I blindly set the IINDPM of the BQ25792 to 3A to match the pre-defined PDO maximum, because in the actual negotiated PDO the source is expecting to only supply a maximum of 2A - not 3A. The BQ25792 has a nice battery supplementation mode, whereby if the system power exceeds the input source power, it will halt charging the battery and instead use it to supplement the system power demand. This in turn gracefully prevents an overcurrent on VBUS. However this will only work if IINDPM matches the maximum current in the contract.

So here is the problem - How can IINDPM be set based on the MaxOperatingCurrent of the negotiated contract, rather than the MaxOperatingCurrent in the pre-defined Sink PDOs? The data fields in the record indices only allow for fixed I2C payloads with seemingly no granularity for variations in the accepted PDO. Is there some way to adjust the configuration written to IINDPM based on, for example, the Active Contract PDO register rather than the PDOs in the Sink Capabilities register?

TIA