cancel
Showing results for 
Search instead for 
Did you mean: 

USB EZ-PD Type-C

PrRe_3492461
New Contributor II

Hello Community,

I'm using CCG3PA for my custom design, CCG3PA will be acting as a SINK only device forever.

Is there any API that I could use to verify whether VConn present or not after receiving a particular interrupt.

I used app_get_status(0)->is_vconn_on, Vconn_logical, ra_present, emca_present in dpm_status  structure, But I'm unable to read the Vconn presence.

I have also read attached KBA (002-31210_00_V.pdf ) and tried emulating same scenario with ccg3pa but still I'm not able to read Vconn presence status.

While I exploring I've gone through a function pd_vconn_is_present(), It says that "No Vconn Support for CCG3PA family as of now." Attached screenshot for reference - capture1.

I believe there shall be a way to achieve this requirement.

Please let me know how to achieve this.

Thanks in advance,

Regards,
pranay.

0 Likes
5 Replies
Sananya_14
Moderator
Moderator

Hi Pranay,

The KBA is mainly for enabling the VCONN when CCG3PA acts as a VCONN source. Could you please check using vconn_is_present() API when 5V is enabled for the EMCA? You could verify the sequence using the PD logs, please provide it as well for our reference. Please also let us know what is returned by the dpm_status ra_present and emca_present variables.

Best Regards,

Sananya

0 Likes
PrRe_3492461
New Contributor II

Hi Sananya,

Thanks for the reply.

From below screenshot from code it is obvious that Vconn_is_present( ) returns true all the time .PrRe_3492461_1-1614087460599.png

PrRe_3492461_0-1614087436013.png

And, dpm_status ra_present and emca_present variables return 0 always.

and Events in app.c app_event_handler() are :

PrRe_3492461_2-1614088334660.png

 

Thanks and regards,

pranay.

 

0 Likes
PrRe_3492461
New Contributor II

Hi @Sananya_14 ,

Any updated to this thread ? we're waiting for your response.

 

Thanks and regards,

Pranay.

0 Likes
Abhilash_P
Moderator
Moderator

Hi,

    I would be updating this space based on our latest conversation,

As per the Type C spec, the VCONN line does not extend to the sink and do not run through the cable. The line terminates at the cable. So only the VCONN source can say whether the VCONN is supplied or not. But in this application as the CCG3PA is acting as a sink, it is not possible for it to detect its presence. Please refer to the following  images from the PD spec for additional information. Letting the other port partner see the VCONN line is a violation of Type-C specification and such cable will result in a random behavior.

2.PNG3.PNG4.PNG

As per the spec, only the VCONN source would know if the VCONN is present or not. If the sink or the port partner wishes to source VCONN, then a VCONN_SWAP request must be initiated.

The different responses can be interpreted as follows,

Not supported -> Port partner does not source Vconn, Reject-> port partner continues to be source, Accept -> can take Vconn source role
Wait -> cannot source vconn now, but request later.

Please refer the following link for the API to get the CC pin voltage. (Note it is not the solution for VCONN swap message. It can be used just as a reference)

https://community.cypress.com/t5/USB-EZ-PD-Type-C/CYPD3171-24LQXQ-pb-any-API-to-get-the-CC-pin-volta...

 

Regards,

Abhilash P

0 Likes
PrRe_3492461
New Contributor II

Hi Abhilash,

FYI,

The setup assumes that user will be using E-marker cable. But we use Vconn pass through cable for our purpose and Vconn will be reflected to ccg3pa side aswell (unlike E-marker cable).

--Pranay.

0 Likes