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: USB-PD-CHG-EVM-01 - Samsung charger issue and detecting BV 1.2 DCP and CDP as a sink

Part Number: TPS25750
Other Parts Discussed in Thread: USB-PD-CHG-EVM-01, , BQ25792, TPS25730, BQ25792EVM

I have been working with the USB-PD-CHG-EVM-01 evaluation board containing the TPS25750 PD controller and the BQ25792 battery charger.   Using the TPS25750_Application_Customization_Tool v7.0.4, I have configured a power-sink only configuration and programmed the full binary file into the EEPROM of the evaluation board.

I have successfully connected a variety of USB chargers (i.e. power sources, both PD and non-PD) to the evaluation board, it has negotiated power as expected and commenced charging the attached 3S battery pack.  While the board has generally performed as expected, I do have a couple of issues. 

First, I have a Samsung EP-TA800 charger (PDO:5V@3A or 9V@2.77A; PPS3.3-5.9V@3A or 3.3-11V@2.25A ) that functions well with other sink devices, but when connected to the eval board is not recognized.  The TPS25750D’s 0x1A STATUS Register reports that “No plug is connected” (PlugPresent=0b) when this charger is connected.  Any thoughts on why this is the case?

Second, when various non-PD 5V@1.5A or more current chargers are connected to the eval board, the maximum power detected seems to always be SDP, 5V @ 500mA.  I have tried setting the ChargerDetectEnable field of the PORT_CONTROL register to “Detect BC 1.2 and proprietary legacy chargers” (bits 31:30=11b), but this seems to have no effect.   Is it possible for the TPS25750 as a sink to detect and handle higher power BC 1.2 modes (DCP and CDP) and higher current legacy?

  • First, I have a Samsung EP-TA800 charger (PDO:5V@3A or 9V@2.77A; PPS3.3-5.9V@3A or 3.3-11V@2.25A ) that functions well with other sink devices, but when connected to the eval board is not recognized.  The TPS25750D’s 0x1A STATUS Register reports that “No plug is connected” (PlugPresent=0b) when this charger is connected.  Any thoughts on why this is the case?

    I would need to see PD logs to further help this. But if PD STATUS register reports 'No plug is connected' I think there is an issue with this charger specifically.

    Second, when various non-PD 5V@1.5A or more current chargers are connected to the eval board, the maximum power detected seems to always be SDP, 5V @ 500mA.  I have tried setting the ChargerDetectEnable field of the PORT_CONTROL register to “Detect BC 1.2 and proprietary legacy chargers” (bits 31:30=11b), but this seems to have no effect.   Is it possible for the TPS25750 as a sink to detect and handle higher power BC 1.2 modes (DCP and CDP) and higher current legacy?

    Please refer to this thread and specifically the linked comment: https://e2e.ti.com/support/power-management-group/power-management---internal/f/power-management---internal-forum/1218919/tps25730-response-to-non-pd-sources/4610860#4610860

    The TPS25750 would have same limitation so we do not stop BC1.2 charging, but do not support it directly. Another device is required to drive the D+/D- connection.

    Thanks,

    Chris

  • Chris, thanks for the response.

    I do not have a way to log the PD transactions at the moment.  As I said this Samsung charger is functioning well with other sink devices.  If there is some level of negotiation going on within the TPS25750, are there perhaps some event or status registers that I could examine and might give a clue as to why the connection/negotiation might have failed in this case?

    This thread link you shared results in an error for me: “Page Not Found.  Unfortunately, the page you've requested no longer exists”.  Looking at the link details I see “internal-forum”.  Is it possible that I don’t have visibility to “internal-forum” posts?

    Thanks,
    Dave

  • David,

    Below is related to the TPS25730 which is also relevant for the TPS25750:

    The TPS25730 does not have GPIOs to control the D+ and D- USB 2.0 lines and therefore cannot communicate using BC1.2. However, the TPS25730S and TPS25730D do not limit current and therefore the TPS25730S can sink any current due to the external power path and the TPS25730D sink current is limited to 7 A due to the internal PPHV.

    As long as VBUS does not trigger UVLO, the TPS25730 will accept current when acting as a legacy sink. If you wanted to formally support BC1.2, you would need an external means to control the port partner's D+ and D- lines.

    To follow-up on your register question, no BC1.2 registers exist due to the lack of D+/D- GPIOs, and the legacy sink registers are limited to the ones in my previous reply.

    are there perhaps some event or status registers that I could examine and might give a clue as to why the connection/negotiation might have failed in this case?

    There are and we can debug that route! It may take some back-and-forth though so below are a few things to try:

    • Explicit PD logs may not be fully required! Can you use an oscilloscope to monitor the:
      • VBUS
      • CC1 or CC2 (depending on orientation)
      • VIN_3V3
      • LDO_3V3

    That may help detect a electrical issue

    • If the TPS25750 is capable of receiving and responding to I2C traffic then lets read-back the following registers:
      • Status (0x1A)
      • Power Path Status (0x26)
      • Port Control (0x29)
      • Boot Status (0x2D)
      • Power Status (0x3F)
      • PD Status (0x40)
      • TypeC State (0x69)
      • ADC Debug (0x6A)

    Lets start here and see what can be understood.

    Thanks,

    Chris

  • Chris,

    On the BC1.2 topic…
    I am a bit confused with respect to the controlling the D+ D- lines. The TPS25750 eval board does have GPIO pins connected to the D+ D- lines and which the TPS25750 datasheet states for these pins “GPIO4(USB_P) This may be connected to D+ for BC1.2 support.” and “GPIO5(USB_N) This may be connected to D- for BC1.2 support.” Further the ChargerDetectEnable control bits in the 0x29 PORT_CONTROL seem to imply the ability to detect BC 1.2 chargers.

    On the Samsung charger not recognized topic…
    Here are some register dumps with no charger connected, with a Pixel charger connected (which appears to be functioning as it should) and the Samsung changer which is not detected.

    These register dumps first include the “Byte Count” field returned on the I2C read (e.g. 0x05 for the 0x1A STATUS register read). Then the register bytes in order received in the I2C read, i.e. least significant byte first.

    If I am looking at these register dumps correctly, it looks like the TPS25750 registers for no charger connected and the Samsung charger connect are identical. The TPS25750 is doesn’t even see any sign the Samsung charger is present.

    I guess the next step here is to capture some of the signals you suggested on a scope. Any suggestion what I should look for with respect to early connection detection?

    Thanks,

    Dave

    No charger connected. TPS25750 power cycled.

    16:28:45.027 -> -----------------------------
    16:28:45.028 -> STATUS: readBytesTPS25750 reg 0x1a: 0x05 0x00 0x00 0x00 0x00 0x00
    16:28:45.028 -> POWER_PATH_STATUS: readBytesTPS25750 reg 0x26: 0x05 0x00 0x00 0x00 0x00 0x40
    16:28:45.028 -> PORT_CONTROL: readBytesTPS25750 reg 0x29: 0x04 0x32 0x50 0xc9 0x00
    16:28:45.061 -> BOOT_STATUS: readBytesTPS25750 reg 0x2d: 0x05 0x18 0x00 0xf0 0xa2 0xa1
    16:28:45.061 -> POWER_STATUS: readBytesTPS25750 reg 0x3f: 0x02 0x00 0x00
    16:28:45.061 -> PD_STATUS: readBytesTPS25750 reg 0x40: 0x04 0x10 0x00 0x00 0x00
    16:28:45.061 -> TYPEC_STATE: readBytesTPS25750 reg 0x69: 0x04 0x00 0x00 0x00 0x66
    16:28:45.061 -> ADC_DEBUG: readBytesTPS25750 reg 0x6a: 0x0d 0x00 0x00 0xea 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    16:28:45.098 -> -----------------------------

    Pixel GR4RC charger (5V@3.0A, 9.0V@2.0A)

    16:30:11.222 -> -----------------------------
    16:30:11.222 -> STATUS: readBytesTPS25750 reg 0x1a: 0x05 0x0d 0x00 0x60 0x00 0x00
    16:30:11.222 -> POWER_PATH_STATUS: readBytesTPS25750 reg 0x26: 0x05 0x00 0x30 0x00 0x00 0x40
    16:30:11.222 -> PORT_CONTROL: readBytesTPS25750 reg 0x29: 0x04 0x32 0x50 0xc9 0x00
    16:30:11.222 -> BOOT_STATUS: readBytesTPS25750 reg 0x2d: 0x05 0x18 0x00 0xf0 0xa2 0xa1
    16:30:11.255 -> POWER_STATUS: readBytesTPS25750 reg 0x3f: 0x02 0x0f 0x02
    16:30:11.255 -> PD_STATUS: readBytesTPS25750 reg 0x40: 0x04 0x1c 0x00 0x00 0x00
    16:30:11.255 -> TYPEC_STATE: readBytesTPS25750 reg 0x69: 0x04 0x01 0x05 0x00 0x61
    16:30:11.255 -> ADC_DEBUG: readBytesTPS25750 reg 0x6a: 0x0d 0x00 0x00 0xea 0x5b 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    16:30:11.255 -> -----------------------------


    Samsung EP-TA800 charger (PDO:5V@3A or 9V@2.77A; PPS3.3-5.9V@3A or 3.3-11V@2.25A )

    16:32:10.953 -> -----------------------------
    16:32:10.987 -> STATUS: readBytesTPS25750 reg 0x1a: 0x05 0x00 0x00 0x00 0x00 0x00
    16:32:10.987 -> POWER_PATH_STATUS: readBytesTPS25750 reg 0x26: 0x05 0x00 0x00 0x00 0x00 0x40
    16:32:10.987 -> PORT_CONTROL: readBytesTPS25750 reg 0x29: 0x04 0x32 0x50 0xc9 0x00
    16:32:10.987 -> BOOT_STATUS: readBytesTPS25750 reg 0x2d: 0x05 0x18 0x00 0xf0 0xa2 0xa1
    16:32:10.987 -> POWER_STATUS: readBytesTPS25750 reg 0x3f: 0x02 0x00 0x00
    16:32:11.019 -> PD_STATUS: readBytesTPS25750 reg 0x40: 0x04 0x10 0x00 0x00 0x00
    16:32:11.019 -> TYPEC_STATE: readBytesTPS25750 reg 0x69: 0x04 0x00 0x00 0x00 0x66
    16:32:11.019 -> ADC_DEBUG: readBytesTPS25750 reg 0x6a: 0x0d 0x00 0x00 0xea 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    16:32:11.019 -> -----------------------------

  • David,

    We support DCP detection, not the protocol. In BC1.2 connection the PD can leave the D+/D- pins as open-drain for another device to do BC1.2 protocol.

    As for the Samsung EP-TA800. I see the PD is setup the same and there is no glaring issue. I see Status register is not reporting any information which means the PD is not detecting any pull-up (Rp) or pull-down (Rd) on the CC1/2-lines.

    Rp/Rd is the basic way a Type-C device advertises it's capabilities as a Source/Sink and max current on initial connection. (This is separate from USB-PD). I do not see the EP-TA800 providing these values so our PD will not work. I would suggest further probing the CC lines to verify the analog voltage on the CC1/CC2 lines on connection with both chargers and note the difference.

    This may be a Samsung charger issue which is not advertising properly for some reason...

    Thanks,

    Chris

  • Chris,

    Thanks for the feedback. We acquired another Samsung charger model EP-TA800 and this second charger is recognized by the TPS25750 eval board. So, there may very well be an issue with the first Samsung charger, though why it functions fine with other USB sink devices is not clear.

    With regards to supporting the BC1.2 protocol…

    The BQ25792 battery charger seems to support the BC1.2 protocol just fine on its own. We have used the BQ25792EVM eval board with its standalone BQ25792 device successfully. However, within the USB-PD-CHG-EVM-01 evaluation board (containing the TPS25750 PD controller and the BQ25792 battery charger) the BQ25792 is not wired to D+/D-. The BQ25792’s D+/D- pins are left disconnected. Do you know why this is the case? Is the device pairing of the TPS25750 and BQ25792 unable to utilize the BQ25792’s BC1.2 protocol support?

    Thanks,
    Dave

  • David,

    I am out of office today. Give me a day to get back to you on this after discussing with team!

    Thanks,

    Chris

  • David,

    After talking with team we have a few suggestions:

    Change Port Control (0x29) from raw-hex value of: 0x043250c9 to 0xc43250c9 to enable Charger Detect Enable field.

    As for the D+/D-:

    Connect D+/D- to both TPS25750 and BQ25792 to allow for TPS25750 to negotiate the higher BC1.2 current and for the BQ25792 to detect the different configurations and set its charging scheme appropriately.

    Thanks,

    Chris