UNSOLVED

3818owner

updated

6 years ago

Closed

3

3818owner

1 Rookie

6 Posts

22

34021

January 13th, 2020 19:00

U3818DW, USB Type-C power delivery problem

(1) I have collected the Service Tag and S/N
(2) Hard reset does not affect the behavior
(3) Factory reset does not affect the behavior. There is no issue with image quality.
(4) Post your issue in public and all of the following data

* The issue and all of the troubleshooting you have performed

My Dell U3818DW consistently wakes my laptop up shortly after the laptop goes to sleep when powering it via USB Type-C from the U3818DW, causing infinite sleep/wake loops and preventing the laptop from ever actually sleeping. The laptop sleeps fine when powered by the USB Type-C power supply it came with.

I investigated using a professional USB Type-C protocol analyzer and found the difference: My Dell U3818DW violates USB Type-C power delivery protocol when the laptop goes to sleep (by not sending the required PS_RDY message after accepting a request, details below), causing the laptop to wake back up.

The "Product Features" section of the Dell U3818DW User's Guide says it "Supports USB Type-C" but the USB Type-C support has a defect. Can you please provide an updated U3818DW firmware that fixes this defect?

Equipment used:

Dell U3818DW monitor running latest firmware M3B106
Dell USB Type-C cable (6ft) supplied with U3818DW monitor
Anker Powerline II USB-C to USB-C 3.1 Gen 2 Cable (3ft) with Power Delivery
PC Laptop running Windows 10
USB Type-C power supply included with laptop
Total Phase USB-C PD analyzer running FW 1.11 and Total Phase Data Center 6.73.007 (https://www.totalphase.com/products/usb-power-delivery-analyzer/)

Test setup:

The U3818DW has two cables connected: wall power and the USB Type-C cable to the laptop.
The laptop has one cable connected: the USB Type-C cable to the monitor.
There are no other connections to any port on the laptop or the monitor.

I read the "USB Type-C monitors FAQ" post that says "5GHz, Gen 1, 1.8m/5.9ft, DP Alt Mode USB Type-C to C cable", "JNC22 = U3419W/U3818DW", "If your USB Type-C monitor shipped with the longer USB Type-C to C cable, you cannot use the monitor to charge the laptop" so I tried the 3ft Anker cable as well as the Dell supplied 6ft cable. The behavior is identical for both USB Type-C cables.

The behavior is identical with or without the USB Type-C analyzer connected. I originally observed this behavior without any analyzer and the behavior is unchanged with the analyzer connected.

Test steps:

1) Start with laptop awake and with a 100% full battery, USB Type-C cable not connected to the laptop.
2) Connect the USB Type-C cable to the power source: either the monitor or laptop power supply.
3) Connect the USB Type-C PD analyzer to the far end of the USB Type-C cable away from the power source, i.e. analyzer->USB Type-C cable->(monitor or laptop power supply)
3) Start the trace in Total Phase Data Center
4) Connect the analyzer to the USB Type-C port on the laptop, i.e. laptop USB Type-C port->analyzer->USB Type-C cable->(monitor or laptop power supply)
5) Wait for the USB Type-C PD handshake to finish and the laptop to indicate it's powered (at 20V, 4.3 or 4.4A)
6) Tell the laptop to go to sleep

This is where the behavior varies depending on which USB Type-C power source is used:

If using the laptop power supply, the behavior is as expected. The laptop goes to sleep and the final USB Type-C PD activity is a request 5V 2.4A from the sink (laptop) -> accept from the source (monitor) -> PS_RDY from the source, then no more traffic. You can see the details in the Laptop power supply trace below.

If using the monitor, the laptop and monitor wake back up every ~1 minute forever. The trace shows a loop where each iteration of the loop has:

- ~1 minute of no traffic
- USB Type-C PD request 5V 3A from the sink, accept form the source, but no PS_RDY from the source (this violates USB Type-C spec, details below)
- USB Type-C PD hard reset

The loop repeats indefinitely. You can see the details in the U3818DW trace below.

The U3818DW trace shows the U3818DW is violating USB Type-C spec by not sending a PS_RDY within the allowed time after the laptop sends a 5V 3A request and the U3818DW sends an accept. Instead, the link is hard reset.

