前言

最近更换了一块 4K 高刷,带 Type-C 一线通的显示器。但将其接到我的暗影精灵 4 笔记本上后,发现问题:笔记本提供的雷电3 Type-C 端口居然只支持 DP1.2… 它无法跑到高刷新率。

已知我笔记本的 MiniDP 接口为 DP1.4,那么我便开始搜寻一些功能奇特的产品,希望实现将主机上的 DP1.4 和 USB 接口合并成 Type-C 一线通接口。通常我们会用 Type-C 拓展坞把笔记本上的 Type-C 接口拓展出更多接口(包括视频),而我的需求逆其道而行,将视频和 USB 合并为 Type-C 一线通接口,因此可供选择的产品没那么多。

淘宝上能搜到的大多数产品都是适用于一些旧 VR 的线缆,他们多数只支持 DP1.2。唯一发现的几家,一家叫菲伯尔 FIBBR,售价 138 CNY,模具是他们品牌自己的。另外两家小店铺看着像公模,却还更贵了。

本来以为没有廉价方案时,最终在那天晚上刷 PDD 的时候刷到了一家叫 端口魔界 的店铺,以 43 CNY 的价格出售一块功能相同,还带 3 个 USB2.0 口的 PCBA。思考了一下,认为这个价格还挺合适,于是打算买一个试试水。先说结论:视频功能完整,USB 功能有待改善。

设备外围接口 & PCBA 特写

整个设备配备如下接口:

  • 1x Type-C 全功能口,用于连接到 Type-C 一线通显示器。
  • 1x Type-C 供电+数据接口,用于连接到主机传输数据,并给这个板子供电。
    *在将全功能口连接到一线通便携屏时,也作为为便携屏供电的取电口。但由于该接口无任何协议协商,供电能力较弱。该店铺也提供支持 PD 60W 的另一个版本,只不过我没买。
  • 1x DisplayPort 1.4 全尺寸母口,用于连接到主机的显示输出接口。
  • 3x USB 2.0 接口,用于利用其内置的 4 Port USB2.0 Hub 的剩余三个口,进行 USB 拓展。

以下特写内容来自 PDD 商品详情与评论,经确认与我手头的板子一致,因此我没有进行拍摄。

整体 局部1 局部2 局部3

很遗憾,这些芯片我都没有见过,且网上也检索不到相关信息。需要注意的是,虽然 USB 塑料舌片颜色为蓝色,但 USB 连接器上只有 4 Pin,为标准 USB 2.0 连接器而不是 3.0。

视频性能

测试环境 Fedora Linux 43,显卡 GTX 1060 6G,使用 NVIDIA 闭源驱动。

由于 GTX 1060 所属的 Pascal 架构支持 DP1.4 但并不支持 DSC,在 Windows 下无法支援在 4K 60Hz 以上刷新率的 RGB 4:4:4 输出,导致色彩令人不满意。然而在 Linux 环境下,居然能实现最高 4K 144Hz RGB 4:4:4 的输出。我不知道这是怎么实现的,nvidia-settings 中也完全没有暴露出任何有关信息。检索 Google 也未能查询到有关信息。比较神奇的是,使用开源 NVIDIA 驱动 nouveau 时也提供了 144Hz 的选项,但选用之后出现黑屏不显示,自动退回的情况。

基于此,我们姑且认为 Linux 下的 NVIDIA 闭源驱动施展了一些神秘魔法。

经测试,可以正常跑满 DP1.4 4K 144Hz 8 Bit RGB 4:4:4 输出。鉴于其应该是直接直通了 4 lanes 的 DP 1.4,理论上带宽不受该设备限制,也就是说 4K 170Hz 10 Bit RGB 4:4:4 应该也是没问题的。

USB 性能

通过 lsusb 命令,可以查看到其自带的 USB 2.0 Hub 为 STT 模式的 Hub。

相较更好的 MTT Hub,在接入 USB 2.0 以下的设备时存在性能损失。由于显示器的 USB3.0 Hub 通常是 MTT 模式的,这种内置 STT Hub 的节省成本设计有点令人遗憾,感觉还不如不加 Hub 直接直通,然后做小点。

最近苹果推出了新的 Studio Display XDR,5K 120Hz 10bit 的带宽要求会更高。如果有人将这类显示器接入非雷电设备,那么应该需要更高性能的转接器。如果将来有商家愿意做 DP2.0+ 的这类产品,希望他们能不要在这方面省成本吧(小声嘀咕)。

详细信息如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
$ sudo lsusb -v -d 34d1:0608

Bus 001 Device 109: ID 34d1:0608  USB2.0 HUB
Negotiated speed: High Speed (480Mbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         1 Single TT
  bMaxPacketSize0        64
  idVendor           0x34d1
  idProduct          0x0608 USB2.0 HUB
  bcdDevice            1.00
  iManufacturer           0
  iProduct                1 USB2.0 HUB
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0019
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval              12
Hub Descriptor:
  bLength               9
  bDescriptorType      41
  nNbrPorts             4
  wHubCharacteristic 0x00e0
    Ganged power switching
    Ganged overcurrent protection
    TT think time 32 FS bits
    Port indicators
  bPwrOn2PwrGood       50 * 2 milli seconds
  bHubContrCurrent    100 milli Ampere
  DeviceRemovable    0x00
  PortPwrCtrlMask    0xff
 Hub Port Status:
   Port 1: 0000.0100 power
   Port 2: 0000.0100 power
   Port 3: 0000.0100 power
   Port 4: 0000.0100 power
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         0 Full speed (or root) hub
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0001
  Self Powered

这个 USB Hub 的 Vendor ID 我从来没见过。若其 VID 不是瞎写的,那么经过检索,该 USB Hub 芯片来自 Chengdu CORPRO Technology Co., Ltd, 也就是 成都振芯科技股份有限公司。来自显示器的 USB Hub 挂在 Port 1 上,主板上其余 3 个 USB 口分别对应 Port 2 ~ 4。

其他测试

经过测试,上游是不需要从一线通取电的普通 Type-C 一线通显示器的情况下,单独使用 USB-A to Type-C 的连接线将主机 USB3.0 接口和这块板子的供电+数据口相连可以稳定工作。

不过需要注意的是,该板 USB 唤醒功能似乎存在一定问题:当设备处于睡眠模式时,无法通过连接在显示器 USB Hub 上的键鼠唤醒设备。经过测试,直接将显示器 Type-C 和笔记本 Type-C 直连无此问题,而上面 lsusb 列出的 Attributes 里又提到是可以 Remote Wakeup 的,于是怀疑可能是此类不同寻常的连接方式实现存在一些问题,不过无伤大雅。