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.

  • Resolved

TPS65987D: Inconsistent PD Negotiation

Prodigy 50 points

Replies: 6

Views: 127

Part Number: TPS65987D

My application is setup as follows:

  1. BP_NoWait
  2. Configuration 3
  3. Dead Battery Mode and using a TPD6S300
  4. VBUS1 connects to USBC
  5. VBUS2 is grounded
  6. PP_HV1 is output
  7. PP_HV2 is grounded
  8. GPIO0 connected to GPIO1 then connected to ground via 1M Ohm
  9. PP_CABLE connected to VIN_3V3
  10. No external mux
  11. No external firmware
  12. CY4500 EZ-PD is connected to spy on negotiation
  13. USBC connected to external PD plugged into the wall

The DFP is advertising 4 levels: 

  • 5V/3A
  • 9V/3A
  • 15V/2A
  • 20V/1.5A

My assumption was the UFP would negotiated the highest power, which is 20V/1.5A.

If I unplug/plug the DFP many times, sometimes it will the UFP will choose 20V/1.5A, but 95% of the time it will choose 5V/3A.

I have tried manually grounding the input/output, 3V3, when un-powered, looking for some external state that might effect the behavior, but nothing changes the behavior.

I need to know:

  1. Is Config 3 supposed to choose the highest power?
  2. What external factors could affect how the UFP chooses one of the advertised levels?

  • Hi Michael,

    Yes, you should be able to negotiate the highest power using configuration 3. I recommend reconfirming that it does choose that configuration because even a slight change in the ADCIN1 values could alter which configuration mode is chosen. One way to do this, is to connect the PD controller to the GUI and check the "Transmit Sink Capabilities" register to see if the Sink PDO's are configured properly.

    I would also recommend tying VBUS1 and VBUS2 together instead of grounding VBUS2 as it states in the datasheet.

    You mentioned that you are using a PD analyzer, could you please attach your PD logs as well? 

    Thank you,


  • In reply to Hari Patel1:

    Will floating ADC2 cause problems with negotiation?

  • In reply to Michael Jones32:

    Hi Michael,

    Yes, floating the ADCIN2 pin could cause an issue with bootup which can lead to negotiation problems. I would suggest terminating the ADCIN2 pin through a resistor divider from LDO_3V3 to GND as recommended by the datasheet.

    Thank you,

  • In reply to Eric Beljaars:

    I tied ADCIN2 to ground. That also allowed me to get the python code with Aaardvark to work so I can see registers.

    I have two PDs that work, and a better feel for how negotiation works.

    What is interesting, is that my Anker PowerPort C1 that used to negotiate 5V or 20V intermittently (before ADCIN2 was grounded) now only does Hard_Reset (as seen in the EZ-PD Analyzer Utility). Whereas my Ankor Power Port Speed PD 30 is working very consistently, which did not work at all before shorting ADCIN2 to ground.

    When I look at the registers in the failing case, I don't see any advertised power offerings,which is what I expect if I don't see any traffic in the analyzer.

    Can you explain how the Hard_Reset works? In the analyzer, there is no PowerRole with this message, so I am not sure which end the reset comes from and what might be wrong. I assume that the DFP is turning on/off the top resistor on the CC lines or something, trying to detect the lower resistor in the UFP. Or perhaps all the analyzer can say is it sees the CC voltage come and go or something like that.

    In this design, there is a TPD6S300A in front of the PD and everything is setup for dead battery. I assume that if the other charger is able to work without a Hard_Reset, the dead battery support is working, and the TPS65987 is getting powered on fast enough.

    I'll note a few connections on the 65987 that concern me:

    - GPIO0 and GPIO1 are connected to a 1M Resistor to GND, because the Resistor it was connected to GPIO0 by mistake.

    - Other GPIOs are unconnected

    - PP_CABLE is connected to VIN_3V3

    Can you give some hints on how to debug the Hard_Reset?

    Note I bought a second charger to prove it is not broken, and it behaves the same.

  • In reply to Michael Jones32:

    I'll add a bit more. I figured out that the EZ-PD will let you connect an Rd, so you can connect the DFP and see what it does. With the two working chargers, I see advertisements. With the non-working one, nothing. Both of them.

    I have no idea how it ever worked last week, and no idea how a brand new one does not work, unless it died the first time it was connected to the TPS65987. I find that very hard to believe, as it works with the other two chargers. But I also find it hard to believe Anker is shipping bad units.

  • In reply to Michael Jones32:

    I think I solved the problem. The C1 spec says it is 5V @ 3A, with no indication it can offer alternatives. I think I simply thought I was using the C1 when I was using the C30. I had all the chargers plugged into a bench underneath, and probably just was not plugged into what I thought I was. I'm going to call this problem solved.

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.