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: 4cc "DISC" command

Part Number: TPS65982

Hi Team,

My customer wants to make a virtual disconnected condition using 4cc "DISC" command on TPS65982, but it didn't seem to work at all. I did not understand why the DISC did not work properly in their procedures. Could you please check their experimental procedure? ·

Or are there any versions of FW that DISC does not work properly?

[What they want to do]
Make it disconnected once, and renegotiate 1 second later.

[Experimental procedure]
Using the TPS6598x Host Interface Tools, write the following values to TPS65982 in the following order.

1. Write 0x1 to 0x9. "set the timer to 1s"
2. Write 0x43534944 to 0x8. "Issuing DISC command"

[Result]
It was not disconnected. (The state does not change in anything.)
HRST could be executed by writing 0x54535248 to 0x8. So their byte order should be correct.

Regards,

Takashi Onawa

  • Hi Onawa-san,

    I believe your procedure looks correct. How do you know the DISC command did not execute properly? VBUS should go to 0V and then it will renegotiate. Can you measure VBUS and see if it drops to 0V after sending the DISC command?
    You can also use the TPS6598x Application Customization Tool as a reference when sending commands. In "Debug Mode" there is a commands tab that contains all of the available 4CC commands. You could send the command through the tool and monitor the I2C traffic to match it on the customer board.

    Thank you,
    Eric
  • Hi Eric-san,

    Today, I reproduced what my customer see on his bench.

    There are no tab for “DISC” 4cc command in the list on TPS6598x Application Customization Tool. So I tried to send “DISC”  command by using “Raw Register Write” tab.

     

    [Experimental procedure]

    Write 0x09 to 0x00 (Never re-connect)
    Write 0x08 to  0x43534944 (Issue “DISC” command)

    [Result]

    As you can see, 0x08 read back value was 0x00. This shows that the command I sent was valid(If I sent invalid command, we should see “!CMD” in this register). 0x09 value was also 0x00. So this indicates “Task completed successfully”.

    On Vbus and CC lines, I didn’t see any changes when I issued the command. I checked this with both the latest FW and EVM recovery FW but there were any differences on its behavior(Vbus and CC line voltage levels were stable and I didn’t see any change after issuing the command)

    Could you check if this command is really valid now or not?

    Regards,

    Takashi Onawa

  • Hi Onawa-san,

    I just looked into this command. It appears that it is no longer implemented in this manner. Directly calling the command as above will not execute a Disconnect anymore.
    Instead, to send a Disconnect command, you can rewrite the System Configuration (0x28) register and the Type-C port will disconnect and renegotiate. You can test this with an EVM using the Application Customization Tool in Debug Mode.

    Thank you,
    Eric
  • Hi Eric-san,

    I tried to re-write System Configuration register(0x28) in Debug mode using Raw Register Write. But I didn't see any changes on connection.
    Could you tell me the more detail how you emulated Port disconnect command using System Configuration (0x28) register ?

    Regards,
    Takashi Onawa
  • Hi Onawa-san,

    The Applicatoin Customization tool will not re write the registers unless something is changed in the configuration. To test the DISC function, I just changed something in the System Configuration Register that is unused. For example, I changed the OVP Trip Point from 24V to 23V to get the Application Customization Register to update the register. You could also just rewrite the same value into the register with an EC or and Aardvark and the TPS65982 will perform a DISC.

    Thank you,
    Eric
  • Hi Eric-san,

    OK, I will try it.

    Regards,
    Takashi Onawa