PMG1-S3 PPS sink code example

Announcements

Live Webinar: USB-C adoption. Simple & Cost-efficient solutions | April 18th @9am or 5pm CEST. Register now !

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

cross mob
lock attach
Attachments are accessible only for community members.
Elbucki
Level 1
Level 1
5 replies posted 10 sign-ins 5 sign-ins

Hello, I'm currently using the CY7113 as a development board for a runtime controllable PD sink.  I can successfully  switch between the fixed PDOs, but now need to work on choosing a PPS or Augmented sink voltage.  I'm working off the USBPD SNK Capsense example, using the functions in the PDstack middleware and have changed the eval_src_cap function to choose the correct PPS PDO and can successfully request the PDO and receive a PS_Ready message.  After that, I think the PMG1 stops responding and soon there is a hard reset.  Could you share the correct procedure to connect and remain connected to a PPS PDO.  I see there is a  Cy_PdStack_Dpm_PpsTask function in the API reference, but my firmware does not include that function.  I also know that the PPS has to be renegotiated every 10 or so seconds so that is also a concern.  Any help would be greatly appreciated.

0 Likes
1 Solution
Pranava_YN
Moderator
Moderator
Moderator
100 likes received 500 replies posted 250 solutions authored

Hi,

 

The firmware does not support PPS Sink functionality. You can configure PPS sink PDOs using the configurator tool provided but as you mentioned the repetitive requests (renegotiations) are not handled in firmware. You have to implement this on your own.

 

Best regards,
Pranava

View solution in original post

5 Replies
Pranava_YN
Moderator
Moderator
Moderator
100 likes received 500 replies posted 250 solutions authored

Hi,

 

The firmware does not support PPS Sink functionality. You can configure PPS sink PDOs using the configurator tool provided but as you mentioned the repetitive requests (renegotiations) are not handled in firmware. You have to implement this on your own.

 

Best regards,
Pranava
Elbucki
Level 1
Level 1
5 replies posted 10 sign-ins 5 sign-ins

Pranava,

Thanks for the response.  Could you send an example of a EZ-PD configurator file that will choose a PPS voltage (8V?).  I've tried to set one up by only using a sink PPS PDO after the mandatory 5V PDO but cannot get that working.  Also what code example will this configuration need to run with (USBPD_SINK, USBPD_SINK_CAPSENSE)?  Thank you.

 

-Eli

0 Likes
lock attach
Attachments are accessible only for community members.
Pranava_YN
Moderator
Moderator
Moderator
100 likes received 500 replies posted 250 solutions authored

Hi,

May I know the exact issue you are facing while setting up PPS Sink PDO? I am able to do so from the EZ-PD Configurator 1.10.
You can use it with both the examples, but as stated earlier, PPS requests must be implemented from your end.

Best regards,
Pranava
0 Likes
lock attach
Attachments are accessible only for community members.

Pranava,

Thanks for the EZ configuration, I was hoping that the higher capability flag would prevent it from selecting the default 5V PDO, but like you said that's not the case.  I quickly modified the code from the Capsense example so that I construct a PPS request that matches my particular source PDOs.  It can successfully request the correct augmented PDO but after about a half second I get a hard reset.  I don't know how to determine which side sent the hard reset or why, maybe there are voltage limits I'm not setting up correctly as it is a PPS request?  Can you take a quick look and see if I'm missing some setup code.  I'm essentially just constructing a rdo_PPS message and sending it like the example fixed request.  I'm not sure if I need to do more setup so that the port knows that it's entering a specific PPS voltage.  Thanks.  I've attached a sniffer capture from my Total Phase PD Analyzer as well.

0 Likes
Pranava_YN
Moderator
Moderator
Moderator
100 likes received 500 replies posted 250 solutions authored

Hi,

Sorry, your previous response skipped my notice. Please let me know if you still face this issue.

You can refer to the USB PD Specification for PPS present in https://www.usb.org/document-library/usb-power-delivery and implement the same. Also looks like the Hard reset is getting initiated from the Source side. I will go through the implementation and get back to you.

Best regards,
Pranava
0 Likes