cancel
Showing results for 
Search instead for 
Did you mean: 

Get source capabilities without software reset

CF
Associate

I am designing an application where the STUSB4500 must be able to negotiate successfully with a wide variety of USB-C PD sources. This involves a microcontroller which edits the PDOs of the STUSB4500 on the fly after reading the source capabilities. ST's example software recommends sending a software reset message to the STUSB4500 since the source will retransmit its capabilities during the re-negotiation that ensues, but this software reset triggers a hard reset with some USB-C PD sources, and so I'd prefer a solution that doesn't involve a software reset at all.

The USB-C PD specification defines a command GET_SOURCE_CAP, which can be sent in the same manner as the SOFT_RESET message except that the transmit buffer is written with 0x07 rather than 0x0D. However, this triggers a hard reset in all USB-C PD sources I've tested with, even those that handled the software reset just fine in ST's recommended method. Is there a reason why the STUSB4500 hard resets when this message is sent, and is there another way of getting the source capabilities without a software reset? Thank you.

1 ACCEPTED SOLUTION

Accepted Solutions
Benoit FORET
ST Employee

​Hello CF,

The behaviour you describe is correct.

But unfortunately, taking over the STUSB4500 internal state machine to send USB PD commands such as GET_SRC_CAP (or similar command) is not possible (only SOFT_RESET is OK).

Even though it is possible to access the PD_COMMAND_CTRL register, it is not possible to switch between IC self management (auto-run mechanism) and software management in the same application.

Rgds,

Benoit

View solution in original post

1 REPLY 1
Benoit FORET
ST Employee

​Hello CF,

The behaviour you describe is correct.

But unfortunately, taking over the STUSB4500 internal state machine to send USB PD commands such as GET_SRC_CAP (or similar command) is not possible (only SOFT_RESET is OK).

Even though it is possible to access the PD_COMMAND_CTRL register, it is not possible to switch between IC self management (auto-run mechanism) and software management in the same application.

Rgds,

Benoit