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.

TUSB422: How to transmit msg from TUSB422 to adapter?

Part Number: TUSB422


Does anyone have any experience for using the TUSB422?

When I connect TUSB422t to a USB-PD's adapter,  my MCU will receive the Source Cap msg from TSUB422.

I'm sure the TUSB422 don't send the GoodCRC msg automatically.

So I try to send a GoodCRC msg to the adapter manually.

I write the data to this four register.

 Transmit Register;

 Transmit Byte Count Register;

 Transmit Buffer Header Byte0 & Byte1;

But Alert Register feedback TX_SOP_DISCARD alert.

I can't find any information about how to use the transmit buffer from the TSUB422's data sheet.

 I try to ask for the demo SW from the TI website, but no any feedback. 

Does anyone know how to send the msg from TUSB422 to the adapter?

  • Hello Jian,

    I am sorry for the delay in my response but I had to do some research. The GoodCRC is being transmitted automatically unless you disable this function.

    The procedure you described seems to be in the wrong order. A proper SOP* MSG transmission must follow the steps below:

    1. Write the TRANSMIT BUFFER(0x51-0x6F): ( Count, Header0, Header1, Data Bytes..), where the count must include the 2 header bytes.

    2. Request the transmission by writing to the TRANSMIT_REGISTER (0x50).

    3. The outcome is an alert (INT pin asserted?), that may be:

    a. MessageSuccessful – If a  GoodCRC received?

    b. MessageFailed if no response after retries.

    c. MessageDiscarded if the transmission was discarded due to an incoming message

     

    The alert result you got must be the outcome of the case C previously described, It might also be a FAULT_STATUS.I2CInterfaceError if the transmit count register was < 3 when you wrote to the  TRANSMIT_REGISTER.

     

    Best regards,

    Diego.

  • Thanks, Diego.

    Do you know how to check the GoodCRC is being transmitted automatically or not?
    I can't find the register for GoodCRC function from the data sheet.

    If TUSB422 get a SOP* MSG from the source(e.g. adapter), is it feed back a GoodCRC MSG to the source automatically?

    I use a logic analyzer to analysis the protocol, I can find the SOP* MSG from source to TUSB422, but I can't find the GoodCRC MSG from TUSB422 to source.

  • Hello Jian,

        The TUSB422 transmits automatically the GoodCRC, unless you deactivate this function, it is required by the TPCP specification. So Yes it does, The TUSB422 will transmit a GoodCRC after receiving a valid SOP* message. After the SOP* MSG has been transmitted please check in the Receiver Detect Register  and the Receive Byte Count Register. If these registers are cleared, then see the content in  RX_SOP_STATUS for a change in the receive buffer register, or the PHY BMC RX Status Register. The automatic transmission of the GoodCRC is disabled by the RX_CRC_DISABLE control bit in the PHY BMC RX Test Control Register.



    Regards,

    Diego.

  • Thanks, Diego.

    I'm sorry I can't find the PHY BMC RX Test Control Register. There are only PHY BMC RX Control Register(0x96), and PHY BMC RX Status Register(0x97).

    When TUSB422 receive the SOP* MSG from the adapter, the PHY BMC RX Status Register is 0x0F.

    My logic analyzer which is monitor the CC logic line get the SOP MSG from the adapter, but does not get the GoodCRC MSG from the TUSB422.

    So my adapter send the SOP MSG many times, then close the communication.

    It seems TUSB422 does not transmits automatically the GoodCRC.

    May I ask for a demo software to show how to use TUSB422?

    My MCU is Atmel ATmega328P.

  • Hello Jian,

        I can share the demo software but is for MSP430, you can use it as a reference for your design. Please send me an email to diego.cortes@ti.com. Also let me know the status of the USB Type-C Revision Byte 0 Register (0x06).


    Regards,

    Diego.

  • Thanks, Diego:

        My USB Type-C Revision Byte 0 Register (0x06) is 0x11.

        I send a email to you. 

        Thank you for sharing the demo software for my design.