Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob

Using the CCGx Power SDK, How Can VBUS_P_CTRL Pin of CCG3PA Be Used as a GPIO – KBA228399

Using the CCGx Power SDK, How Can VBUS_P_CTRL Pin of CCG3PA Be Used as a GPIO – KBA228399

50 questions asked 25 likes received 25 sign-ins

Author: LisaZ_26           Version: **

Translation - Japanese: CCGxパワーSDKを使用して、CCG3PAのVBUS_P_CTRLピンをどのようにGPIOとして使用できるか - KBA228399 - Community Translated (JA)

VBUS_P_CTRL can be configured to assert HIGH (where HIGH value =  VBUS_IN_DISCHARGE voltage value) provided the VBUS_IN_DISCHARGE pin is powered. Use the following API functions in CCGx Power SDK for VBUS_P_CTRL drive logic:

HIGH: pd_internal_pfet_off(0, false);

LOW: pd_internal_pfet_on(0, false);

To configure VBUS_P_CTRL pin as GPIO, use the following API functions in the CCGx Power SDK for VBUS_P_CTRL drive logic:

High-Z: pd_internal_cfet_off(0, false);

LOW: pd_internal_cfet_on(0, false);

See CCGx Power SDK API guide.

Design considerations for VBUS_IN_DISCHARGE PIN if using VBUS_P_CTRL as GPIO for Type-A VBUS enable and disable

In general, the CCGx Power SDK can be classified to two types – power source only and dual role power. The following example firmware projects are CCG3PA applications as a power source only:

  • CYPD3171-24LQXQ_cla
  • CYPD3174-24LQXQ_pa_opto_fb
  • CYPD3175-24LQXQ_pa_direct_fb

On the other hand, the example firmware project CYPD3171-24LQXQ_pb is for CCG3PA applications for dual role power.

For power source only projects, the only design consideration is that it is a must to have VBUS_IN_DISCHARGE powered by a Type-A VBUS source.

For dual role power based applications, following items need to be done in hardware and firmware design:

  1. In hardware design, swap VBUS_IN_DISCHARGE and VBUS_C_DISCHARGE and ensure that VBUS_C_DISCHARGE is wired to Type-C VBUS node directly. Similarly, wire VBUS_IN_DISCHARGE directly to power source of Type-A VBUS.

  2. In the firmware project mentioned above, remove VBUS_IN_DISCHARGE monitor functions from Type-C functions and replace them with VBUS_C_DISCHARGE monitor functions.