Handling two PD power supplies

Announcements

Live Webinar: USB-C adoption. Simple & Cost-efficient solutions | April 18th @9am or 5pm CEST. Register now !

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
rmuniz
Level 1
Level 1
First reply posted First question asked Welcome!

Hello! I'm trying to handle the scenario where I can possibly attach two PD power supplies to the CCG5 at the same time and I want to use the higher capacity one and then disconnecting the other in a safe way.

My first idea was to override the psnk_enable() callback so basically I accept enabling the sink path for the higher source and then disable the other port.

Any ideas on how to accomplish this? So far my idea did not work, I call psnk_disable() for the port I want to disable but the snk_discharge_off_handler callback seems not being called for some reason.

Thanks in advance.

0 Likes
1 Solution
Wang_Fred
Moderator
Moderator
Moderator
5 questions asked 100 solutions authored 250 sign-ins

Hello,

1. Can you please attach your HW schematic or block diagram?

2. how could you recognize which power supply path has higher capacity, since you said you overwrote the psnk_enable().

3. snk_discharge_off_handler is a callback function as a parameter passed into psnk_disable(), and if this parameter is NULL when you call psnk_disable(), there would be nothing called.

My idea is you need to use dual port CCG5 device for this scenario and compare the power ratings of RDO respectively after the PD contract. Then switch off the path of lower capability one. 

In addition, please directly call sink_fet_off() instead of psnk_disable() to disable the power path. Calling psnk_disable() needs to discharge the path firstly, so this may cause unexpected behavior from partner port.

 

Thanks,

Fred

View solution in original post

0 Likes
2 Replies
Wang_Fred
Moderator
Moderator
Moderator
5 questions asked 100 solutions authored 250 sign-ins

Hello,

1. Can you please attach your HW schematic or block diagram?

2. how could you recognize which power supply path has higher capacity, since you said you overwrote the psnk_enable().

3. snk_discharge_off_handler is a callback function as a parameter passed into psnk_disable(), and if this parameter is NULL when you call psnk_disable(), there would be nothing called.

My idea is you need to use dual port CCG5 device for this scenario and compare the power ratings of RDO respectively after the PD contract. Then switch off the path of lower capability one. 

In addition, please directly call sink_fet_off() instead of psnk_disable() to disable the power path. Calling psnk_disable() needs to discharge the path firstly, so this may cause unexpected behavior from partner port.

 

Thanks,

Fred

0 Likes
rmuniz
Level 1
Level 1
First reply posted First question asked Welcome!

Thank you very much for your support, it worked after I changed the code inspired on your idea.

0 Likes