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: Unable to charge battery using non-PD adapters

Part Number: TPS25750
Other Parts Discussed in Thread: BQ25731, , , BQ25713

Hi,

Our USB-PD setup is almost a copy of the TPS25750EVM, it’s just that we replaced the charger on the circuit from BQ25731 to B25713. 

We're getting some strange behavior from our PD circuit. It's fine to use any PD adapter, through our circuit can charge batteries up to 40 watts (I configured it by TPS25750 Application Customization Tool). 

The problem occurrs when we try to use a non-PD charger and connect our board with a USB Type-A to Type-C cable, it seems only about 200mA of current is drawn in this condition. After this, even if I reconnect back to the PD charger, our board will only draw a maximum of 200mA, too. I think that normal PD circuits should not be like this whether using PD or non-PD chargers.

Since I don't know where to start in this situation, I'll first describe to you what I saw. If you need any information, I will be happy to provide it.

Thanks.

Dave

  • Hello Dave,

    Can you send me the .JSON file for this project?

    The problem occurrs when we try to use a non-PD charger and connect our board with a USB Type-A to Type-C cable, it seems only about 200mA of current is drawn in this condition. After this, even if I reconnect back to the PD charger, our board will only draw a maximum of 200mA, too. I think that normal PD circuits should not be like this whether using PD or non-PD chargers.

    If you start with the PD Charger ( Type-C to Type-C) does the board draw the correct current?

    Can you provide the PD logs when you switch from the USB Type-A to Type-C cable to the Type-C to Type-C cable.

    Can you provide your schematic, my email is c-moyer@ti.com

    Best Regards,

    Christian.

  • Hi Christian,

    I posted our settings of APP Customization Tool in JSON format below.

    {"questionnaire":{"version":"7.0.4.7","answers":[0,4,4,1,1,3,0,"2CC2",0,"002E",1,19.2,1.984,null,null],"options":{},"configID":"002E","vendorID":"2CC2"}}

    Thanks.

    Regards,

    Dave

  • Hi Christian,

    If you start with the PD Charger ( Type-C to Type-C) does the board draw the correct current?

    Yes. Our board can draw the correct current with the PD Charger. The measured value of drawn current is close to the battery charging current set in the Application Customization Tool.

    Can you provide the PD logs when you switch from the USB Type-A to Type-C cable to the Type-C to Type-C cable.

    What kind of PD log do you need me to provide?

    Can you provide your schematic

    Sure. I paste a schematic screenshot of only the PD part below. I will also send the complete file by e-mail.

    Thanks.

    Best regards,

    Dave

  • Hello Dave,

    Can you try this .Json file and see if this resolves the issue? 

    Newproject.zip

    Best Regards,

    Christian.

  • Dear Christian,

    Unfortunately, using the patch bundle generated in the APP Customization Tool with the settings you provided, the same issue still exists.

    Could you please share what settings are made for the .JSON file you provided with us? What do you think about our issue?

    Thanks.

    Best regard,

    Dave

  • Hello Dave,

    I changed register 0x29, I suspected this behavior was due to the Legacy charger detection.

    I need more information to debug this behavior. Can you provide the I2C communication logs and PD logs for each state( working USB-C, USB-A, and not working USB-C).

    The best way to capture I2C logs is through Saleae.

    The best way to capture PD logs is though Total Phase data center using USB PD analyzer.

    Best Regards,

    Christian.

  • Hi Christian,

    OK, we got it. We will find PD analyzer and logic analyzer to capture the logs and provide them to you as soon as possible.

    Thanks.

    Best regards,

    Dave

  • Dear Christian,

    What kind of I2C communication log do you need? I2Cm or I2Cs? We do not make any additional settings for TPS25750 through I2C, but we have a way to obtain the communication of TPS25750 to BQ charger through I2Cm.

    We tried to get Total Phase's PD analyzer but unfortunately this product has been EOL. We tried to use other product with similar functions (Cypress CY4500) to capture the PD log of our board connected to the BC1.2 charger. As shown in the picture below, we got 3 HARD_RESET SOPs after connecting to the BC1.2 charger.

    In addition, we want to mention that after connecting to the BC1.2 charger, we tried to use the I2Cr command of TPS25750 to read the value from some registers of BQ25713, but it was no longer possible to read it. Unless we restart the TPS25750 (through the 4CC command 'GAID'), we can use I2Cr / I2Cw to read and write BQ25713 again. We assume whether the BC1.2 charger caused the BQ25713 hanging.

    Anyway, we hope this information helps you diagnose our issue. If you need anything else, please feel free to tell us.

    Best regards,

    Dave

  • Hello Dave,

    TPS25750 through I2C, but we have a way to obtain the communication of TPS25750 to BQ charger through I2Cm.

    Yes, can you provide these I2C logs for each state( working USB-C, USB-A, and not working USB-C).

    Best Regards,

    Christian.

  • Hi Christian,

    Sure. But we are still trying to obtain a Saleae logic analyzer, we first share the I2C log that does not include timing. If necessary, once we have a Saleae, we will put the I2C log obtained with it.

    The screenshot below shows the log of initialization for the BQ25713 charger, and each state after we completed the TPS25750 patch bundle process.

    Because after we did the USB-A part, we didn't see any acknowledgement through the I2C bus from BQ25713. We couldn't get the log for the "not working USB-C" part.

    Thanks.

    Best regards,

    Dave

  • Hi Christian,

    We would like to mention another discovery. We have confirmed that the USB_P and USB_N pins are correctly connected to the GPIO4 and GPIO5 of the TPS25750 respectively. When we connected the BC1.2 adapter to our board, we did not see any detection signals on the scope. 

    No matter what kind of charger we plug in (CDP, DCP), when we read the 0x3F register of TPS25750, we always get the result of detection as SDP.

    We don't know if this finding is related to the not working with BQ charger we mentioned. Not sure if this is normal? Or could this also be a serious problem?

    Thanks.

    Best regards,

    Dave

  • Hello Dave, 

    Thank you for this information. Can you confirm this is the correct charge voltage/current in the project file you have configured. After reviewing the I2C logs, there seems to be an issue writing to the BQ device.

    Best Regards,

    Christian.

  • Hello Dave,

    When you plug in the USB-A to USB-C cable can you measure VBUS and PPHV?

    In addition, we want to mention that after connecting to the BC1.2 charger, we tried to use the I2Cr command of TPS25750 to read the value from some registers of BQ25713,

    Can you read the register values of the BQ25713 device when USB-C is plugged in and the device is in the working condition.

    Best Regards,

    Christian.

  • Hi Christian,

    Can you confirm this is the correct charge voltage/current in the project file you have configured.

    Yes. But are the battery charging voltage and battery charging current the values in registers ChargeVoltage Register (05/04h) and ChargeCurrent Register (03/02h) of BQ25713 respectively?

    We might know that TPS25750 will fully manage the BQ25731 based on the only two settings and we filled in the corresponding values ​​based on our needs. We would like to know what settings will cause this kind of issues?

    Thanks.

    Best regards,

    Dave

  • Hello Dave,

    I used the same project file that you sent me and my I2C writes are different.

    the values in registers ChargeVoltage Register (05/04h) and ChargeCurrent Register (03/02h) of BQ25713

    I looked up the values that your device writes to the BQ device and it is different then what is expected.

    This is what your device writes to the BQ device

    This is what is expected.

    Will you flash your board with this configuration, and recapture the I2C logs.

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/196/TPS25750-_2800_2_2900_.bin

    Best Regards,

    Christian

  • Hi Christian,

    recaptured the I2C logs as below.

    TPS25750 (2).bin

    We configure TPS25750 using the binary file you provided, although our board cannot be charged, BQ25713 no longer hangs after connected to the BC1.2 adapter.

    I wonder if you can share the configuration of this binary file?

    Thanks.

    Dave

  • Hello Dave,

    Thank you for this information.

    We configure TPS25750 using the binary file you provided, although our board cannot be charged, BQ25713 no longer hangs after connected to the BC1.2 adapter.

    I assume when you say it cannot charge you are using USB-A- USB-C is this correct. Can your board charge using USB-C to USB-C?

    If this is correct, can you try this file to see if this resolves the issue.

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/196/TPS25750_2800_NEW_29002900_.bin

    I wonder if you can share the configuration of this binary file?

    Yes, Here is the .JSON. In the GUI when you select the battery charger component/ configuration. The GUI's automatically set vaules in certain registers, If you change what is already selected in question 1 and 9, the GUI will change what I changed in the register. I recommend not changing these too question( If you select a different BQ device then select TPS25713, the GUI will still change my configuration). You should be able to change questions 2-8,10 and 11 with no problems

    {"questionnaire":{"version":"7.0.4.7","answers":[0,4,4,1,1,3,0,"2CC2",0,"002E",1,19.2,1.984,null,null],"options":{},"configID":"002E","vendorID":"2CC2"},"configuration":{"data":{"selected_ace":[{"register":6,"data":[0,0,0,0,0,0,0,0]},{"register":22,"data":[10,48,48,77,0,0,0,0,0,0,3]},{"register":23,"data":[8,4,0,2,0,0,0,0,0,0,0]},{"register":31,"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]},{"register":32,"data":[0,0]},{"register":35,"data":[0,224,1,0]},{"register":39,"data":[5,9,20,0,28,7,0,0,80,81]},{"register":40,"data":[2,8,47,0]},{"register":41,"data":[114,80,201,68]},{"register":43,"data":[0,2,0,0,1,0,0,0]},{"register":50,"data":[4,168,42,44,145,1,38,44,209,2,0,44,177,4,0,244,65,6,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"register":51,"data":[4,44,145,1,16,44,209,2,0,44,177,4,0,244,65,6,0,69,65,6,0,0,0,0,0,0,0,0,0]},{"register":55,"data":[59,64,31,100,144,145,1,0,0,0,0,0,0,0,0,0]},{"register":66,"data":[10,0,0]},{"register":67,"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]},{"register":71,"data":[6,194,44,64,149,81,4,0,0,5,9,46,0,0,0,0,104,0,0,0,0,0,0,0,71]},{"register":74,"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,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":75,"data":[0,0,0,0]},{"register":81,"data":[0,6,0,0,0,0]},{"register":82,"data":[0,128,0,0,0,0,0]},{"register":86,"data":[63,128]},{"register":92,"data":[48,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,48,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"register":93,"data":[0,0,0,0]},{"register":98,"data":[0,0,1,24,0,0,0,0]},{"register":100,"data":[107,0,0,0,0,0,0,0,0,0,0]},{"register":108,"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,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":111,"data":[0,0,0,0,0]},{"register":112,"data":[0]},{"register":115,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"register":117,"data":[0,0,0,0]},{"register":119,"data":[0,0,0,0,0,0,0,0,0,0,0,0,0,127]},{"register":121,"data":[0,0,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]}],"bin_table":[{"rights":0,"register":0,"data":[],"offset":0},{"rights":0,"register":1,"data":[35,3,0,0,14,130],"offset":0},{"rights":0,"register":2,"data":[35,3,0,50,55,2],"offset":0},{"rights":0,"register":3,"data":[35,3,0,4,0,75],"offset":0},{"rights":0,"register":4,"data":[35,3,0,2,192,7],"offset":0},{"rights":0,"register":5,"data":[35,3,0,52,48,16],"offset":0},{"rights":0,"register":6,"data":[1,3,0,4,0,75],"offset":0},{"rights":0,"register":7,"data":[1,3,0,2,192,7],"offset":0},{"rights":0,"register":8,"data":[2,3,0,4,0,75],"offset":0},{"rights":0,"register":9,"data":[2,3,0,2,192,7],"offset":0},{"rights":0,"register":10,"data":[60,3,0,4,0,75],"offset":0},{"rights":0,"register":11,"data":[60,3,0,2,192,7],"offset":0},{"rights":0,"register":12,"data":[39,3,0,6,212,14],"offset":0},{"rights":0,"register":13,"data":[39,2,0,9,64],"offset":0},{"rights":0,"register":14,"data":[40,3,0,6,92,26],"offset":0},{"rights":0,"register":15,"data":[40,2,0,9,64],"offset":0},{"rights":0,"register":16,"data":[41,3,0,6,244,35],"offset":0},{"rights":0,"register":17,"data":[41,2,0,9,64],"offset":0},{"rights":0,"register":18,"data":[37,3,0,0,14,130],"offset":0},{"rights":0,"register":19,"data":[37,3,0,50,55,2],"offset":0},{"rights":0,"register":20,"data":[37,3,0,4,0,75],"offset":0},{"rights":0,"register":21,"data":[37,3,0,2,192,7],"offset":0},{"rights":0,"register":22,"data":[37,3,0,52,48,16],"offset":0},{"rights":0,"register":23,"data":[39,2,0,13,75],"offset":0},{"rights":0,"register":24,"data":[39,3,0,11,2,108],"offset":0},{"rights":0,"register":25,"data":[39,2,0,18,64],"offset":0},{"rights":0,"register":26,"data":[40,2,0,20,24],"offset":0},{"rights":0,"register":27,"data":[40,2,0,13,75],"offset":0},{"rights":0,"register":28,"data":[40,3,0,11,4,196],"offset":0},{"rights":0,"register":29,"data":[40,2,0,18,64],"offset":0},{"rights":0,"register":30,"data":[41,2,0,20,24],"offset":0},{"rights":0,"register":31,"data":[41,2,0,13,75],"offset":0},{"rights":0,"register":32,"data":[41,3,0,11,6,184],"offset":0},{"rights":0,"register":33,"data":[41,2,0,18,4],"offset":0},{"rights":0,"register":34,"data":[37,3,0,1,4,236],"offset":0},{"rights":0,"register":35,"data":[37,2,0,16,128],"offset":0},{"rights":0,"register":36,"data":[37,3,0,3,0],"offset":0},{"rights":0,"register":37,"data":[37,2,0,20,212,14],"offset":0},{"rights":0,"register":38,"data":[37,2,0,17,0],"offset":0},{"rights":0,"register":39,"data":[37,2,0,8,195],"offset":0},{"rights":0,"register":40,"data":[37,2,0,9,0],"offset":0},{"rights":0,"register":41,"data":[null,null,null,null,88,26],"offset":0},{"rights":0,"register":42,"data":[],"offset":0},{"rights":0,"register":43,"data":[],"offset":0},{"rights":0,"register":44,"data":[null,null,null,null,50],"offset":0},{"rights":0,"register":45,"data":[null,null,null,null,244,35],"offset":0},{"rights":0,"register":46,"data":[],"offset":0},{"rights":0,"register":47,"data":[],"offset":0},{"rights":0,"register":48,"data":[],"offset":0},{"rights":0,"register":49,"data":[],"offset":0}]}}}

    Best Regards,

    Christian.

  • Hi Christian,

    May I ask what is the function of this register "98" (0x62)? I can't find its instructions in the TPS25750 Host Interface Technical
    Reference Manual.

    Thanks.

    Best regards,

    Dave

  • Hello Dave,

    Register 0x62 is for internal uses and is not needed for customer use cases.

    Best Regards,

    Christian.