9 Replies Latest reply on Nov 22, 2020 10:51 PM by SananyaM_56

    CYPD3125 - can't set MODE C/E


      Hi folks. We are unable to get the CYPD3125-based design to use MODE C or MODE E.


      I am using CYPD3125. I use the EZ-PD Configuration Utility to restrict the supported modes to C or E (4-lane DP is the requirement).



      I connect the CYPD3125 (as DFP) to a monitor via Type-C cable. The monitor responds to a "Discover Modes" message with support for modes C,D, and E.




      After "Enter Mode", the CYPD3125 sends "DP Configure" asking for MODE D.



      We require 4 lanes for DP (so MODE C or E), how can we get the CYPD3125 to configure for MODE C or MODE E?


      Thank you!

        • 1. Re: CYPD3125 - can't set MODE C/E

          I should add that this is the 'CYPD3125-40LQXI_notebook' project.

          • 2. Re: CYPD3125 - can't set MODE C/E



            Since you are using the CCG3 notebook project, you would be configuring it as a Display source and the EZ-PD Configuration Utility settings are correct for selecting the modes.

            Please let me know if you are updating the configuration only through the utility or the firmware binary built from the project?

            Could you please confirm if the configuration is updated correctly by reading the configuration from CCG3 after it is programmed?


            Best Regards,

            • 3. Re: CYPD3125 - can't set MODE C/E

              Hello Sananya, thank you for looking into this issue!


              My path for updating the configuration is to save the configuration in the EZ-PD Configuration Utility. Then I use a text editor to cut the gl_config_table in the saved .c file and paste it into the config.c file of the project. Then I build the project and program the device.




              I would much rather use the EZ-PD Configuration Utility to accomplish this but our design just has the SWD_IO, SWD_CLK, and XRES interface to the CYPD3125 and I use the MiniProg3 and PSoC Programmer for programming.


              What interface is required for the EZ-PD Configuration Utility to access the CYPD3125 directly? Is it I2C? We also have a CY4531 evaluation kit that I could wire over to our design if necessary.


              I’ve attached the .cyacd file that I am using.


              Is there another way to verify the configuration?


              Thanks again Sananya.

              • 4. Re: CYPD3125 - can't set MODE C/E



                Thanks for the update. Yes, that is the correct method to update the configuration onto the *.hex file since you are using SWD programming.

                Yes, a USB-to-I2C converter is needed for the EZ-PD Configuration Utility to configure the CCG3 through the I2C interface.

                To verify if the correct configuration is built into the firmware, please use the File -> Read from Firmware File option in the utility.

                Could you kindly try programming the same firmware to the CY4531 kit and let me know if you see the same behavior?


                Best Regards,

                • 5. Re: CYPD3125 - can't set MODE C/E

                  Hi Sananya, thank you again for your attention to this.


                  I used the EZ-PD Configuration Utility to read the configuration directly from the CY4531 Evaluation Kit. I modified it to make it compatible with our design (host, source only, etc.) and chose modes CE in the DP params.


                  It worked. The negotiated mode was Mode C (4 lanes), as it should be. Very surprising.


                  I saved this configuration and cut&paste the .c contents into the config.c of my own project (and even saved it to the backup_fw for good measure). It still did not work and negotiated for Mode D (2 lanes).


                  How could the behavior be different? Could it be different FW versions?


                  I know that the config.c methodology does work as I had accidentally allowed configuration to source 20V to my board with disastrous results. Changing the config.c file from a .c file generated by the EZ PD Configuration Utility fixed that.


                  Here is the FW versions reported by the EZ PD Configuration Utility for the CY4531 Evaluation Board:




                  My project's ccgx_version.h is attached (although I don't see how they match up. Perhaps there's another file I should be looking at for version?)


                  Is there anything else besides different firmware version that could be causing the discrepancy?


                  Thanks again.

                  • 6. Re: CYPD3125 - can't set MODE C/E

                    I forgot to attach the ccgx_version.h.

                    • 7. Re: CYPD3125 - can't set MODE C/E



                      I was able to reproduce the behavior with the default binaries provided with the CY4531 EVK using the same steps that you mentioned. The steps you followed to update the configuration in the .hex file are correct through replacing the config.c file and rebuilding the project. However, I see that the latest SDK firmware allows the DP configuration for pin assignment D even if the configuration is updated to support C, E only.


                      The firmware version can be verified from the ccgx_version.h file parameters and as per your attached file, version is used for your project from Host SDK 3.4 while the EVK supports version To confirm if this is causing the discrepancy, please try updating the firmware on the EVK with the binaries present with the Host SDK. Please then update the configuration using the EZ-PD Configuration utility as done previously and let me know if you still see DP configure command for pin assignment D?


                      If yes, then please use the attached binaries where I have disabled setting pin assignment D in the firmware (dp_sid.c file). Please test and let me know if it works.


                      Best Regards,


                      • 8. Re: CYPD3125 - can't set MODE C/E

                        Thank you again Sananya!


                        I verified that the CY4531 EVK, as shipped, does indeed use MODE C when configured for MODE CE. I saved the hex file with the MiniProg3 (just so I can go back to original FW).


                        I then loaded the CY4531 EVK with the binary from the Host SDK. The file I used is  "CYPD3125-40LQXI_notebook_3_3_1_2010_0_0_0_nb.hex".


                        I then reconfigured it with the EZ PD Configuration Utility to only use MODE CE (not D).


                        I confirmed that it did indeed negotiate for MODE D anyway. Interesting! So it is a FW difference.


                        I then loaded the .hex file you sent and verified that it is configured for MODE CE. After plugging into Type-C (to a monitor), it negotiates for MODE C as intended. Great!


                        I guess I'd like to get a copy of your dp_sid.c file


                        Thank you Sananya for your help.

                        • 9. Re: CYPD3125 - can't set MODE C/E



                          Thanks for the update, glad to know the configuration is as expected now. You can also find the default CY4531 EVK binaries present with the kit installation at- https://www.cypress.com/documentation/development-kitsboards/cy4531-ez-pd-ccg3-evaluation-kit


                          I have attached the complete project, please refer to the function analyse_dp_sink_vdo() in dp_sid.c file for the changes. Please do let me know if you face any issues with the streaming using the latest firmware. We will look into the firmware difference for the DP configuration internally as well.


                          Best Regards,