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.

TPS65987DDJ: SPEC CHECK

Part Number: TPS65987DDJ
Other Parts Discussed in Thread: TPS65987

Tool/software:

Hi 

Customers now expect to use the IIC interface of TPS65987 to determine the type of device connected and implement operations such as USB mode switching. Currently, the following issues need support from the manufacturer:

1. Does TPS6598x support reading the type of type-c device connected? (It is necessary to distinguish whether the device is connected to a computer, a USB device, a common charger, or a charger that supports the PD protocol)

2. TPS6598x uses the firmware of the historical project DA381QE. How to generate firmware that supports the above functions?

3. Which inheritors are needed to distinguish device types?

ps: The current progress is to use the IIC address 0x23, which can read the successor of TPS65987. Interrupts are generated when plugging and unplugging the charging head and the computer, but there is no way to distinguish whether it is a USB mouse or a computer.

Connect to PC 101 pwr_status=0x9 mode:

 Rechargeable successor 000 pwr_status=0xb mode: 2

Connect the mouse 101 pwr_status=0x9 mode: 2

Connect to a normal charger 000 pwr_status=0x3 mode: 0

The three numbers 101/000 in the table above are:

TPS_STATUS_PORTROLE TPS_STATUS_VCONN TPS_STATUS_DATAROLE

Printed using the following method:

dev_err(tps->dev, "TPS_STATUS_PORTROLE: %d\n", TPS_STATUS_PORTROLE(status));

dev_err(tps->dev, "TPS_STATUS_VCONN: %d\n", TPS_STATUS_VCONN(status));

dev_err(tps->dev, "TPS_STATUS_DATAROLE: %d\n", TPS_STATUS_DATAROLE(status));

  • Hi Gareth,

    1. Does TPS6598x support reading the type of type-c device connected? (It is necessary to distinguish whether the device is connected to a computer, a USB device, a common charger, or a charger that supports the PD protocol)

    The TPS6598x does not interact with USB enumeration or with USB data, and is not able to distinguish between different types of USB devices.

    It does have a status register (0x1A) that reports information including Data role, Power role, and if the connection is PD, Type-C Legacy, USB comms capable, and if an alternate mode has been negotiated.


    The TPS6598x does not have any additional information to determine the specific USB enumeration.

    2. TPS6598x uses the firmware of the historical project DA381QE. How to generate firmware that supports the above functions?

    I am not familiar with the DA381QE project. I don't think the TPS6598x can support all of the functions you are requesting. Register 0x1a is already there, you just need to have an I2C host/mcu read the register when it needs that information.

    3. Which inheritors are needed to distinguish device types?

    What do you mean by inheritors? As mentioned in 1. the PD controller does not interact with the USB enumeration on the USB2 lines, so does not have any information on the USB device type outside of some USB-C PD power and data role information.

    ps: The current progress is to use the IIC address 0x23, which can read the successor of TPS65987. Interrupts are generated when plugging and unplugging the charging head and the computer, but there is no way to distinguish whether it is a USB mouse or a computer

    The TPS6598x cannot distinguish between a mouse or a computer. Your USB endpoint should be able to.

    Thanks and Regards,

    Chris