CYPD3120 - Disable the internal power switch which is connected to VSYS

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
CYTs_2513596
Level 1
Level 1
First like given 10 sign-ins 5 sign-ins

Hi, 

Based on CCG3 USB-PD subsystem, how to disable the internal Switch (e.g. VDDD is only provided by VBUS_C)?

CYTs_2513596_0-1616292808658.png

 

0 Likes
1 Solution
Sananya_14
Moderator
Moderator
Moderator
750 replies posted 500 replies posted 250 solutions authored

Hi,

If you're using CCGx SDK v3.0.2, you will have to manually change the register definition since there is no macro as you mentioned.  Yes, VDDD should be 3.3V and not 5V if CCG3 is being powered by VBUS.

The above code snippet should still work, you could refer to the USBPD_VREG_VSYS_CTRL register from the CCG3 Register TRM. To disable VSYS, ENABLE_VDDD_SWITCH bit should be set to 0 and to enable VBUS regulator, VREG20_EN  should be set to 1.

Best Regards,
Sananya 

View solution in original post

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

Hi, 

To disable powering from VSYS, please refer to the example usage below from pd_hal_init() function (Host SDK 3.4). You could also try disabling the macro VBUS_TO_VSYS_SWITCH_ENABLE.

tmp = pd->vreg_vsys_ctrl;
tmp |= PDSS_VREG_VSYS_CTRL_VREG20_EN;
tmp &= ~(PDSS_VREG_VSYS_CTRL_ENABLE_VDDD_SWITCH | PDSS_VREG_VSYS_CTRL_VREG20_ONOFF_CNTR_MASK);
pd->vreg_vsys_ctrl = tmp;

Best Regards,
Sananya

0 Likes
CYTs_2513596
Level 1
Level 1
First like given 10 sign-ins 5 sign-ins

Hi, 

    I am trying to add these code into pd_hal_init(), but the VDDD (=VDDIO) voltage is still 5V.

There is no macro VBUS_TO_VSYS_SWITCH_ENABLE in SDK v3.0.2

Here is my power circuit about VSYS, VDDD and VDDIO

CYTs_2513596_0-1616414932807.png

 

If the Switch powering from VSYS is disabled, I should measure 3.3V on the VDDD pin (the LDO output provided by Vbus)

CYTs_2513596_1-1616415925404.png

 

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

Hi,

If you're using CCGx SDK v3.0.2, you will have to manually change the register definition since there is no macro as you mentioned.  Yes, VDDD should be 3.3V and not 5V if CCG3 is being powered by VBUS.

The above code snippet should still work, you could refer to the USBPD_VREG_VSYS_CTRL register from the CCG3 Register TRM. To disable VSYS, ENABLE_VDDD_SWITCH bit should be set to 0 and to enable VBUS regulator, VREG20_EN  should be set to 1.

Best Regards,
Sananya 

0 Likes