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.

TPS65981: PD negotiation loop with Google Pixel

Part Number: TPS65981

I'm working on a design which is a UFP. When it is connected to a Samsung Galaxy S9 smart phone, I see the TPS65981 negotiate for the phone to be the power source based on my Sink PDO, as expected:

I get the Source_Capabilities, Request, Accept, and PS_RDY, all with GoodCRC.

However, when I connect the same board to a Google Pixel 3 phone, I get into a strange loop:

The phone sends out the Source_Capabilities message, then the TPS65981 responds with a GoodCRC, followed by a Request, followed by what appears to be a spurious GoodCRC? The phone never issues a GoodCRC, but it does attempt to send an Accept message, which is never acknowledged by the TPS65981. Since the Accept doesn't get a GoodCRC response, the phone starts generating Source_Capabilities messages and the whole process repeats for potentially thousands of messages. The fifth column is the message id; it keeps cycling between 0 and 1.

Eventually, somebody triggers a hard reset of the interface. I'm not sure if it's the phone or the TPS65981. After that, the negotiation works as expected:

It can take up to a minute for the phone to successfully establish a connection. Any ideas on what could be causing this?

I'm using version 4.01 of the Application Customization Tool.