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.

TIDA-050047: TPS25751, BQ25792

Part Number: TIDA-050047
Other Parts Discussed in Thread: TPS25751, BQ25798, BQ25792

Tool/software:

Hi,

I have designed my own power bank solution based on this TIDA-050047 reference design but I can't make it to start charging. Here is the schematic: https://1drv.ms/b/c/4d02066e8d01f203/EX0QUFa0jIVLqGPWJhR6LDsBiddi0IgIPWZRmeFhf91uMA?e=unpMpq

I have single cell solution and I have made the configuration with USBCPD customization tool (the cloud software) and I have inserted the binary to eeprom. Basically If I did understand correctly, that is all I need to do to make this system to charge and discharge the battery. I have verified that the TPS25751 goes to 'APP' mode (read via I2C) but I haven't done any more investigation yet.

But anyway. Is there something obvious wrong in my design or Do I need to manipulate the registers even more via I2C?

Eeprom customization is the same as in the TIDA-050047 manual, except the battery charging voltage and current (4.1V and 1A).

All help is highly appreciated because I have been banging my head to the wall quite few weeks already.

Thank you in advance!!

  • Hi Tomi,

    Can you share your json used with the GUI as well? You should be able to just drag it into the message box from file explorer.

    What do you mean by "can't make it to start charging"? How are you testing it, what are you doing to determine this?

    Please share the schematic as a PDF if possible, the onedrive link does not seem to be working on my end.

    Thanks and Regards,

    Chris

  • PowerBank.pdf

    <?xml version="1.0"?><VIF xmlns="http://usb.org/VendorInfoFile.xsd"><VIF_Specification>3.33</VIF_Specification><VIF_App><Vendor>USB-IF</Vendor><Name>Texas Instruments USB-C PD Vendor Info</Name><Version>1.0</Version></VIF_App><Vendor_Name>TI</Vendor_Name><Model_Part_Number>TPS25751</Model_Part_Number><Product_Revision>1</Product_Revision><TID>0</TID><VIF_Product_Type value="0">Port Product</VIF_Product_Type><Certification_Type value="0">End Product</Certification_Type><Product><USB4_DROM_Vendor_ID value="1105">0451</USB4_DROM_Vendor_ID><USB4_Num_Internal_Host_Controllers value="3"/><USB4_Num_PCIe_DN_Bridges value="3"/><USB4RouterList><Usb4Router><USB4_Router_ID value="0"/><USB4_Silicon_VID value="32903">8087</USB4_Silicon_VID><USB4_Num_Lane_Adapters value="4"/><USB4_Num_USB3_DN_Adapters value="4"/><USB4_Num_DP_IN_Adapters value="4"/><USB4_Num_DP_OUT_Adapters value="4"/><USB4_Num_PCIe_DN_Adapters value="4"/><USB4_TBT3_Not_Supported value="0">TBT3 Compatible</USB4_TBT3_Not_Supported><USB4_PCIe_Wake_Supported value="true"/><USB4_USB3_Wake_Supported value="false"/><USB4_Num_Unused_Adapters value="4"/><USB4_TBT3_VID value="32903">8087</USB4_TBT3_VID><USB4_PCIe_Switch_Vendor_ID value="32903">8087</USB4_PCIe_Switch_Vendor_ID><USB4_PCIe_Switch_Device_ID value="32903">8087</USB4_PCIe_Switch_Device_ID></Usb4Router></USB4RouterList></Product><Component><Port_Label>1</Port_Label><Connector_Type value="2">Type-C</Connector_Type><USB4_Supported value="false"/><USB4_Router_Index value="0"/><USB_PD_Support value="true"/><PD_Port_Type value="4">DRP</PD_Port_Type><Type_C_State_Machine value="2">DRP</Type_C_State_Machine><Port_Battery_Powered value="true"/><BC_1_2_Support value="0">None</BC_1_2_Support><BC_1_2_Charging_Port_Type value="0">DCP</BC_1_2_Charging_Port_Type><PD_Specification_Revision value="2">Revision 3.0</PD_Specification_Revision><PD_Spec_Revision_Major value="3"/><PD_Spec_Revision_Minor value="2"/><PD_Spec_Version_Major value="1"/><PD_Spec_Version_Minor value="1"/><SOP_Capable value="true"/><SOP_P_Capable value="true"/><SOP_PP_Capable value="false"/><SOP_P_Debug_Capable value="false"/><SOP_PP_Debug_Capable value="false"/><Manufacturer_Info_Supported_Port value="false"/><Manufacturer_Info_VID_Port value="1105">0x451</Manufacturer_Info_VID_Port><Manufacturer_Info_PID_Port value="0">0x0</Manufacturer_Info_PID_Port><USB_Comms_Capable value="false"/><DR_Swap_To_DFP_Supported value="true"/><DR_Swap_To_UFP_Supported value="true"/><Unconstrained_Power value="false"/><VCONN_Swap_To_On_Supported value="true"/><VCONN_Swap_To_Off_Supported value="true"/><Responds_To_Discov_SOP_UFP value="true"/><Responds_To_Discov_SOP_DFP value="true"/><Attempts_Discov_SOP value="true"/><Power_Interruption_Available value="0">No Interruption Possible</Power_Interruption_Available><Data_Reset_Supported value="false"/><Enter_USB_Supported value="false"/><ID_Header_Connector_Type_SOP value="2">USB Type-C Receptacle</ID_Header_Connector_Type_SOP><Chunking_Implemented_SOP value="true"/><Unchunked_Extended_Messages_Supported value="true"/><Security_Msgs_Supported_SOP value="false"/><Num_Fixed_Batteries value="0"/><Num_Swappable_Battery_Slots value="0"/><Type_C_Can_Act_As_Host value="false"/><Type_C_Can_Act_As_Device value="false"/><Type_C_Implements_Try_SRC value="false"/><Type_C_Implements_Try_SNK value="false"/><Type_C_Supports_Audio_Accessory value="false"/><Type_C_Is_VCONN_Powered_Accessory value="false"/><Type_C_Is_Debug_Target_SRC value="false"/><Type_C_Is_Debug_Target_SNK value="false"/><Captive_Cable value="false"/><RP_Value value="2">3A</RP_Value><Type_C_Port_On_Hub value="false"/><Type_C_Power_Source value="4">&lt;select&gt;</Type_C_Power_Source><Type_C_Sources_VCONN value="true"/><Type_C_Is_Alt_Mode_Controller value="false"/><Type_C_Is_Alt_Mode_Adapter value="false"/><USB4_Max_Speed value="1">Gen 3 (40Gb)</USB4_Max_Speed><USB4_DFP_Supported value="false"/><USB4_UFP_Supported value="false"/><USB4_USB3_Tunneling_Supported value="true"/><USB4_DP_Tunneling_Supported value="false"/><USB4_PCIe_Tunneling_Supported value="false"/><USB4_TBT3_Compatibility_Supported value="false"/><USB4_CL1_State_Supported value="true"/><USB4_CL2_State_Supported value="true"/><USB4_Num_Retimers value="0"/><USB4_DP_Bit_Rate value="3">HBR3</USB4_DP_Bit_Rate><USB4_Num_DP_Lanes value="4">4 lanes</USB4_Num_DP_Lanes><USB4_Lane_0_Adapter value="1"/><Host_Supports_USB_Data value="true"/><Host_Speed value="4">USB 3.2 Gen 2x2</Host_Speed><Host_Contains_Captive_Retimer value="false"/><Host_Truncates_DP_For_tDHPResponse value="false"/><Host_Is_Embedded value="false"/><Host_Suspend_Supported value="true"/><Is_DFP_On_Hub value="false"/><Device_Supports_USB_Data value="true"/><Device_Speed value="4">USB 3.2 Gen 2x2</Device_Speed><Device_Contains_Captive_Retimer value="false"/><Device_Truncates_DP_For_tDHPResponse value="false"/><PD_Power_As_Source value="15000">15000 mW</PD_Power_As_Source><EPR_Supported_As_Src value="false"/><Has_Invariant_PDOs value="true"/><USB_Suspend_May_Be_Cleared value="true"/><Sends_Pings value="false"/><FR_Swap_Type_C_Current_Capability_As_Initial_Sink value="0">FRS Not Supported</FR_Swap_Type_C_Current_Capability_As_Initial_Sink><Master_Port value="true"/><Num_Src_PDOs value="1"/><PD_OC_Protection value="true"/><PD_OCP_Method value="2">Both</PD_OCP_Method><SrcPdoList><SrcPDO><Src_PDO_Supply_Type value="0">Fixed</Src_PDO_Supply_Type><Src_PDO_Peak_Current value="0">100% IOC</Src_PDO_Peak_Current><Src_PDO_Voltage value="100">5000 mV</Src_PDO_Voltage><Src_PDO_Max_Current value="300">3000 mA</Src_PDO_Max_Current><Src_PD_OCP_OC_Debounce value="10">10</Src_PD_OCP_OC_Debounce><Src_PD_OCP_OC_Threshold value="345">3.45</Src_PD_OCP_OC_Threshold><Src_PD_OCP_UV_Debounce value="10">10</Src_PD_OCP_UV_Debounce><Src_PD_OCP_UV_Threshold_Type value="1">Percentage</Src_PD_OCP_UV_Threshold_Type><Src_PD_OCP_UV_Threshold value="70">70</Src_PD_OCP_UV_Threshold></SrcPDO></SrcPdoList><PD_Power_As_Sink value="15000">15000 mW</PD_Power_As_Sink><No_USB_Suspend_May_Be_Set value="true"/><GiveBack_May_Be_Set value="false"/><Higher_Capability_Set value="true"/><EPR_Supported_As_Snk value="false"/><FR_Swap_Reqd_Type_C_Current_As_Initial_Source value="0">FRS Not Supported</FR_Swap_Reqd_Type_C_Current_As_Initial_Source><Num_Snk_PDOs value="1"/><SnkPdoList><SnkPDO><Snk_PDO_Supply_Type value="0">Fixed</Snk_PDO_Supply_Type><Snk_PDO_Op_Current value="300">3000 mA</Snk_PDO_Op_Current><Snk_PDO_Voltage value="100">5000 mV</Snk_PDO_Voltage></SnkPDO></SnkPdoList><Accepts_PR_Swap_As_Src value="true"/><Accepts_PR_Swap_As_Snk value="true"/><Requests_PR_Swap_As_Src value="true"/><Requests_PR_Swap_As_Snk value="false"/><FR_Swap_Supported_As_Initial_Sink value="false"/><XID_SOP value="0">0x0</XID_SOP><Data_Capable_As_USB_Host_SOP value="false"/><Data_Capable_As_USB_Device_SOP value="false"/><Product_Type_UFP_SOP value="0">PDUSB Peripheral</Product_Type_UFP_SOP><Product_Type_DFP_SOP value="0">PDUSB Host</Product_Type_DFP_SOP><DFP_VDO_Port_Number value="1"/><Modal_Operation_Supported_SOP value="false"/><USB_VID_SOP value="1105">0x451</USB_VID_SOP><PID_SOP value="0">0x0</PID_SOP><bcdDevice_SOP value="2321">0x911</bcdDevice_SOP><SVID_Fixed_SOP value="true"/><Num_SVIDs_Min_SOP value="0"/><Num_SVIDs_Max_SOP value="0"/><SOPSVIDList/><Product_Total_Source_Power_mW value="15000">15000 mW</Product_Total_Source_Power_mW><Port_Source_Power_Type value="0">Assured</Port_Source_Power_Type></Component></VIF>
    Hi Chris, Here is the schematics. I didn't found json file, but I downloaded the xml-file from the cloud-tool. I believe it will work as well.

    I have measeured the battery voltage that it doesn't start to rise and no current is flowing to the battery. Also I don't see any activity on BQ-chip. It seems that there is nothing going on on the chip. There is no voltage REGN pin which indicates that some configuration or something is wrong. I checked from the datasheet that REGN_LDO gets enabled when EN_HIZ is high and VBUS has correct voltage. Well there is 5V on VBUS, but I'm not sure about the EN_HIZ value because it is internal signal.

    I hoped that I wouldn't have to dig deep into the BQ registers, but Maybe I need to do that.

  • Hi Tomi,

    The XML will not work.

    With your desired config, use the Export -> Export Settings option to generate the json. The XML is used for a different purpose and does not contain the PD controller configuration.

    Thanks and Regards,

    Chris

  • Ah sorry. My web browser didn't do anything when I just pressed export (needed to restart the session). But here is the json-file (I needed to zip it because for some reason I couldn't upload .json file).

    config.zip

  • Hi Tomi,

    I did a quick look over the json and the schematic, and don't see any obvious issues there.

    If possible can you obtain an I2C trace of the PD to BQ I2C bus when you connect a type-C source device to the Type-C port on your design? We should expect to see some I2C writes to the BQ on connection of a type-C source that would configure the BQ device for charging.

    You said you see 5-V on VBUS, do you also see 5-V on PPHV?

    Thanks and Regards,

    Chris

  • Hi Chris,

    Well it good to hear that in principle my design should work. I need to double check that all the soldering is ok.

    I checked the I2C bus and I can see that TPS writes 0x6B(write and acknowledged), 0x12(acknowledged), 0x00. After the 0x00 bus halts for 0.8 ms and after that 0x00 command gets acknowledged.

    Then it writes (W = write, a = ack received)

    6BWa, 12a, 00a

    6BWa, 0Fa, 82a

    6BWa, 0Ba, 00a, EAa

    6BWa, 0Da, 17a

    6BWa, 05a, 24a

    6BWa, 06a, 00a, 0Aa

    (200ms delay)

    6BWa, 06a, 00a, F0a

    6BWa, 0Fa, A2a

    Yes there is 5.1V on PPHV.

    Hopefully these will help us to figure out the issue.

    // Tomi L

  • Hi,

    I recaptured the I2C bus data when USB-C was plugged in and this is what I got.

    6BWa, 0Fa, 82a

    6BWa, 0Fa, 82a

    (180ms delay)

    6BWa, 12a, 40a

    6BWa,  12a, 40a

    6BWa, 0Ba, 00a, DCa

    (50ms delay)

    6BWa, 12a, 00a

    6BWa, 12a, 00a

    6BWa, 0Fa, 82a

    6BWa, 0Ba, 00a, EAa

    6BWa, 0Da, 17a

    6BWa, 14a, 9Ca

    6BWa, 11a, 00a

    (650ms delay)

    6BWa, 12a, 00a

    6BWa, 12a. 00a

    6BWa, 0Fa, 82a

    6BWa, 0Ba, 00a, EAa

    6BWa, 0Da, 17a

    6BWa, 05a, 24a

    6BWa, 06a, 00a, 0Aa,

    (200ms delay)

    6BWa, 0Fa, A2a

    6BWa, 06a, 00a, F0a

    6BWa, 05a, 2Fa

    // Tomi L

  • Hi Tomi,

    I tested your configuration on the latest USB-PD-CHG-EVM (TIDA 050047), which uses a TPS25751 and a BQ25798, which is very similar to the 792. It does appear to be negotiating and sinking power correctly. The EVM does not support <8-V battery power so I did test it in a 2s configuration, but this should not change the I2C events.

    Here is a screenshot of the I2C log of the EVM on power up.

    You can see the last 6 writes match the first 6 you shared. Those writes look correct.

    The two additional writes seem strange. How are you powering the system? And is something connected on the type-C port on power up?

    I am testing with nothing on the type-C port and powering on a 4quadrant power supply at the battery terminals to simulate the power on sequence.

    These two writes seem related to a sink attach state (the port is attached as a sink). They might be fine if you are testing with a source attached on the sink port.

    6BWa, 06a, 00a, F0a

    6BWa, 0Fa, A2a


    Regarding sink connection, the writes look a bit different. It seems like there is a detach or reset occurring towards the middle, and then the port negotiates as a sink. The last three writes do seem consistent with a sink contract as they configure the BQ for sinking and set the input voltage and current limits.

    These look correct and I would expect the system to be able to sink current and charge after these I2C messages are sent. What is the behavior of the system at this point? VBUS, PPHV voltages? Charge current and Battery voltage?

    See the expected I2C writes below. In this test, the CHG-EVM was pre-powered, and a USB-C PD source was attached on the Type-C port. The most important writes are the last 3, which are similar to the last 3 you see. Input voltage, Input current, and enabling CHG mode.

    Can you test this sink only configuration and see if you still have issues sinking and charging?

    {
      "questionnaire": {
        "device": "TPS25751",
        "toolBuildVersion": "1.1.0",
        "answers": [
          null,
          0,
          0,
          0,
          1,
          0,
          3,
          0,
          1,
          1,
          1,
          0,
          0,
          0,
          4.1,
          1,
          0.4,
          0.4,
          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,
                2,
                46,
                1,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                1
              ]
            },
            {
              "register": 41,
              "data": [
                50,
                80,
                144,
                0
              ]
            },
            {
              "register": 50,
              "data": [
                1,
                170,
                42,
                44,
                145,
                1,
                32,
                44,
                209,
                2,
                0,
                44,
                177,
                4,
                0,
                244,
                65,
                6,
                0,
                244,
                177,
                4,
                224,
                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": [
                1,
                44,
                145,
                1,
                16,
                44,
                209,
                2,
                0,
                44,
                177,
                4,
                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
              ]
            },
            {
              "register": 55,
              "data": [
                59,
                192,
                18,
                65,
                100,
                144,
                33,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 66,
              "data": [
                26,
                0,
                8,
                0
              ]
            },
            {
              "register": 92,
              "data": [
                12,
                12,
                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": 120,
              "data": [
                0,
                0,
                0,
                128
              ]
            },
            {
              "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
              ]
            }
          ]
        }
      }
    }

    Thanks and Regards,

    Chris.

  • Hi Chris,

    I have attached single cell battery to system and I had current and voltage meter attached to see how current was flowing. USB-C power source what I have been using for batterybank for power source.

    I did get 5V to TPS LDO_3.3V which shouldn't happen, so I changed the board and tried again. I didn't try you configuration but I made new one where I changed the preferred power role to source from sink. Also I replaced the singlecell battery to powersupply which is able to sink and source (emulate battery) and now the system is charging battery correctly. So the sinking is working now.

    But sourcing part I have some issues. I have device that has USB-C power input and it has 5.1k resistors from CC to ground and my system doesn't start to source power to it. I monitored the VBUS signal with scope and you can see the behaviour on attached picture.

    The I monitored the TPS register 69 (type-C state register) and it showed following results (<reg_add>(len): LSB...MSB):


    0x69(4): 00 02 01 64
    0x69(4): 00 02 01 64
    0x69(4): 00 02 01 64
    0x69(4): 00 01 01 05
    0x69(4): 01 02 01 60
    0x69(4): 00 02 01 64
    0x69(4): 00 02 01 64
    0x69(4): 00 01 01 05
    0x69(4): 01 02 01 60

    VBUS voltage on source mode

    Then I disconnected USB-cable I get:


    0x69(4): 00 00 01 67
    0x69(4): 00 00 01 67
    0x69(4): 00 00 00 66
    0x69(4): 00 00 00 66
    0x69(4): 00 00 01 67

    Then I connected My phone to system (see VBUS behaviour on attached picture):

    0x69(4): 01 02 01 60
    0x69(4): 01 02 01 60
    0x69(4): 01 02 01 60
    0x69(4): 01 02 01 60
    0x69(4): 01 02 01 60
    0x69(4): 01 02 01 60

    VBUS voltage on source mode (Phone)

    Do you have suggestions why the source gets turned off after ~100ms?

    Here is the .json file (i couldnt' upload it for some reason):

    {
    "questionnaire": {
    "device": "TPS25751",
    "toolBuildVersion": "1.1.0",
    "answers": [
    null,
    0,
    0,
    0,
    0,
    0,
    3,
    0,
    1,
    1,
    1,
    0,
    0,
    0,
    4.1,
    1.5,
    0.2,
    0.2,
    0
    ],
    "vendorId": "0000",
    "productId": "0000",
    "version": "1.0.0.2"
    }
    }

  • Hi Tomi,

    Still reviewing this and aiming to get you feedback by the end of the week.

    Thanks and Regards,

    Chris

  • Thanks Chris for your time. I appreciate it.

    I did found out that in my pcb-component D+ and D- is crossed. I have configured the system so that I don't use data lines at all, but could this have anything to do with this behavior?

    // Tomi L

  • Hi Tomi,

    Are you planning on using BC1.2?

    This could potentially cause issues with the BC1.2 communication as the D+/D- lines have specific roles in the BC1.2 negotiation. It looks like it is disabled in your json, so you should be fine from the PD controller perspective.

    Now that you have sinking working, and just sourcing for Type-C failing, I don't think this is the issue.

    How are you planning on sourcing the 5-V? Do you expect it to come from PP5V, or from the BQ25792 through PPHV?

    Thanks and Regards,

    Chris

  • This is what I thought so. I'm not using the BC1.2 at the moment.

    Sourcing the 5V my initial thought has been that VSYS from BQ goes to step-up (TPS61235) converter which will create the +5V to TPS PP5V pins. So to answer your question I expect it go through PP5V. I didn't even thought the other option.

    // Tomi L

  • Hi Tomi,

    Can you try this json for 5V sourcing? Your original config attempts to swap to the PP3 path for 5V sourcing, which is likely why you see it for 5-V temporarily, then it fails. I changed the configuration to source 5V through PP5V, so it should be more stable now. This should be based off of the config you sent yesterday.

    {
      "questionnaire": {
        "device": "TPS25751",
        "toolBuildVersion": "1.1.0",
        "answers": [
          null,
          0,
          0,
          0,
          1,
          0,
          3,
          0,
          1,
          1,
          1,
          0,
          0,
          0,
          4.1,
          1,
          0.4,
          0.4,
          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": [
                2,
                2,
                46,
                1,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                1
              ]
            },
            {
              "register": 41,
              "data": [
                114,
                80,
                144,
                0
              ]
            },
            {
              "register": 50,
              "data": [
                1,
                168,
                42,
                44,
                145,
                1,
                32,
                44,
                209,
                2,
                0,
                44,
                177,
                4,
                0,
                244,
                65,
                6,
                0,
                244,
                177,
                4,
                224,
                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": [
                1,
                44,
                145,
                1,
                16,
                44,
                209,
                2,
                0,
                44,
                177,
                4,
                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
              ]
            },
            {
              "register": 55,
              "data": [
                59,
                192,
                18,
                65,
                100,
                144,
                33,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            },
            {
              "register": 66,
              "data": [
                26,
                0,
                8,
                0
              ]
            },
            {
              "register": 92,
              "data": [
                12,
                12,
                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": 120,
              "data": [
                0,
                0,
                0,
                128
              ]
            },
            {
              "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
              ]
            }
          ]
        }
      }
    }

    Thanks and Regards,

    Chris

  • Hi Chris,

    This solved the sourcing issue. Thank you very much for your help! 

    So the issue in my config was the bits 9-8 in register 0x32 I believe. Strange that configurator sets it to PP_EXT1 even though I did select the correct looking option.

    Configuration selection

    I did notice some other changes also, but I believe the above was the crucial one. 

    So the system now charges the battery and sources for current for load. How ever I did connect my phone to it and system started sink current from phone and I was hoping to use this to charge my phone. Do I need to change this setting with microcontroller by changing register values on the fly or is there still some other setting that I am missin?

    Thank you,

    // Tomi L

  • Hi Tomi,

    Glad I could help.

    So the system now charges the battery and sources for current for load. How ever I did connect my phone to it and system started sink current from phone and I was hoping to use this to charge my phone. Do I need to change this setting with microcontroller by changing register values on the fly or is there still some other setting that I am missin?

    The preferred power role question(Q4) determines the role that the port will try to end as. Because phones are DRP, and your preferred role is "Power Sink", the TPS25751 will attempt to become the sink through PR_SWAP (power role swap) requests.

    This bit being set does not guarantee that the port will end as sink, as some far-end devices will either reject or not support power role swaps. (i.e. if a USB PD sink only device is attached, the TPS25751 might still send the PR SWAP to sink, but the sink only device will reject the swap)

    If you want the port to prefer the source role, you can select the "Power source" option.

    This Question is primarily configuring the "Initiate Swap to ...." bitfields in the port control register. If you do not want to prefer a power role, there is not questionnaire option, but you can manually go into the "Advanced Mode" part of the GUI and de-select both.

    Never have both "Initiate swap to [power role]" settings selected as it can cause an infinite loop of power role swaps.

    Thanks and Regards,

    Chris

  • Hi Chris,

    Thank you for clarifying the behavior. I now understand how this should work. And Thanks again for your help. 

    Regards

    Tomi L 

  • Hi Tomi,

    Glad I could help. Closing this thread now. Feel free to re-open this thread if you have related questions, or open a new thread.

    Thanks and Regards,

    Chris