CCG4-4236 How to swap port0/port1 CC1/CC2 to Rd

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
falu_294486
Level 3
Level 3
10 replies posted 5 replies posted Welcome!

Hi there,

   I just used 4236 to design type-c port test box like dock.

there have one thing i must accomplish are auto swap port0 cc1/cc2 Rd (cc1 switch to Rd and cc2 floating).

Is SDK API can do it? if not, how can i design my hardware to accomplish  this (etc mcu control switch to pull Rd down for cc1).

thanks

0 Likes
1 Solution
YiZ_31
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hi Faco_Lu,

You can use  pd_typec_dis_rd to control Rd of CC pin, but CYP4236 do not support individual control of Rd on CC1 & CC2. You can control Rp individually on each CC pin.

Regards,

Eddie.

View solution in original post

0 Likes
7 Replies
YiZ_31
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hi,

Yes, it's accomplished by CCGX HOST SDK API. You can refer to 6.13 app/swap.h File Reference of CCGX_FW_API_GUIDE:

Regards,

Eddie

0 Likes

Hi EddieZ_31, I did not find the CC Pin related API in the app/swap.h The API here is only PR_swap, DR_swap and Vconn_swap. Regards, Manu

0 Likes
YiZ_31
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hi Manu,

Rp/Rd defines the role of the device as source/sink. The swap of role is accomplished by the functions I mentioned above.

Regards,

Eddie

0 Likes

Hi Eddie,

I connect the  CCG4-4236 to laptop use type c cable, which cable is special cable (have cc1/cc2 both).

And verify cc1/cc2 automatic switching using the following combination. When i swap to port0 cc1, it can work but i swap to cc2, it's not work.

// disable/enable ccx

pd_typec_dis_rd();

pd_typec_en_rd();

// cc communication status machine

dpm_init();

dpm_start();

dpm_stop();

// port disable/enable

dp_typec_init();

dp_typec_start();

dp_typec_stop();

thanks

Faco_Lu

0 Likes
YiZ_31
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hi Faco_Lu,

You can use  pd_typec_dis_rd to control Rd of CC pin, but CYP4236 do not support individual control of Rd on CC1 & CC2. You can control Rp individually on each CC pin.

Regards,

Eddie.

0 Likes

Eddie,

thank for report.

If API is not support individual control of Rd on CC1 & CC2. how could i design hardware to achieve automatic swap?

eg. using MCU gpio to control switch port0 cc1/cc2 to Rd

Faco_Lu

0 Likes
YiZ_31
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hi Faco_Lu,

CCG4 do not support this kind of control. There is no solution for now. Thank you for understanding.

Regards,

Eddie

0 Likes