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.

TPS25751EVM: TPS25751 + BQ25731, PPS and reading out TPS25751 status

Part Number: TPS25751EVM
Other Parts Discussed in Thread: BQ25731EVM, TPS25751

Tool/software:

I am evaluating TPS25751EVM + BQ25731EVM as an autonomous charging solution for a product design.
I would like to use the following features:

  • 2 cell battery (8.4V, 1100mAh)
  • PPS feature
  • Debug Accessory mode
  • Audio Accessory mode

I have gotten the two EVKs up and running with a standard device configuration (attached)

However I am not seeing the charger utilize the PPS function. It basically just defaults to the highest PD profile available.

How do I enable PPS?

I am also looking to evaluate Debug and Audio Accessory modes.

Apparently both should be supported - however, with current setup, how do I best readout internal registers to verify that TPS25751 detect the proper modes. I current just use https://dev.ti.com/gallery/view/USBPD/USBCPD_Application_Customization_Tool/ver/1.0.2/ to program the configuration.

I know that Debug mode, later this year will be added so I can get this routed to a GPIO via the GUI.
How can I evaluate this feature before as I need to settle component selection very soon.

Similar with Audio Accessory, however I was informed by my local FAE this is not to be supported on GPIO but only as register readout. Can you confirm?

  • Hi Rene,

    However I am not seeing the charger utilize the PPS function. It basically just defaults to the highest PD profile available.

    How do I enable PPS?

    Can you share the .json file you are using with the EVM? Are you looking for PPS Sink?

    How can I evaluate this feature before as I need to settle component selection very soon.

    Similar with Audio Accessory, however I was informed by my local FAE this is not to be supported on GPIO but only as register readout. Can you confirm?

    Do you have a way of emulating a Debug and Audio accessory?

    You should be able to attach the accessories and then read from the Status register Connection State field to see the connection type.

    Thanks and Regards,

    Chris

  • Hi Christopher

    I am not sure how to upload files here. I drag and drop and it says it is uploaded but not seeing it any where. So I have just put the json file below

    {
      "questionnaire": {
        "device": "TPS25751",
        "toolBuildVersion": "1.0.2",
        "answers": [
          null,
          4,
          4,
          3,
          1,
          1,
          2,
          0,
          1,
          1,
          1,
          2,
          1,
          0,
          8.4,
          0.512,
          0,
          0,
          0
        ],
        "vendorId": "0000",
        "productId": "0000",
        "version": "1.0.0.2"
      }
    }

    But yes I was hoping to use it basically as PPS sink, so let the USB adapter more or less set the optimal VBUS and current to minimize charging losses towards the battery. I hoped and was informed this could be done autonomous without using a host MCU to control this. Perhaps I am mistaken?

    Regarding debug and audio accessories I already have these devices onhand (we are using this with other USB CC controllers), but what I am lacking is being able to read out the registers of TPS25751. Perhaps I am just not using the proper application to do this, as the one I am using seems to just setup the configuration - but not being able to read out individual register values etc.

    Please correct me here if I am wrong.

  • Hi Rene,

    I am not sure how to upload files here. I drag and drop and it says it is uploaded but not seeing it any where. So I have just put the json file below

    Perfect, this is the best option.

    But yes I was hoping to use it basically as PPS sink, so let the USB adapter more or less set the optimal VBUS and current to minimize charging losses towards the battery. I hoped and was informed this could be done autonomous without using a host MCU to control this. Perhaps I am mistaken?

    Yes and No.

    First, you need to add a PPS sink PDO and enable Sink PPS through the Advanced config portion of the GUI.

    Adding the PDO (Increment number of PDOs and configure as shown)

    Enable Sink PPS and set desired voltage and current

    PPS is intended to be used with an MCU that can update the operating current and voltage in real time. You can set an initial operating voltage and current for the PPS contract, but if the attached source does not advertise the contract requested, the PD controller may try to negotiate the max fixed PD contract.

    {
      "questionnaire": {
        "device": "TPS25751",
        "toolBuildVersion": "1.0.2",
        "answers": [
          null,
          4,
          4,
          3,
          1,
          1,
          2,
          0,
          1,
          1,
          1,
          2,
          1,
          0,
          8.4,
          0.512,
          0,
          0,
          0
        ],
        "vendorId": "0000",
        "productId": "0000",
        "version": "1.0.0.2"
      },
      "configuration": {
        "data": {
          "selected_ace": [
            {
              "register": 6,
              "data": [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 22,
              "data": [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                3
              ]
            },
            {
              "register": 40,
              "data": [
                0,
                8,
                46,
                1,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                3
              ]
            },
            {
              "register": 41,
              "data": [
                50,
                48,
                144,
                0
              ]
            },
            {
              "register": 50,
              "data": [
                0,
                170,
                42,
                44,
                145,
                1,
                36,
                44,
                209,
                2,
                0,
                44,
                177,
                4,
                0,
                244,
                65,
                6,
                0,
                244,
                65,
                6,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 51,
              "data": [
                5,
                44,
                145,
                1,
                16,
                44,
                209,
                2,
                0,
                44,
                177,
                4,
                0,
                44,
                65,
                6,
                0,
                60,
                50,
                164,
                193,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 55,
              "data": [
                59,
                192,
                18,
                65,
                144,
                145,
                1,
                0,
                1,
                0,
                0,
                0,
                60,
                20,
                5,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 66,
              "data": [
                26,
                0,
                8,
                0
              ]
            },
            {
              "register": 92,
              "data": [
                13,
                4,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                4,
                0,
                0,
                0,
                4,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                4,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 112,
              "data": [
                0
              ]
            },
            {
              "register": 119,
              "data": [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                127,
                0
              ]
            },
            {
              "register": 122,
              "data": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 123,
              "data": [
                0,
                2,
                255,
                255,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 125,
              "data": [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 126,
              "data": [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 152,
              "data": [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            }
          ]
        }
      }
    }

    Regarding debug and audio accessories I already have these devices onhand (we are using this with other USB CC controllers), but what I am lacking is being able to read out the registers of TPS25751. Perhaps I am just not using the proper application to do this, as the one I am using seems to just setup the configuration - but not being able to read out individual register values etc.

    Correct, the GUI is only for generating images and programming the EVM. It does not support raw register reads at the moment and you will need some external device to read the device over I2C. You can connect to the I2Ct pins on the TPS25751EVM to gain access to the TPS25751 registers.

    Thanks and Regards,

    Chris