Please check dpm_disable() function in the CCGx Power SDK API Guide. Could you please elaborate on how you'll be switching between the two modes?
Thanks for the response.
This dpm_disable() is not helping. Even though After initiating this API still PD contract still exists and Happens again if we disconnect and connect DUT again manually which is not expected, or is it expected ?? (am I correct here)
And Even after sending this API Is it expected that ccg3pa respond to all PD packets (like SrcCaps,Vconnswap etc..) ???
I even tried using app_disable_pd_port(uint8_t port, dpm_typec_cmd_cbk_t cbk); //@file app.c , even this approach doesn't help.
Have you verified it from your side. If so can you please elaborate how did you verified in your end ?
I've a mechanism to send any a codeword(API) using I2C and handle requirement accordingly .
I will repeat my exact requirement ::
I want to disable PD Functionality of ccg3pa, i.e., If i connect a provider DUT which supports BC and PD both, only BC should be triggered.
Is there any API so that If i use that only BC12 state machine should run and PD should be disabled ?
Thanks and Regards,
If you are disconnecting the DUT while switching to BC 1.2 functionality, please try using dpm_typec_command() to disable the port.This should ensure no PD negotiation takes place on the port, please refer to the section 126.96.36.199 in the User Guide for the usage.
I have tested this on my end but have not tried enabling BC 1.2 after that. You could refer to the bc_pd_event_handler(), bc_set_config() APIs for running the BC state machine on the port after enabling LEGACY_DYN_CFG_ENABLE macro.
Thanks for the response.
After Enabling LEGACY_DYN_CFG_ENABLE Macro I've tried these sequences:
After Turning On CCg3PA, Before Connecting DUT Sent dpm_typec_command(G_PORT0, DPM_CMD_PORT_DISABLE,NULL); to disable the port and than Connected the DUT.
--Vbus is Down and Unable to detect any BC1.2 state machine running (No DCP/CDP Detections).
After turning On CCG3PA,Connected the DUT after PDC sent dpm_typec_command(G_PORT0, DPM_CMD_PORT_DISABLE,NULL); Port went to detach state and read BC1.2 status .
-- Tried initiating bc_init(BC_PORT_0_IDX) and bc_start(BC_PORT_0_IDX, BC_PORT_SINK) after sending Disable Command.
--Still Vbus is down and No BC1.2 Detections.
My requirement is to only make ccg3pa acts as BC12 SNK
but structure chg_cfg_params_t used in bc_set_config() refers to BC source right?
Correct me if I'm wrong here.
And If I mask bc_pd_event_handler(), we're unable to detect any BC1.2 state machine(DCP/CDP/SDP) which is as per our requirement.
But Now controlling PD state machine not to run and enabling BC is the only concern.
Is there anything I could try to Enable only BC12 state machine to run when PD Provider(BC supported) only DUT is connected?
How would Test a Provider only DUTs BC1.2 Functionality and Draw e-load based on DUT type(CDP/SDP/DCP) if connected DUT supports both PD and BC1.2 ?
The DPM APIs we use for disabling the PD state machine is actually also disabling some registers needed for the port to be enabled. Hence we don't see only the BC state machine running. Since this functionality has not been tested on our side and there are no code examples, could you kindly create a case on this? It will be easier to check the feasibility and see if we have suitable APIs for your requirement.