- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you very much for your support, it worked after I changed the code inspired on your idea.