- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello RajathB_01/All,
I'm using ccg3pa for my application development.
I need control to Enable/Disable PD Functionality and BC1.2 functionality.
only need any one of the state machine to run at a given time.
Is there any library function available such that by using that function i need to Disable PD functionality of ccg3pa.
My exact requirement is to test BC1.2 functionality of any provider only DUT which has PD and BC1.2 functionality .
Thanks in Advance.
Regards,
Pranay.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Pranay,
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.
Best Regards,
Sananya
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Pranay,
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?
Best Regards,
Sananya
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello SananyaM_56,
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,
Pranay.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Pranay,
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 6.3.7.2 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.
Best Regards,
Sananya
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi SananyaM_56,
Thanks for the response.
After Enabling LEGACY_DYN_CFG_ENABLE Macro I've tried these sequences:
Seq1:
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).
Seq2:
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 ?
Regards,
Pranay.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Pranay,
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.
Best Regards,
Sananya