[CCG4] Questions regarding a 4-port USB-C design using two CCG4s

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
KyTr_1955226
Level 6
Level 6
250 sign-ins 10 likes given 50 solutions authored

Hi All,

We have a design we are considering that will operate what is essentially a 4-port DisplayPort to USB-C monitor hub.  4 USB-C receptacles, each one with PD and operating primarily in Alternate Mode to provide power and video to a USB-C monitor.  We have a couple questions regarding such a design.

1. We will require a method to load the two CCG4 (CYPD4225) parts from a single connection.  Since the part is loaded via I2C, how should we configure our connection to ensure both parts can be reached via the EZ-PD Configuration Tool?  My first thought was to assign each CYPD4225 to their own SCB on a CY7C65215 as follows :

(Note that there will be appropriate DP/USB-C muxes in the design, but they are not shown in these diagrams)

KyTr_1955226_0-1626278104088.png

This would probably be the simplest solution if I can confirm that the EZ-PD tool for configuring/loading new firmware will appropriately recognize both parts.

We could also possibly have both CYPD4225 devices on a single SCB/I2C bus:

KyTr_1955226_1-1626278167158.png

In this design each CCG4 would presumably need a different I2C address (selected by a GPIO pin pulled high/low on boot).  Again, would the EZ-PD tool be able to find and load both parts in this case?

2. Is the CCG4 still the most appropriate part for this?  Would moving to a CCG6 gain us anything or would sticking with the CCG4 be recommended?  We only plan on using the connection for USB-C PD and Alternate Mode at 1080p.  USB SS/Thunderbolt will not be used.

Appreciate any advice.  I am hoping to confirm either one or both of these configurations will behave in the way I am expecting so we hopefully only have to design this PCB once.

Thanks!

 

0 Likes
1 Solution

 

Performed the the mods noted from my last post:

  1. Removed R11 and R12 to disconnect SCB1 from the bus
  2. Connected wire from RXD Test Point on CCG4 Daughter Card to J9<7> on the Base Board
  3. Connected wire from TXD Test Point on CCG4 Daughter Card to J9<8> on the Base Board

Continuity testing with my multimeter has shown SCB0_0 (TXD)was continuous with I2C_SCL_EC pin on the CCG4 and SCB0_4 (RXD) was continuous with I2C_SDA_EC on the CCG4, matching how SCB1_0 and SCB1_4 were configured.

with the USB-Serial bridge SCB0/1 both set to I2C/Vendor device but no luck establishing communication on SCB0.  It does look at least like the EZ-PD is trying to use both interfaces when they are both set as I2C/Vendor though.  From the log:

Starting Device Discovery.

Searching for HID Firmware Update Device
0 HID devices found.
Registered device 0 (0 0) with handle a7bbca0
Registered device 1 (1 0) with handle a7bb430
2 USB-Serial Bridge devices found.
Communication interface initialized.
Error: No CCGx (I2C Slave) found.
Error: No CCGx (I2C Slave) found.
Device Discovery completed.

After this I realized that SCB0 and SCB1 do not share the same pin configuration for SDA/SCL.  This means I had connected SDA and SCL to GPIOs rather than the SDA/SCL lines of SCB0.  Turns out the USB-Serial bridge on the CCG4 daughter card does not break the SCB0 I2C lines out anywhere, so another solution had to be found.

Luckily, the base boards of the EVK each have the same CY7C65215 part, and also break out all the SCB0 lines to J6.  Connecting J6<7-8> to J9<7-8> connects the SCB0 I2C lines to the I2C_EC lines on the CCG4.  I was able to pull in the CCG4 configuration without problems on SCB0.  So if it can use SCB0 and SCB1 separately, I see no reason why it wouldn't be able to use them both.  Looks like the first configuration should be OK to run with.

Thank you for the help!

View solution in original post

0 Likes
3 Replies
Sananya_14
Moderator
Moderator
Moderator
750 replies posted 500 replies posted 250 solutions authored

