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.

TPS65988: Automatic port swap to higher power source

Part Number: TPS65988

Tool/software:

As the description states, we'd like to have the TPS65988 automatically switch over to the port with the highest power. In our system, both ports are configured as dual-role ports, but for this particular use-case two sources are plugged in and both ports operate in sink mode. This question has somewhat been answered in this thread here, but this is essentially just a voltage OR'ing and will only pick the higher voltage, not the port with the higher power profile.

Based on the HITRM, the "MultiPortSinkPolicy" in the global system configuration register specifies that "Only one Sink path is enabled at a time. If both ports are connected to a Source, the port with the higher power contract enables its Sink path.". This is exactly the behavior we'd like, but unfortunately that's not how it is behaving. For example, if a 9V/3A supply is plugged into port 1 and a 20V/3A supply is plugged into port 2, then I expect the PD controller to switch over to port 2, but it remains on port 1.

Can you advise what settings are necessary for the "MultiPortSinkPolicy" option to automatically switch to the higher power source?

Additionally, I am wondering if the port switching can be done seamlessly such that the system voltage is not dropped? When I tried the solution for the problem raised in the linked thread above, I saw a 20-30ms drop to ~4V, whenever a switch happened. This would not be acceptable for our application.

Regards,

Adrian

  • Adrian,

    Please share your PJT file here so I can see your settings. 

    Thanks,

    Chris

  • Hi,

    Attached is the PJT file. Thanks for taking a look.TPS65988_DualRole_TestConfig.pjt

    I'm also wondering if you could help me understand how the MultiPortSinkPolicy setting stating that "the port with the higher power contract enables its sink path" can be enabled and used. Specifically, what is required for this to work?

    Thanks,

    Adrian

  • Adrian,

    Looks like your PJT did not have Multiport Sink Policy set to 'Only highest power sink closes switch' so please set that to start.

    The other setting that will help with this is the 'Sink Policy Non-overlap Time' this right now is set to 1ms which is the lowest we can do. This is only valid if the Multiport Sink Policy is set to 'Only highest power sink closes switch'. 

    Multiport Sink Policy also relies on Autonegotiate Sink (0x37) and the Tx Sink Caps register (0x33). 

    Since you have Tx Sink Cap (0x33) variable PDO set to MINIMUM of 9V, AND Autonegotiate Sink field 'Auto Compute Sink Min Power' = 1, the PD will calculate the minimum power as 9V*3A and that will always be the minimum. 

    I suggest trying an experiment. Create another Fixed Sink PDO of 20V/3A and that may change the calculations to get this to work. Also if you can go into 'Debug Mode', then it may be useful to see what the Autonegotiate Sink field 'Auto Negotiate Sink Min Required Power' is set to. This will be overidden with an auto-calculated value based on the Tx Sink Caps register. 

  • Chris,

    Sorry for the late response. Have been busy with some other things but I finally managed to give your suggested experiment a try. First, I realize the the PJT I sent didn't have the multi-sink policy set correctly. That's because I couldn't get it to work and resorted to the voltage OR'ing option that is described in this thread here.

    Now, your experiment didn't really work. I did update the Tx sink caps registers (0x33) to both include a 9V, 15V, and 20V fixed PDOs (no variable ones). The TPS65988 does auto-negotiate successfully on both ports and picks the highest PDO, but it still does not switch to the higher port. 

    My test setup and procedure is as follows:

    • Plug in 5V/3A capable source into port 1. System power turns on and is at 5V.
    • Next, plug in a 60W USB-C power supply capable of up to 20V. The TPS65988 negotiates the 20V PDO, but does NOT switch system power over.
    • Both "Auto Negotiate Sink Min Required Power" fields are set to 45W for both ports, which I believe is correct based on the provided Tx sink caps.

    Attached is the updated PJT file. I've made some additional modifications to the Tx PDOs (both sink and source) just to optimize a bit.

    Would you expect the "Autonegotiate Sink Min Required Power" to be updated to 45W if the source that's plugged in can only do 5V/3A (15W)? 

    My expectation is that both ports can have the same list of desired sink PDOs and when two sources are attached the TPS65988 will pick the source that has the higher power capability based on the desired sink PDOs. Can you confirm that this intended operation is possible and how we can get there? FYI, I am using the TPS65988DJEVM dev kit to test this.

    TPS65988_DualRole_TestConfig_8_26.pjt

  • Can you read-back register 0x26 during this scenario? I suspect the Dead-Battery flag is being set which would cause PD to NOT switch over power paths.