6 Replies Latest reply on Mar 15, 2019 4:50 AM by RajathB_01

    USB-C Multiport adapter current limit




      We are currently using the CYPD3125 and we would like to overcome some limitation.

      I did several tests, changing the configuration parameters but could not resolve this limitation.


      Here is our problem:

      Our USB-C power supply can provide our board with up to 20V / 3A (60W).

      We want to use some USB-C multiport adapters that allow to bring power and provide other ports such as HDMI, Ethernet, USB hub, etc.

      For example, the CB-C55 Multiport USB-C adapter from Aukey.


      We tested several multiport adapter similar to this one from various manufacturers and they all behave in the same way.

      Meaning, they generally reserve a certain amount of power for the other ports so when connecting our 20V/3A USB-C Power Supply to these multiport adapters, the adapters will display Source Capabilities with less current.

      For example, the CB-C55 from Aukey will offer a Source Capability of 20V / 2.75A instead of 20V / 3A.

      Some adapters will limit the current to even lower values such as 2.5A or 2.0A.


      We can limit our request to the maximum value offered by the USB-C multiport adapter by changing our Sink PDO Operating Current or Sink PDO Min/Max Operating Current when SinkGiveBack is enabled.

      But by changing these values to let say 2.5A, we can only request 2.5A even when using a 3A power supply. So this has the unfortunate effect to increase the time it takes to charge our smart battery.


      I also tried to define multiple 20V Sink PDO, one at 3A and another one at 2.5A max. But again, it will use the 2.5A Sink PDO in all cases. It will never use the 3A Sink PDO.


      Is there a way to negotiate 20V/3A when connecting a 20V/3A power supply to our board and negotiate 20V/2.5A when connecting a 20V/2.5A multiport adapter to our board?


      Any idea what can be done to use these various devices up to their respective maximum capabilities??


      Thanks for your help,

      Best Regards,


        • 1. Re: USB-C Multiport adapter current limit



          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

          • 2. Re: USB-C Multiport adapter current limit



            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,


            • 3. Re: USB-C Multiport adapter current limit

              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)

              • 4. Re: USB-C Multiport adapter current limit

                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?

                For example

                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.

                • 5. Re: USB-C Multiport adapter current limit



                  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

                  • 6. Re: USB-C Multiport adapter current limit

                    Hi all,


                    Some inputs:


                    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.


                    Example 1:

                    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)


                    Example 2:

                    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.