In USB-PD R2.0 v1.3 spec, Figure 7-18 and Table 17-10 show how a decrease in voltage and current must occur after the source accepts the sink's request. A PS_RDY is expected from the source within PSTransitionTimer / tPSTransition timer (min 450ms from request.) In the U3818DW trace, there is no PS_RDY from the monitor after it sends accept in response to the sink's request. The link is hard reset 121.3ms after the monitor sends accept.

The Laptop power supply trace shows how it's supposed to work:

# Laptop waits ~1 minute, then sends 2.4A max current request
0,v2.0,1465,0:47.708.180,629.000 us,10 B,,1,Sink:UFP,[7]Request,42 1E F0 C0 03 13 DD B1 D8 94
# Power supply acknowledges the request from laptop
0,,1469,0:47.708.821,489.000 us,6 B,,1,Source:DFP,[7]GoodCRC,61 0F 88 55 80 AD
# Power supply accepts laptop request
0,v2.0,1472,0:47.709.751,492.000 us,6 B,,1,Source:DFP,[3]Accept,63 07 38 BF 6D 91
# Laptop acks accept from power supply
0,,1475,0:47.710.297,493.000 us,6 B,,1,Sink:UFP,[3]GoodCRC,41 06 8E C9 D8 41
# Power supply sends PS_RDY
0,v2.0,1478,0:47.975.745,492.000 us,6 B,,1,Source:DFP,[4]PS_RDY,66 09 7A 66 A2 0B
# Laptop acks PS_RDY from power supply
0,,1481,0:47.976.213,497.000 us,6 B,,1,Sink:UFP,[4]GoodCRC,41 08 89 E4 60 A6
# The laptop goes to sleep and stays asleep.

 

The Dell U3818DW trace shows how the monitor violates USB Type-C PD protocol and causes a infinite sleep/wake loop:

# Laptop waits ~1 minute, then sends a 3A max current request
0,v2.0,635,2:00.591.836,625.000 us,10 B,,2,Sink:DFP,[2]Request,62 14 2C B1 04 13 CB 3E 34 AF
# Monitor acks the request from laptop
0,,639,2:00.592.359,495.000 us,6 B,,2,Source:UFP,[2]GoodCRC,41 05 34 98 D1 D8
# Monitor Accepts laptop request
0,v2.0,642,2:00.593.160,491.000 us,6 B,,2,Source:UFP,[5]Accept,43 0B B1 D7 5F 0D
# Laptop acks accept from monitor
0,,645,2:00.593.693,496.000 us,6 B,,2,Sink:DFP,[5]GoodCRC,61 0A 07 A1 EA DD
# The link is hard reset before PSTransitionTimer/tPSTransition timer expires (min 450ms from request)
0,,648,2:00.714.550,276.000 us,0 B,,2,,Hard Reset,

