USB-C DisplayPort Alt Mode Demo Failure

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.
JaSw_3280471
Level 1
Level 1

Hello,

I'm having some issues with the DisplayPort alternate mode demo that is included in the EZ-PD CCGx SDK 3.0.2. I'm currently using PSoC Creator 3.3 Service Pack 2 (PSoC 4 refuses to compile the demo project).

I don't actually have the demo board, but I have a custom board that is very similar in operation. I decided to flash the demo project on to my board to see if the problem I'm observing persisted. It did. Other errors showed up in the EZ-PD Analyzer scans when using the demo program on my custom board, but I'm not sure if they are related or not.

I have tested this board and firmware on many different models of Apple Macbooks. Every Mac model with a USB-C or Thunderbolt 3 port has worked flawlessly, until the most recent MacbookPro 13" 2 TB3 ports (MacbookPro15,4) release. Here are the technical details of that model. I also have observed that the behavior I describe below only occurs on the MacbookPro15,4 and not the Macbook15,2 (which is the 13" 4 TB3 port model).

When negotiating for DisplayPort Alt mode, most Macbooks follow this sequence: `Enter`, `Status Update`, wait for hot plug, `Configure`, and DP AUX negotiations begin. On the MacbookPro15,4 the sequence I observe is `Enter`, `Status Update`, `Configure`, `NAK`.

It appears that the MacbookPro15,4 is attempting to set up the alt mode using pin assignment C and selecting configuration for USB instead of "Set configuration for UFP_U as UFP_D". What I'm actually expecting to happen is that the Macbook set up for pin assignment E since that's what the demo program is configured to do.

I have attached two EZ-PD Analyzer scans. `cypress-dp-demo-mbp14-3` is a scan on a 2017 MacbookPro 15" and acts similarly to many other Macbooks. `cypress-dp-demo-mbp15-4` is the 2019 MacbookPro 13" 2 TB3 Port model that is failing. In particular, lines 79 and 81 of the scan.

Is there some configuration setting that I can tweak to get this working for the Macbook15,4 model? If not, what is the most likely point of failure that is causing the Macbook to issue a pin C assignment instead of a pin E?

Thanks!

--Jake

0 Likes
1 Solution

Hi Jake,

The IOS Verision 10.14.6 will have this issue.

The Workaround on CCG3 firmware could change the case DP_STATE_CONFIG:

Comment out: (dp_get_vdo(port)->dp_cfg_vdo_sel.sel_conf == DP_CONFIG_SELECT)&&

And add: || (dp_get_vdo(port)->val == EMPTY_VDO)

Best Regards,

Lisa

View solution in original post

0 Likes
4 Replies
ShifangZ_26
Moderator
Moderator
Moderator
10 likes given 250 sign-ins 1000 replies posted

Hi Jake,

May I know whether the monitor of DisplauPort into the CCG3 C to DP dongle? Since the log you share to us showing the monitor is not connected.

pastedImage_0.png

Best Regards,

Lisa

0 Likes
lock attach
Attachments are accessible only for community members.

Hi Lisa,

Thanks for your quick response! There isn't actually a monitor currently connected in either one of those scans. Maybe that is a factor here, but the MacbookPro14,3 has the same behavior (line 75) and seems to work (without NAKing). I have also been experimenting with this mDP to USB-C adapter. Using that adapter, I captured the data exchange without a monitor and found that it reports `UFP_D Connected` even when there is no monitor attached. I believe that the issue is in handling the `Configure` step rather than the monitor connection. I could be wrong though and maybe it is both. I don't know enough about the specification. However, the fact that the MacbookPro15,4 is trying to issue a Pin Assignment D and utilize USB multi-function seems to indicate an issue with configuration during the discover identity or at some point before that status message about DFP-D/UFP_D connection is actually sent.

Is the demo expecting a monitor to be plugged in at all times in order to function correctly? If so, how would I handle the error state when its not plugged in?

Thanks,

--Jake

0 Likes

Hi Jake,

My previous response is for isolation the issue. Currently, it seems the issue is caused by IOS version. May I know the IOS on the MacbookPro15,4 on your end?

Best Regards,

Lisa

0 Likes

Hi Jake,

The IOS Verision 10.14.6 will have this issue.

The Workaround on CCG3 firmware could change the case DP_STATE_CONFIG:

Comment out: (dp_get_vdo(port)->dp_cfg_vdo_sel.sel_conf == DP_CONFIG_SELECT)&&

And add: || (dp_get_vdo(port)->val == EMPTY_VDO)

Best Regards,

Lisa

0 Likes