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.

TPS65987D: Strange behavior of "Port 0 UFP DFP event"

Part Number: TPS65987D
Other Parts Discussed in Thread: TPS65987

Hi all,

We are replacing the TPS65986 via TPS65987 in our product.

The board with old TPS65986 working fine in DRP. New state based on TPS65987 working fine as DFP but does not working as UFP. With same state of host CPU module. I found following difference:

  • In old state with TPS65986 the GPIO used as OTG is high when is nothing connected on USB-C or when the Port is activated as UFP. In DFP the GPIO is low
  • In new state the GPIO is low when nothing connected on USB-C or when it works as DFP. Only when port ist UFP it goes high

But corresponding datasheet (s. attached screenshot) it should work like it was in old state.

Could you please say, what am I doing wrong? I attached the project file for TPS65987

Thanks a lot,

Sergey

p5-usbc-config-tps65987.pjt

  • Hi Sergey,

    Sorry to not getting back to you sooner.

    It looks like a register setting issue, but I need to confirm first with an EVM.

    I'm waiting for my EVM and as soon as I have and verified it I will update you.

    Regards,

    Peter

  • Hi Sergey,

    I modified your project file a bit on the following:

    • Port control instead of setting all the configurations, it looks like your device is just a source from PP1 so I remove the sink part. You can't set to initiate both source and sink together.
    • Same with the DFP and UFP, I remove the initiate path for both to just process for both.
    • On GPIO13 where the UFP/DFP event occurs I have checked on my EVM and it is correct and working.
    • I don't see GPIOs used to control DC DC switch to generate the different voltage level in your project file. What do you have on PPHV1 and 2? Is it just 5V on PPHV? You can refer to the TPS65987EVM user guide for the board schematic and see how the voltage is generated. https://www.ti.com/tool/TPS65987EVM

    Please try the attached pjt file and let me know,

    Regards,

    Peterp5-usbc-config-tps65987_mod.pjt

  • Hi Peter,

    Thanks a lot for trying. I think it will be easy when you see a part of our schematic. S. attached. We have ApolloLake SOC as host part

    You a right, we are using only source from PP1 part and we have only 5V for supplying. For better understanding of our application: a) device should work with USB-Stick, b) device shows some GUI on external monitor, c) we can connect two devices together via USB-C cable for interconnection. And all these working fine with old TPS65986

    Alternate and DFP working also fine with TPS65987.

    I generated the bin file from yours pjt and with it I have still low on GPIO13 when is nothing connected on USB-C. I have the USB-A -> USB-C cable. USB-A I plugged into PC and when I plug into device the USB-C cable then I get the high on GPIO13 as expected. But why the GPIO13 is low when nothing connected on USB-C? This is the point. I tried with another our board. It working in same way. I don't have the EVK under hand.

    I hope you have an idea when now have more information,

    Thanks,

    Sergey

  • Hi Sergey,

    The UFP/DFP GPIO is an event based on what's connected. Since nothing is connected the CC lines are just toggling high and low and could not decide UFP/DFP.

    So you should have a DFP or UFP connected to check that event.

    You mentioned you see GPIO13 goes high when connected to PC which indicates a UFP connection and working as expected, can you confirmed the PD trace that indeed the device is an UFP and then goes low when a DFP is connected?

    Regards,

    Peter

  • Hi Peter,

    GPIO13 is "Port 0 UFP DFP Event". Corresponding to the datasheet it is (s. screenshot from my first message in this thread):

    • "Port 0 UFP DFP Event -> Asserted high when data role is UFP or no connection at Type-C port.• Asserted low when data role is DFP"

    But I see that the GPIO13 is LOW when nothing connected at Type-C port. And this is the difference with the old state with TPS65986. In our old state with TPS65986 the Event-Pin is high when nothing connected and goes low when DFP role recognized.

    The question is what we are doing wrong that the TPS65987 drives the LOW when nothing connected? It contradicts to the datasheed. And I think this is why our device does not running in USB device mode. GPIO13 is connected with USB OTG pin of SOC module

    Regard,

    Sergey

  • Hi Sergey,

    Which version of Host Interface TRM that shows UFP Event goes high when no connection at the port?

    I see the version in the web only assert high in UFP - see below.

    Regards,

    Peter

  • Hi Peter,

    I used the slvae11.pdf "TPS65987DGPIOEvents". It looks to be the actual version. 

    Regards,

    Sergey

  • PS. Screenshot was not inserted. S. below:

  • Hi Sergey,

    Peter is currently out on holiday and will get back to you when he returns. Thank you for your patience.

    Thanks,

    Emma

  • Hi Emma,

    Thank you for information. I hope we will find in 2021 what am I doing wrong (mean why the chip working not as expected)

    Merry Christmas!

    Sergey

  • Hi Peter,

    I tried something and found one more strange thing: TPS65987 does not generate the "Port 0 VBUS Detect Event" that I mapped to GPIO14

    I tried shortly the old board with the TPS65986 and event generated so as expected (as defined in slva838.pdf for it). I deactivated the "VBUS Detect Event" in TPS65986 and then the old board also does not work in USB device mode.

    We have the problems with these two GPIO events. The ApolloLake SOC has OTG and VBusDetect pins that we connected with TPS6598x GPIO-Events. With TPS65986 all working fine, but with TPS65987 is something wrong. I attach the project file for old state, hope it helps you

    Have a good Year!

    Regards,

    Sergey

    p5-usbc-config-tps65986.pjt

  • Hi Sergey,

    I'm checking with the FW team on what's actually implemented and get back to you on the DFP/UFP event.

    It's likely that the FW is implemented according to the TRM which is only for UFP and not in "No connection" case.

    Now on the VBUS Detect Event, this is also not in the TRM so it's likely not implemented.

    Regards,

    Peter

  • Hi Sergey,

    I'm checking with the FW team on what's actually implemented and get back to you on the DFP/UFP event.

    It's likely that the FW is implemented according to the TRM which is only for UFP and not in "No connection" case.

    Now on the VBUS Detect Event, this is also not in the TRM so it's likely not implemented.

    Regards,

    Peter

  • Hi Peter,

    Ok, thanks. One more thing about DFP/UFP event: when I connect the USB cable connected on other side with USB-Hub, then my GPIO14 (UFP/DFP Event on Port0) goes high but always has 3 low spikes (s. attached). I guess this is not ok. Probably you can find the reason, when checking the firmware.

    Regards,

    Sergey

  • Hi Sergey,

    I got confirmation that the FW is implemented per the TRM so drives high only for UFP.

    The 3 low spikes are likely to be caused by hard reset because the USB hub is a non-PD, the FW tries 3 times.

    Regards,

    Peter

  • Hi Peter.

    Ok, thank you for information. If I correct understand then:

    • the "UFP DFP event" in TPS65987 has other behavior as it was in TPS65986
    • there are no the "Vbus detect event" in TPS65987, it was only in TPS65986
    • the slvae11.pdf describing these events for TPS65987 exactly so as they was implemented in TPS65986 is wrong

    Correct?

    If yes, do you see any possibility to get these both GPIO events (so as they are described in slvae11.pdf) for our host SOC from any combination of other events?

    Regards,

    Sergey

  • Hi Sergey,

    My feedback:

    • The UFP and DFP event is present in TPS65987 as in TPS65986 and function correctly, it just not trigger high when there's no connection in TPS65987.
    • That's correct per the Host Interface TRM.
    • The slvae11.pdf GPIO events table is outdated, I will discuss internally to update that.

    UFP/DFP event is there so you can use, for VBUS Detect you can use the status register (0x1A) to read the VBUS Status.

    Regards,

    Peter