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: Configure as UFP or DFP based on Embedded Controller FW

Part Number: TPS65987DDJ
Other Parts Discussed in Thread: TPS65987

Hello,

I am working on a development board that can be used for multiple different products. In these products, the same USB-C port will be either a DFP or UFP depending on the firmware that is flashed on the embedded controller (EC). Ideally, I would like the TPS65987DDJ role to change "automatically" based on the firmware that is flashed on the EC. The two scenarios are listed below. 

Scenario 1: Main DC power from an external DC jack, USB-C operating as a DFP sourcing up to 20V, 5A

Scenario 2: USB-C operating as an UFP sinking up to 20V, 5A with main DC power from USB-C. External DC jack is disconnected

Questions:

  1. Can this be accomplished by including a .bin file for the 65987 role within the FW image for the EC and then performing a SPI write on boot-up to check and re-write the boot config if necessary?
    1. If so, is an externally memory required for the 65987?
    2. From another thread, it sounds like any config taking advantage of GPIOs on the 65987 requires external memory, is that correct?
  2. If the boot config is written as an UFP, will the 65987 automatically boot to that on the next power cycle? The design will likely need the controller to negotiate for higher power so the UFP behavior will need to function independent of the EC. 

Thanks!

Ryan

  • Hey Ryan,

    I just have some questions first in regards to your system. Is there a reason you are using the DJ variant and not TPS65987DH? Is your system is a Thunderbolt system that requires DJ? If it isn't then I would recommend using the TPS65987DH device in your design.

    Thank you,

    Hari

  • Hi Hari,

    Thanks for that advice - I'm not planning on using Thunderbolt. I would like to support DisplayPort over the USB-C connector. 

    Just curious, is there something specific about the DJ variant that makes it not recommended for non-Thunderbolt applications? 

    Thanks,

    Ryan

  • Hi Ryan,

    That's just the way our code base is specialized, DJ for Thunderbolt and DH for everything else, which is why DH is suitable and recommended for most applications.

    As for your questions, you can program the PD controller 2 ways, via a Host EC or SPI Flash. Therefore, yes you will have to program every power cycle if using EC or you will need the Flash to program it. Same goes for your GPIO question, to use GPIO Event triggers of your choice, you will have to program it to do so in your configurations which you can program to the PD Controller.

    In the case of no Host EC or Flash, the PD controller has a selection of a few default configurations that you can set via the ADC_IN1 and MISO pin.

    I would recommend referencing the SPI Flash Firmware Update Over I2C Application Note which goes into the process in much more detail.

    Thank you,

    Hari