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
AlMa_1521636
Level 1
Level 1
First like given Code Expert

I am using a CCG3PA CYPD3174 for a 78W power adaptor. I need to be able to detect whether a 5A cable is plugged into it to allow for greater than 3A of current. I am programming with PSoc Creator. What commands do I use to read the cable ID's vbus current?

Thank you.

0 Likes
1 Solution
ShifangZ_26
Moderator
Moderator
Moderator
10 likes given 250 sign-ins 1000 replies posted

Hi Allen,

1. The CCG3PA you have been design shall be support VCONN hardware external. You could refer CY4532 hardware schematic and assigned to un-used GPIO in your case.

pastedImage_0.png

2. After you add those hardware and make sure your design can be support VCONN. You just need use below code to see the cable VDO to confirm the current value after EMCA is present.

@ file app.c , under function void app_event_handler(uint8_t port, app_evt_t evt, const void* dat) , there is case APP_EVT_EMCA_DETECTED:

You could use below function to get value.

const dpm_status_t *dpm_stat = dpm_get_info(port);

current = dpm_stat->cbl_vdo.std_cbl_vdo.vbus_cur;

The VDO structure is below.

pastedImage_2.png

pastedImage_1.png

Best Regards,

Lisa

View solution in original post

1 Reply
ShifangZ_26
Moderator
Moderator
Moderator
10 likes given 250 sign-ins 1000 replies posted

Hi Allen,

1. The CCG3PA you have been design shall be support VCONN hardware external. You could refer CY4532 hardware schematic and assigned to un-used GPIO in your case.

pastedImage_0.png

2. After you add those hardware and make sure your design can be support VCONN. You just need use below code to see the cable VDO to confirm the current value after EMCA is present.

@ file app.c , under function void app_event_handler(uint8_t port, app_evt_t evt, const void* dat) , there is case APP_EVT_EMCA_DETECTED:

You could use below function to get value.

const dpm_status_t *dpm_stat = dpm_get_info(port);

current = dpm_stat->cbl_vdo.std_cbl_vdo.vbus_cur;

The VDO structure is below.

pastedImage_2.png

pastedImage_1.png

Best Regards,

Lisa