# This block shows the laptop and monitor starting the USB-C link all over again after the hard reset
0,v2.0,680,2:03.100.661,623.000 us,10 B,,2,DFP/UFP,[0]VDM:DiscIdentity,4F 10 01 80 00 FF F0 1D A7 5B
0,,684,2:03.101.287,500.000 us,6 B,,2,Cable,[0]GoodCRC,41 01 2D 5C BC DF
0,v2.0,687,2:03.102.852,1.167.000 ms,26 B,,2,Cable,[0]VDM:DiscIdentity,4F 51 41 80 00 FF C4 06 00 18 8F 00 00 00 52 32 80 C1 51 40 08 23 F9 AE A6 BF
0,,695,2:03.104.025,495.000 us,6 B,,2,DFP/UFP,[0]GoodCRC,41 00 BB 6C BB A8
0,v2.0,698,2:03.105.323,1.023.000 ms,22 B,,2,Source:DFP,[0]Source_Cap,61 41 2C 91 01 0C 2C D1 02 00 2C B1 04 00 F4 41 16 00 9B 88 45 B1
0,,705,2:03.106.458,496.000 us,6 B,,2,Sink:UFP,[0]GoodCRC,41 00 BB 6C BB A8
0,v2.0,708,2:03.120.315,625.000 us,10 B,,2,Sink:UFP,[0]Request,42 10 B8 E1 06 43 08 F6 DB 5A
0,,712,2:03.121.046,495.000 us,6 B,,2,Source:DFP,[0]GoodCRC,61 01 8F 78 38 4A
0,v2.0,715,2:03.121.631,495.000 us,6 B,,2,Source:DFP,[1]Accept,63 03 21 7B 00 96
0,,718,2:03.122.341,496.000 us,6 B,,2,Sink:UFP,[1]GoodCRC,41 02 97 0D B5 46
0,v2.0,721,2:03.157.619,495.000 us,6 B,,2,Source:DFP,[2]PS_RDY,66 05 51 2A 14 02
0,,724,2:03.158.221,493.000 us,6 B,,2,Sink:UFP,[2]GoodCRC,41 04 A2 A8 D6 AF
0,v2.0,727,2:03.159.492,491.000 us,6 B,,2,Source:DFP,[3]DR_Swap,69 07 B2 57 82 6B
0,,730,2:03.160.202,492.000 us,6 B,,2,Sink:UFP,[3]GoodCRC,41 06 8E C9 D8 41
0,v2.0,733,2:03.164.098,493.000 us,6 B,,2,Sink:UFP,[1]Accept,43 02 15 6F 83 74
0,,736,2:03.164.809,491.000 us,6 B,,2,Source:DFP,[1]GoodCRC,61 03 A3 19 36 A4
0,v2.0,739,2:03.270.866,629.000 us,10 B,,2,Sink:DFP,[2]VDM:DiscIdentity,6F 14 01 80 00 FF 06 BE 8B A9
0,,743,2:03.271.390,495.000 us,6 B,,2,Source:UFP,[2]GoodCRC,41 05 34 98 D1 D8
0,v2.0,746,2:03.272.209,1.023.000 ms,22 B,,2,Source:UFP,[4]VDM:DiscIdentity,4F 49 41 80 00 FF 3C 41 00 C4 51 04 00 00 10 00 5F B0 37 7C 30 CC
0,,754,2:03.273.559,494.000 us,6 B,,2,Sink:DFP,[4]GoodCRC,61 08 2B C0 E4 33
0,v2.0,757,2:03.277.347,625.000 us,10 B,,2,Sink:DFP,[3]VDM:DiscSVID,6F 16 02 80 00 FF 88 42 FE C1
0,,761,2:03.278.084,494.000 us,6 B,,2,Source:UFP,[3]GoodCRC,41 07 18 F9 DF 36
0,v2.0,764,2:03.278.810,759.000 us,14 B,,2,Source:UFP,[5]VDM:DiscSVID,4F 2B 42 80 00 FF 00 00 01 FF 07 1E 4C 91
0,,769,2:03.279.674,496.000 us,6 B,,2,Sink:DFP,[5]GoodCRC,61 0A 07 A1 EA DD
0,v2.0,772,2:03.283.574,629.000 us,10 B,,2,Sink:DFP,[4]VDM:DiscMode,6F 18 03 80 01 FF CD AA 69 DF
0,,776,2:03.284.415,491.000 us,6 B,,2,Source:UFP,[4]GoodCRC,41 09 1F D4 67 D1
0,v2.0,779,2:03.285.139,759.000 us,14 B,,2,Source:UFP,[6]VDM:DiscMode,4F 2D 43 80 01 FF 45 00 1C 00 28 9F 04 9B
0,,784,2:03.285.961,496.000 us,6 B,,2,Sink:DFP,[6]GoodCRC,61 0C 32 04 89 34
0,v2.0,787,2:03.290.009,493.000 us,6 B,,2,Sink:DFP,[5]VCONN_Swap,6B 0A 8D 49 05 27
0,,790,2:03.290.719,491.000 us,6 B,,2,Source:UFP,[5]GoodCRC,41 0B 33 B5 69 3F
0,v2.0,793,2:03.291.170,495.000 us,6 B,,2,Source:UFP,[7]Accept,43 0F A8 13 32 0A
0,,796,2:03.291.880,492.000 us,6 B,,2,Sink:DFP,[7]GoodCRC,61 0E 1E 65 87 DA
0,v2.0,799,2:03.295.895,492.000 us,6 B,,2,Sink:DFP,[6]PS_RDY,66 0C F5 92 C8 7B
0,,802,2:03.296.502,495.000 us,6 B,,2,Source:UFP,[6]GoodCRC,41 0D 06 10 0A D6
0,v2.0,806,2:03.343.496,493.000 us,6 B,,2,DFP/UFP,[0]Soft_Reset,4D 00 B7 23 0E 04
0,,809,2:03.344.203,500.000 us,6 B,,2,Cable,[0]GoodCRC,41 01 2D 5C BC DF
0,v2.0,812,2:03.345.555,496.000 us,6 B,,2,Cable,[0]Accept,43 01 AF 3E 8A ED
0,,815,2:03.346.161,496.000 us,6 B,,2,DFP/UFP,[0]GoodCRC,41 00 BB 6C BB A8
0,v2.0,818,2:03.347.451,628.000 us,10 B,,2,DFP/UFP,[1]VDM:DiscIdentity,4F 12 01 80 00 FF 90 4E 67 21
0,,822,2:03.347.976,500.000 us,6 B,,2,Cable,[1]GoodCRC,41 03 01 3D B2 31
0,v2.0,825,2:03.349.540,1.164.000 ms,26 B,,2,Cable,[1]VDM:DiscIdentity,4F 53 41 80 00 FF C4 06 00 18 8F 00 00 00 52 32 80 C1 51 40 08 23 84 AF 62 5B
0,,833,2:03.350.811,496.000 us,6 B,,2,DFP/UFP,[1]GoodCRC,41 02 97 0D B5 46
0,v2.0,836,2:03.352.495,625.000 us,10 B,,2,Sink:DFP,[7]VDM:EnterMode,6F 1E 04 81 01 FF E3 0D 3C CC
0,,840,2:03.353.230,491.000 us,6 B,,2,Source:UFP,[7]GoodCRC,41 0F 2A 71 04 38
0,v2.0,843,2:03.354.010,627.000 us,10 B,,2,Source:UFP,[0]VDM:EnterMode,4F 11 44 81 01 FF 39 C7 D4 D2
0,,847,2:03.354.752,493.000 us,6 B,,2,Sink:DFP,[0]GoodCRC,61 00 19 48 3F 3D
0,v2.0,850,2:03.358.760,761.000 us,14 B,,2,Sink:DFP,[0]VDM:DPStatus,6F 20 10 81 01 FF 01 00 00 00 09 16 C9 AA
0,,855,2:03.359.626,495.000 us,6 B,,2,Source:UFP,[0]GoodCRC,41 01 2D 5C BC DF
0,v2.0,858,2:03.360.371,756.000 us,14 B,,2,Source:UFP,[1]VDM:DPStatus,4F 23 50 81 01 FF 0A 00 00 00 F0 6C 85 22
0,,863,2:03.361.344,493.000 us,6 B,,2,Sink:DFP,[1]GoodCRC,61 02 35 29 31 D3
0,v2.0,866,2:03.365.245,758.000 us,14 B,,2,Sink:DFP,[1]VDM:DPConfigure,6F 22 11 81 01 FF 06 04 00 00 74 AE 4B D2
0,,871,2:03.366.004,495.000 us,6 B,,2,Source:UFP,[1]GoodCRC,41 03 01 3D B2 31
0,v2.0,874,2:03.367.024,627.000 us,10 B,,2,Source:UFP,[2]VDM:DPConfigure,4F 15 51 81 01 FF 54 C6 93 40
0,,878,2:03.367.666,496.000 us,6 B,,2,Sink:DFP,[2]GoodCRC,61 04 00 8C 52 3A
0,v2.0,882,2:04.363.087,755.000 us,14 B,,2,Source:UFP,[3]VDM:Attention,4F 27 06 81 01 FF 8A 00 00 00 86 71 79 01
0,,887,2:04.363.721,492.000 us,6 B,,2,Sink:DFP,[3]GoodCRC,61 06 2C ED 5C D4
0,v2.0,890,2:05.650.323,759.000 us,14 B,,2,Source:UFP,[4]VDM:Attention,4F 29 06 81 01 FF 8A 01 00 00 23 C0 79 C8
0,,895,2:05.651.086,496.000 us,6 B,,2,Sink:DFP,[4]GoodCRC,61 08 2B C0 E4 33
0,v2.0,898,2:09.150.899,759.000 us,14 B,,2,Source:UFP,[5]VDM:Attention,4F 2B 06 81 01 FF 8A 01 00 00 A5 E8 8F E6
0,,903,2:09.151.872,496.000 us,6 B,,2,Sink:DFP,[5]GoodCRC,61 0A 07 A1 EA DD

# The laptop waits ~1 minute, then the request->accept->NO PS_RDY defect->hard reset occurs again, then the link starts over again, etc.
# The loop repeats forever.