Hi,

My understanding is that you would like to program both the CCG4 parts over HPI using the same USB-Serial device. The EZ-PD Configuration utility accesses the CY7C65215 device as per the EVK connections so it would access SCB1 expecting it to be configured as I2C and also expect CCG4 to have the default HPI slave address. So, I dont think either configuration would work if the USB-Serial device used is CY7C65215.

If you have a CCGx EVK, could you please try connecting the I2C lines of CCGx (you would need to add pull-ups) to SCB0 of CY7C65215 after configuring it as I2C vendor interface using the USB Serial Configuration utility? This would help check if both the SCBs of CY7C65215 can detect CCGx in the EZ-PD Configuration utility as per your first configuration option.

Since you a require dual-port controller and only DisplayPort alternate mode, I would recommend CCG4 as well. You could also use the CY4541 EVK for reference since it is a DisplayPort source side implementation. CCG6 is more integrated in terms of hardware (load switch controller, fault protection, gate drivers etc) and also supports legacy charging protocols but I dont think those are required for your application. Please check this page for complete comparison of  features between CCG4 and CCG6- https://www.cypress.com/products/usb-type-c-and-power-delivery

Best Regards,
Sananya

0 Likes
KyTr_1955226
Level 6
Level 6
250 sign-ins 10 likes given 50 solutions authored

Thanks for the input Sananya,

We do have the CCG4 EVK, I'll see what we can do as far as testing.  I believe we would also need to disconnect the SCB1 SDA_EC/SCL_EC lines as well yes?  Or is the CY7C65215 able to handle if both SCBs are connected to the same I2C slave device?

If SCB1 needs to be disconnected, something like this:

KyTr_1955226_0-1626366220529.png

I also think if configured as above I could continue to use the R25/R23 pull-ups?  As they would still be on the I2C_EC bus.

Thanks again for the tip, I will return with results once I get this set up and tested.

 

0 Likes

 

Performed the the mods noted from my last post:

  1. Removed R11 and R12 to disconnect SCB1 from the bus
  2. Connected wire from RXD Test Point on CCG4 Daughter Card to J9<7> on the Base Board
  3. Connected wire from TXD Test Point on CCG4 Daughter Card to J9<8> on the Base Board

Continuity testing with my multimeter has shown SCB0_0 (TXD)was continuous with I2C_SCL_EC pin on the CCG4 and SCB0_4 (RXD) was continuous with I2C_SDA_EC on the CCG4, matching how SCB1_0 and SCB1_4 were configured.

with the USB-Serial bridge SCB0/1 both set to I2C/Vendor device but no luck establishing communication on SCB0.  It does look at least like the EZ-PD is trying to use both interfaces when they are both set as I2C/Vendor though.  From the log:

Starting Device Discovery.

Searching for HID Firmware Update Device
0 HID devices found.
Registered device 0 (0 0) with handle a7bbca0
Registered device 1 (1 0) with handle a7bb430
2 USB-Serial Bridge devices found.
Communication interface initialized.
Error: No CCGx (I2C Slave) found.
Error: No CCGx (I2C Slave) found.
Device Discovery completed.

After this I realized that SCB0 and SCB1 do not share the same pin configuration for SDA/SCL.  This means I had connected SDA and SCL to GPIOs rather than the SDA/SCL lines of SCB0.  Turns out the USB-Serial bridge on the CCG4 daughter card does not break the SCB0 I2C lines out anywhere, so another solution had to be found.

Luckily, the base boards of the EVK each have the same CY7C65215 part, and also break out all the SCB0 lines to J6.  Connecting J6<7-8> to J9<7-8> connects the SCB0 I2C lines to the I2C_EC lines on the CCG4.  I was able to pull in the CCG4 configuration without problems on SCB0.  So if it can use SCB0 and SCB1 separately, I see no reason why it wouldn't be able to use them both.  Looks like the first configuration should be OK to run with.

Thank you for the help!

0 Likes