I have a single TPS65981 unit that isn’t presenting Rp on CC2. This is preventing the USB Type-C port from working when a device is inserted in the flipped configuration in which Rd is detected on CC2. I’ve debugged the unit fairly exhaustively and believe I’ve isolated the problem to the TPS65981.
Relevant details of our application:
· DRP
· Rp configured to advertise standard USB current level (900mA)
Here are details of what I’m seeing:
On a good TPS65981 I see the following behavior when a cable is inserted in the unflipped orientation. I see the same behavior when the cable is inserted flipped except that CC1 and CC2 are swapped. This all matches my expectations, and the port works.
On a bad TPS65981 I see the following behavior when the port is inserted in the unflipped orientation. Note that the TPS65981 does not present Rp on CC2. CC2 is at 0V. In the unflipped orientation Rd is presented on CC1 so the connection is still properly detected. Note that the TPS65981 does apply Vconn to CC2. This proves that there is not a short on CC2. It also proves that the CC2 pin of the TPS65981 is connected to the PCB. Additionally, I never measure a short on CC2. The makes me believe that CC2 is at 0V because the TPS65981 is not applying Rd on CC2. In spite of these anomalies, the port works in this orientation.
On a bad TPS65981 I see the following behavior when the port is inserted in the flipped orientation. In this orientation the device should present Rd on CC2. However because CC2 is stuck at 0V, the TPS65981 never sees Rd and doesn’t know a device is attached. PC BMC communication never occurs on the CC2, Vconn is never applied to CC1, and Vbus is never applied. The port is non-functional because the TPS65981 mistakenly detects Ra on CC2.
Reading the Status and CCn State registers of the TPS65981 confirms Ra is being mistakenly read on CC2:
Have you seen this issue? Do you have any additional debug steps you could suggest to help get to root cause? For now I’ve not implemented potentially destructive tests (like swapping the TPS65981 between boards) because I wanted to keep the system intact. I’ve attached all of the scope captures and register values for both passing and failing cases in flipped and unflipped orientations.