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.

TPS25750: Is it possible to select amongst received PDOs

Part Number: TPS25750


I have a power supply which shall support USB-PD, and I'm using the TPS25750 for this purpose.
When I connect it to mu USB-PD enabled powersupply, it works okay, negotiating the highest available power from the power supply.

However, there are a couple of cases where I might want to use one of the lower voltage PDOs available. Is this possible to do runtime?
Currently I'm doing all communication and setup through I2C, so I have full control over the I2C commands.
Setting this up in the GUI is not an option, as the need for selecting lower voltages is dictated by outer parameters (such as temperature).

I do receive the correct PDOs in register 0x31, I just cant figure out how to select these freely from software.

Best Regards
Vidar

  • Using the TPS25750 as a source, you can update the TX_SOURCE_CAPS register (0x32) when you read new values from the RX_SINK_CAPS register (0x31), to the new source PDOs you want to send out. Then, you can use the 4CC task 'SSrC' to send those updated source capabilities to your sink. This is detailed in the TPS25750 Technical Reference Manual.

    Regards,

    Conner Gillette

  • Hi Conner, thank you for the quick reply.
    I'm using the TPS25750 as a sink, is there a way of selecting one of the received PDOs as the active PDO with either e 4CC command or by a register write?

    Edit: I do receive the correct PDOs from my source (5, 9, 12, 15 and 20v), but the TPS25750 always select the 20v PDO as the active one. I have cases where I would like to select the 15v PDO, or even the 12v PDO from this source. 

    Best Regards

    Vidar

  • There is not a method with this device to choose a source PDO out of a list of source PDOs. This includes register writes, 4CC commands, and GPIO input/outputs.

    Regards,

    Conner Gillette

  • Okay, thank you for the confirmation.
    Do you have similar devices where this is possible?

    Best Regards

    Vidar

  • Hi Vidar, 

    I believe I have found a solution using the TPS25750. I will test it this Monday and reply to you with the procedure by late Monday or early Tuesday.

    Regards,

    Conner

  • Steps to use TPS25750 as a sink and change active PDO:

    1. Configure initial sink PDOs in Application Configuration Tool and flash TPS25750.
    2. Connect TPS25750 to source.
    3. Confirm initial explicit contract has been successfully negotiated.
    4. When you want to change negotiated contract, update sink PDOs in register 0x33 using 'I2Cw' command.
    5. Send 'GSrC' command. This will renegotiate the active PDO contract based on the updated sink PDOs you wrote in Step 4.

    Example:

    The TPS25750EVM is initially configured as a sink with 5V, 9V, 15V, and 20V PDOs and is subsequently connected to a Power-Duo-EVM (configured as source) with 5V, 9V, 15V, and 20V PDOs. A 20V contract is successfully negotiated.

    I want to then negotiate a 15V contract. I write the 5V, 9V, and 15V PDOs to the 0x33 register (thus removing the 20V PDO) using 'I2Cw'. At this point, the 20V contract is still negotiated, as the register write does not affect the current negotiated contract. I then send the 'GSrC' command which renegotiates the contract to the highest available PDO sent by the sink, which is the 15V contract.

    Kind regards,

    Conner Gillette

  • Thanks, this works perfectly!

  • That's great to hear Vidar. I will go ahead and close thread.