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.

TPS65987D: Current limit functionality And GPIO event mapping for BC1.2 questions

Part Number: TPS65987D
Other Parts Discussed in Thread: BQ24392

1)      If the TPS65987D detects a plug-in event (USB2, USB-C, etc.) – how does it handle the current limits on the port?

FYI – this is on a Powered device (UFP) – and the customer wants to charge a battery at >500mA. So, when their ‘Dock’ is plugged into a standard USB2 Type-A port (on the host) – does the TPS65987D limit the current on the PPHV1 line? If so, how? Clamp the current? Or terminates the power until the load stops pulling too much current? Or?

2)      I could not find a way for the TPS65987D to externally signal (i.e. on a GPIO port pin) that the Dock is plugged into a BC1.2 power source. Whether that’s a DCP or a CDP port.

What does it mean that a “Source PDO0 Contract has been negotiated”? I assume this means the DFP or Host (source) side has negotiated Type-C 'PD' power contract with an UFP… correct?  If so, then I also assume this does not apply to a USB2 Type-A port, on the host connection.

And what does it mean “Asserted high when data connection is DP” ?  DP = Display Port?

Might there be a way to use “Event 79 or 80” to one of the GPIO to indicate >500mA capability on the USB port? (See table 3-74 'GPIO Events' in the TPS65987D TRM)

Anything else you can think of to indicate a BC1.2 connection (or that the DFP can source >500mA)?

Thanks!

  • Hey Mark,

    1. Since the TPS65987D is the Sink/UFP in this example connected to a legacy charger, it will not be responsible for setting the current limit. If a legacy charger is connected, at the minimum it should be able to offer 5V/500mA which is a SDP USB2.0 device.

    2. If there is no GPIO event for a BC1.2 UFP event, then there is no way for the TPS65987D to notify an external device that a BC1.2 charger has been connected. Only option is to read the debug registers.

    "PDO" is a term used in USB Type-C PD denoting the power options that source or sink is capable of. "Source PDO0 Contract has been negotiated" indicates that the first power option has been negotiated.

    DP means display port. GPIO will go high when a displayport alternate mode has been entered.

    You could use that GPIO event if you only want to accept chargers that are capable of greater than 900mA. But not if a legacy device would trigger those events since a contract isn't being negotiated

  • I think I should stress that the point here is to ID if the Source/Host is or is not a BC1.2 capable source. If the port is only capable of 500mA (an SDP connection), it is of no use to the customer Dock. The current is too small.

    So the priority is to detect a BC1.2 (or TYPE-C) port in such a manner as to be a logic output to the customer board.

    The BQ24392 looks to be a good option (if the TPS65987D GPIO Event MUX fails (Event #79)).

    Secondly - lets be clear on terminology: Wall Wart is the HOST, DFP or SOURCE, not the CHARGER. I know we have it listed as such in our documentation, but to name it as such just confuses the conversation and is inaccurate. The "Charger" is in the Customer Unit that is actually charging the battery. The Wall Wart (HOST, DFP or SOURCE) has no such capability, never has and probably never will. 

    So, back to #1: Since the TPS65987D is the Sink/UFP in this example connected to a legacy USB Host, it will not be responsible for setting the current limit. If a legacy charger is connected, at the minimum it should be able to offer 5V/500mA which is a SDP USB2.0 device. This misses the point - the TPS65987D has current sensing and clamping/limiting capabilities... and since the UFP (DOCK) can't tell the unit being docked what it's connected to and it's power sourcing capabilities, then can we at least have the TPS65987D: A) current limit the port and/or B) signal via GPIO that the USB port is in an over-current state?

    Strictly speaking the HOST, DFP or SOURCE should already be doing this, but it does us no good if we don't know it in the DOCK/UFP.

    Clear as mud?