if you setup a 2.5A current request any power adapter providing more than what you are requesting will be able to provide power to the board.
Alternatively you can request a SRC cap from the power adapter and evaluate the advertised power and grab the maximum for a specific power adapter (ie; 2A,2.2A,2.5 etc) your Sink request can be resent after you check the capability of the specific connected power brick
Thanks for your answer.
I didn't know it was possible to request a source capability ourselves and resend our Sink request.
We will try what you propose in order to resolve this limitation.
It is unfortunate though that there is no way to correctly define our needs in the Configuration Parameters. It would be much simpler! ;-)
Thanks again for your help,
So there is a few issues with relaying strictly on Configuration utility setting unless you are planning on using one specific power adapter with specific power PDO levels
1. 5V Sink PDO is required, so if you setup a 20V 2.4A Sink Profile and connect a type C power adapter that does not have this (or higher) capability you will automatically be sinking at 5V only (or not sinking at all with no report back to user)
2. without a PG (Power Good) trigger it would be impossible for you to know if you actually have proper PD Sink profile attachment
So yes it is in my opinion best to write the code to anticipate these type of real world situations
Sink at 5V > get SRC capability > select highest Voltage/current your device will need>send request for such sink PDO> wait for power adapter acceptance > turn on PG GPIO pin to turn on your DC/DC section
I would like to be corrected in this assumption by Cypress if possible (we all make mistakes)
I get your point. It seems indeed a good idea to get a new SRC capability and request a new one to support various types of capability.
Since our application requires charging a 12.6V battery, only the PD Controller will work using the 5V Sink PDO which is fine to renegotiate a new power contract.
Our application can support an input varying from ~13.5V to 20V, so we managed to define several Variable Supply Sink PDOs which were practically the same but with various currents ranging from 2A to 3A. That way, only using Configuration Parameters, we were able to negotiate a power contract close to the maximum current offered by each device. It doesn't seem very legit but it works well for our requirements for the time being until someone here has time to dig in the code further.
Someone sees a problem doing this?
Any reasons why it wouldn't be advisable to do such a thing?
PDO3: Variable 14V-21V/3A
PDO2: Variable 13.95V-21V/2.5A
PDO1: Variable 13.90V-21V/2A
PDO0: Fixed 5V/1A
It would have been possible to do the same thing with Fixed Supply Sink PDO by enabling the option "Allow multiple Sink PDOs of the same voltage" but for some reason the EZ-PD Configuration Utility always reorder the Sink PDOs in the wrong order which causes to establish the power contract using the least current. Very unfortunate behavior! Is this a bug? Cypress??
For example, we want to define PDO3 = 20V/3A, PDO2 = 20V/2.5A, PDO1 = 20V/2A
and EZ-PD Configuration Utility saves it as PDO3 = 20V/2A, PDO2 = 20V/2.5A. PDO1 = 20V/3A
so a contract is established with all devices using PDO3 at 2A.
Not sure of your specific setup but it sounds like you guys want to make a simple battery charging SINK circuit, we did something similar in the past few months with ACT2861 and CCG3 3171 ... what we liked is that the Buck/Boost option combination with legacy support of Sink from CCG3 gave us capability of charging a 3S battery no matter what voltage was available 5/7/9/12/15/20 and we just request highest current/voltage based on Wattage available calculation in the PSoC code
Multiple PDOs same voltage under PD spec 2.0 are not possible so if you plan on making this work on PD3.0 , connecting with older Power adapters will be an issue..
PPS power supplies will work with a variable voltage PDO but have not tried multiple current levels at same voltage request
The EZ-PD utility arranges PDO's in ascending order of voltage. But this will not affect negotiation.
The firmware algorithm on sink controller will always request the highest power contract by comparing all Source PDO's with all Sink PDO's and forms an RDO of the highest possible power transfer.
In case of using multiple sink PDO's with same voltage, the EZ-PD Utility will arrange PDO's in random order. Still, the RDO that will draw maximum power will be formed by the algorithm on the sink controller.
Both cases, order of PDO's will not affect highest power contract negotiated, this is verified with both PD3.0 and PD2.0 sources.
Sink PDO's are: 5V@3A; 20V@2.5A , 20V@3A;
Source PDO's: 5V@3A , 20V@3A; (power supply)
RDO will be: 20V@3A; (max power)
Sink PDO's are: 5V@3A , 20V@2.5A , 20V@3A;
Source is: 5V@3A , 20V@2.5A; (multiport adapter)
RDO will be: 20V@2.5A; (max power)
If any other RDO is formed instead of above mentioned, I would guess it is an issue with the source power supply. In this case it would be better to see the CC log to identify the root cause.
Another method of sinking default 5V and re-negotiating will also work. It is just a longer method.