CCG3PA Hardware and Software FAQs - KBA231523
Translation - Japanese: CCG3PAハードウェアおよびソフトウェアに関するFAQ - KBA231523 - Community Translated (JA)
Question: How are VBUS_IN_DISCHARGE and VBUS_C_MON_DISCHARGE pins wired in CCG3PA?
Answer: The VBUS_IN_DISCHARGE pin has the following features:
- Internal LDO capable of powering the chip
- Provider FET has internal pull-up to this side.
- Discharge capability
The VBUS_C_MON_DISCHARGE pin has the following features:
- Consumer FET is linked to this. But since it does not have any pull-up option, it can be used for both the directions.
- No LDO capability.
In CCG3PA applications as power source (applications which uses the provider FET), it is mandatory to connect VBUS_IN_DISCHARGE to the source of VBUS. VBUS_C_MON_DISCHARGE is wired to Type-C VBUS.
If the provider FET is not being used, VBUS_IN_DISCHARGE can be left floating. However, in this case, the ability to discharge source in case of faults will be lost.
In case of designs that support dead battery, LDO must be on the Type-C side. This requires us to connect VBUS_IN to Type-C interface and VBUS_C to VBUS source. But when we flip the VBUS_IN_DISCHARGE with VBUS_C_MON_DISCHARGE, the FET must also be swapped due to the pull-up mentioned above. So PCTRL should be used for consumer FET and CCTRL should be used for provider FET.
Question: How should Dp and Dm lines be connected while implementing Type-C port with PD and USB 2.0 data? Which legacy charging protocols are supported in this case?
Answer: The only legacy charging protocol that can be implemented along with USB 2.0 data is the Battery Charging BC 1.2 CDP (Charging Downstream Port). All other charging protocols require special terminations and signalling on the Dp and Dm lines continuously throughout the connection duration. Therefore, they cannot be implemented in conjugation with USB 2.0 data.
To simultaneously implement BC 1.2 CDP and USB 2.0 data, Dp and Dm lines must be routed to CCG3PA as well as the Hub/Host/Embedded Controller to handle data functionality.
To implement legacy charging only, Dp and Dm lines must be routed to CCG3PA.
Dp and Dm lines must be left floating if neither of the functionalities are implemented
Question: How can we program application firmware into a CCG3PA device?
Answer: There are two methods for firmware programming:
- SWD Programming
- CC Bootloading
CCG3PA comes with a pre-programmed CC bootloader, which allows upgrading or programming the firmware of the CCG3PA device over the CC line using the EZ-PD Configuration Utility.
When starting with the CCGx Power SDK project, after making application-specific modifications, two important files are generated - .hex and .cyacd. The .hex file combines the bootloader and the application firmware and can be SWD-programmed. The .cyacd file
contains the application firmware which can be programmed to the CCG3PA device using the EZ-PD Configuration Utility.
If minor modifications are needed such as power profiles, overcurrent thresholds, the DUT can be configured using the EZ-PD Configuration Utility. After making the modifications using EZ PD Configuration Utility, three output files - .cyacd file, .xml, and .c file are generated. The .cyacd file can be used to program the new configuration data to the device.
Question: Which legacy charging protocols are supported in CCG3PA?
Answer: In source mode, CCG3PA supports Apple Brick ID, Battery Charging BC 1.2, Qualcomm Quick Charge 2.30/3.0, and Samsung AFC legacy charging protocols.
In sink mode, CCG3PA supports Battery Charging BC 1.2 and Apple Brick ID protocols only.
The firmware can be customized to support Apple 2.4A source charging protocol along with other BC 1.2 based protocols.
This requires a dedicated GPIO connected to the D+ line of the port via a resistor.
The details can be found in the CCGx Power SDK User Guide.( https://www.cypress.com/documentation/software-and-drivers/ez-pd-ccgx-power-software-development-kit)
Question: Which APIs from CCGx Power SDK should be used to measure VBUS voltage and current in CCG3PA designs?
Answer: The following APIs can be used to measure VBUS voltage and current:
uint16_t pd_hal_measure_vbus(uint8_t port)
pd_hal_measure_vbus measures the Type-C VBUS supply voltage and returns the value in mV units. This function uses an internal ADC to measure the voltage on the VBUS_C_MON_DISCHARGE pin of CCG3PA
uint16_t pd_hal_measure_vbus_cur(uint8_t port)
pd_hal_measure_vbus_cur measures the load current being provided through the Type-C VBUS supply. This function measures the current value by measuring voltage across CSP and GND pins. The measured voltage value is processed and current value in 10 mA units is returned by this function.
uint16_t pd_hal_measure_vbus_in(uint8_t port)
pd_hal_measure_vbus_in measures the voltage at the VBUS_IN_DISCHARGE pin of CCG3PA. This function returns the voltage value in mV units