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.

TPS65982: Can I read the SVIDs Response after connection?

Expert 1015 points
Part Number: TPS65982

I load an image on my board with the TPS65982 and then make a connection to a TI-EVM set to switch = 5, 10, or 11. These all have different combinations of the DP and TBlt alt modes. If I set it to 5 and make a connection and probe the CC line and decode the traffic I can see the 'Discover SVID response ACK' message that says that the TI-EVM has SVID = FF01 (DPort) and SVID = 8087 (Intel/TBlt). I would like to be able to read that information out of the registers in the TPS65982 on my board to tell what SVIDs were possible on the TI-EVM or device to which I am connected. If the TI-EVM switch = 10, I only see the 8087 and switch = 11, I see the 0xFF01. Is there a way to read the SVID information from the TPS65982 registers? I only see the one that is active when I read the DataStatus register. I did find out that if I send a 'GCdm' message with the 0x8087 or the 0xFF01 that I will receive a mode = 0x1 back (according to the HI-Utility) when that mode is present on the TI-EVM. Is this the correct way to get this information or is there a better way? The I2C traffic has a bit more information than is present in the HI-Utility GUI, but I just want to know if that Alt Mode is present in my connection, in this case the TI-EVM.

Thanks,

WST

  • Hi ,

    I would recommend using the 'VDMs' command. An example to Discover SVIDs would be using NumDOs = 0x01, SOP Type = SOP, PD SID = 0xFF00, Structured VDM, and send the code 0x02 in VDO#1 for Discover SVID. You can send other commands types which are listed in USB PD Specs (look for Structured VDM Header - Commands). Once the VDMs command is sent, you can read what is sent back with register 0x4F RX Non-Attn VDM. This will return the Discover SVID acknowledgements.

    Regards,

    Jaime
  • I have been trying this command with my board connected to both a TI-EVM board and a Dell laptop with a USB-C connector. I matched the fields to what you have above. When I decode the CC traffic I only see a Discover SVIDs Request go out and no response from the Device, but the 0x4F register gets updated. It doesn't look like I ever get both 0xFF01 and 0x8087 in the response, no matter if the Device has them both available. Does the VDMs command only read the information from the point of view of my board (where the Aardvark/HI Utitlity is connected)? I would like to know the Alt modes available from the device connected to the other end of the cable.
    Thanks,
    WST
  • I have been working on this and have found that the VDMs command with code = 0x02 (discover SVID) only gets a response on the CC line when my board is the DFP in the connection. Otherwise I get no response from the DFP if my board is the UFP and the command is sent. In that case, it looks like the 0x4F register holds the information from when the PD contract was first made. It doesn't update with the VDMs command. If my board is the DFP, then I get a response. Also, it seems like I have to be the DFP in order to get all of the SVIDs of the connected UFP. After I issue the VDMs command, then I can read register 0x4f and see the VDMs, starting with 0xFF008042 for VDM1.
    If I connect as a UFP (I tried this with the TI-EVM board set to sw = 5 and also to a Dell laptop), then the VDMs message doesn't get acknowledged and the information in 0x4F reflects the SVID of whatever connection is currently enabled. For instance, if I have DPort enabled and TBlt disabled in the configuration registers, then I will see an 0xFF01 for VDM1, if TBlt is enabled, then I see 0x8087.... for VDM1. I never see both when my board is the UFP.
    This should work if I want to check the Alt modes of the connected device, but I wanted to make sure this is what you meant when you suggested using the VDMs command.
  • Yes, that behavior is correct. According to the PD 2.0 specs only the DFP canbe an initiator of VDMs (except for the Attention Command that can only be initiated by the UFP). Similarly, only the UFP or a Cable Plug can respond to the VDMs.