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.
Tool/software:
I am looking to implement a TPS65987D drp controller. We will have an external source that will pass through an ideal diode (LM74700). This external source will feed our down stream system but also be the source voltage for a buckboost (TPS55288) which will feed PPHV2 on the TPS65987D to act as a source. We want a GPIO on the TPS65987D to monitor if voltage is present on the external source to prevent the TPS65987D from switching into a sink mode.
I see the tool has a GPIO event called "Barrel Jack Detect Event" which seems to fit the bill. However I have a concern. It states the event happens on rising edge. I'm afraid this will be a bit of a race condition in the event the system is fully shut down and the external voltage get applied first. In this case the TPS65987D wont be fully powered to see the rising edge event but instead will already have a stative value.
What's the best way of handling this? Below is a block diagram of what I am trying to achieve.
Hi Carlos,
I think you may be slightly understanding the Barrel_Jack_Event.
The Barrel Jack event does not force the port to be power source only. It will only attempt to do a power role swap to Source if the device is a Power Sink, it does not prevent the port from being a power sink. If the far-end device rejects the power role swap, the port will remain a sink port.
If you want the device to be default DRP, but be able to be configured to Source Only on the fly, you may need an MCU or EC to configure specific registers under your different conditions. You may also want to explore the Virtual Device capabilites.
To configure the port as source only:
Port Configuration Register (0x28):
Port Control Register (0x29):
There may be some other writes I may be missing, but those are the main ones. You should modify Port Control first, and then Port Config. This is because register writes to port config will cause a disconnect and reconnect of the USB port, applying the new settings to the new connection.
Thanks and Regards,
Chris