ZHCAFH9 July   2025 TPS55288 , TUSB1044

 

  1.   1
  2.   摘要
  3.   商标
  4. 1简介
  5. 2TPS65992S 应用工具中的 I2C 控制器配置
  6. 3通过 I2C3 配置 TPS55288 降压/升压转换器
  7. 4通过 I2C3 配置 TUSB1044 转接驱动器
  8. 5I2C 事件表汇总
  9. 6参考资料

通过 I2C3 配置 TUSB1044 转接驱动器

TUSB1044 负责根据 Type-C 电缆方向和交替模式状态路由和调节高速信号(USB3 SuperSpeed 通道和可选的 DisplayPort 通道)。通常,TUSB1044 可以在引脚控制 (GPIO) 模式下运行,但在本设计中,我们使用 I2C 控制模式,通过 PD 控制器实现细粒度的动态控制。通过 TPS65992S I2C 控制器,TUSB1044 在发生各种事件时进行配置:端口上电、电缆连接(带方向)和 DisplayPort 模式进入。所有与 TUSB1044 相关的 I2C 命令都分配给 PD 控制器表中的地址索引 1(外设地址 0x12)并占用事件索引 9–28。

我们配置中使用的 TUSB1044 的主要寄存器包括:

  • General_1(寄存器 0x0A):该寄存器控制 TUSB1044 运行模式和特定覆盖操作。0x0A 中的重要字段:
    • 位 [1:0] CTLSEL – 选择数据模式:0 = 禁用所有通道、1 = 仅启用 USB3、2 = 启用四个 DisplayPort 通道(仅 DP)、3 = USB3 + 两个 DP 通道。
    • 位 [2] FLIP_SEL – 设置高速多路复用器的方向(翻转):0 = 正常方向、1 = 翻转方向。
    • 位 [4] EQ_OVERRIDE – 设置为 1 时,允许使用 I2C 寄存器中的 EQ 设置(覆盖引脚配置的 EQ 电平)。我们启用了此功能,从而允许通过 I2C 对 EQ 进行编程。
    • 位 [5] SWAP_SEL – 如果设置,则全局交换通道方向(DFP 与 UFP)。在源端器件中,我们通常将其保持为 0(无交换),除非设计需要反转方向(例如,用于接收端应用)。我们作为 DP 源端的配置保持 SWAP_SEL = 0(默认值)。
    • 位 [3] HPD_IN_OVERRIDE – 未在我们的流程中使用(控制 HPD 输入覆盖,用于接收端应用)。
  • General_3(寄存器 0x0C):控制转接驱动器的 VOD(电压输出差分)和直流增益 设置,以及用于在 I2C 模式下设置端口数据角色 (Dir) 的字段。重要字段:

    • 位 [6] VOD_DCGAIN_OVERRIDE – 1 以覆盖 VOD/直流增益引脚并使用寄存器设置。我们将其设置为 1,以通过 I2C 对振幅进行编程。

    • 位 [5:2] VOD_DCGAIN_SEL – 4 位复合字段,该复合字段会为所有通道选择 VOD 线性度和直流增益设置。这本质上对两个 2 位引脚设置(CFG1 和 CFG0)进行编码,否则会设置 EQ 增益。在我们的设计中,我们选择了可针对预期电缆长度提供适当信号振幅的设置。(在提供的配置中,写入的值对应于特定的引脚设置组合——请参阅下文)。

    • 位 [1:0] DIR_SEL – 设置器件数据角色:0 = USB 和 DP 交替模式源端、1 = USB 和 DP 交替模式接收端、2 = USB + 自定义交替模式源端、3 = USB + 自定义交替模式接收端。我们的设计是源端(例如,笔记本电脑或输出 DisplayPort 的扩展坞),因此我们使用 DIR_SEL = 0。

  • EQ 控制寄存器(0x10、0x11、0x20、0x21):这些寄存器可配置每个高速通道的均衡设置。TUSB1044 有四个高速差分对,我们可以将其视为两个上行通道和两个下行通道,每个通道都有 TX 和 RX 方向。在 I2C 模式下:

    • 0x10:UFP1_EQ – 位 7:4 设置上行端口通道 1 (UTx1) 的 TX EQ,位 3:0 设置上行通道 1 (URx1) 的 RX EQ。

    • 0x11:UFP2_EQ – 同样,用于上行通道 2(UTx2 和 URx2)。

    • 0x20:DFP1_EQ – 位 7:4 用于下行端口通道 1(DTx1,转到连接器),位 3:0 用于下行 RX1 (DRx1)。

    • 0x21:DFP2_EQ – 下行通道 2 (DTx2/DRx2) 的 EQ 设置。

通过写入这些寄存器,我们可以微调每个通道的信号完整性。在我们的用例中,我们对为 USB3 和 DP 信号推荐的某些 EQ 值进行编程(我们配置中出现的值 0x66 和 0x33 对应于特定的 EQ 增益设置)。

下面介绍了如何进行 TPS65992S 配置,以便在各种事件中控制 TUSB1044:

上电复位(初始配置)

在 PD 控制器上电复位 时,我们希望 TUSB1044 在启用 I2C 控制的情况下以安全、禁用的状态启动。固件触发:

  • 将 0x10 写入 TUSB1044 寄存器 0x0A。数据 0x10(十六进制)对应于二进制 0001_0000。查看位定义:这将设置位 4 (EQ_OVERRIDE) = 1,所有其他较低位 2:0 = 0(CTLSEL = 000b,这意味着禁用所有高速通道)。换句话说,我们将启用 I2C EQ 覆盖,但保持转接驱动器 TX/RX 路径关闭。这在复位时是一个很好的默认设置——转接驱动器在我们进一步配置转接驱动器之前不会转发任何高速信号,并且转接驱动器依赖于寄存器来实现 EQ 设置,而不是引脚。本质上,0x10 会在软件控制下将 TUSB1044 置于空闲状态。(复位时,TUSB1044 默认值也可以将通道禁用,但写入 0x10 会明确验证模式和覆盖位是否正确。)

此命令会使 TUSB1044 保持未驱动任何信号,并准备好针对接下来的任何内容(USB 或交替模式)进行配置。这类似于在检测到电缆连接之前将转接驱动器保持在复位或待机状态。我们还根据需要对其他事件(如分离)使用相同的值以返回此基准。

 寄存器 0x0A 上的上电复位事件图 4-1 寄存器 0x0A 上的上电复位事件
分离事件

在发生分离(电缆拔出)事件时,PD 控制器会再次将 0x10 发送至 TUSB1044 的寄存器 0x0A。这将写入与上电时相同的值:EQ_OVERRIDE = 1、CTLSEL = 0(通道关闭)。分离时执行此操作会有效地关闭转接驱动器通道切换并返回默认状态。任何有效的交替模式配置都将被清除,并且器件下次为新的连接序列做好准备。本质上,无论是在初始上电还是分离时,TUSB1044 都会被指示为禁用开关(无 USB3 或 DP 通道处于活动状态)并依靠 I2C 进行进一步配置。这可以防止在未连接任何器件时通过或锁存先前配置的不必要信号。

(注意:某些设计还可以在分离时切换 TUSB1044 硬件复位引脚。使用所示的 I2C 命令可以通过将控制寄存器写入已知的安全状态,无需额外的 GPIO 切换即可实现类似的结果。)

 寄存器 0x0A 上的分离事件图 4-2 寄存器 0x0A 上的分离事件

连接事件 – 电缆方向处理

连接 USB-C 电缆后,TPS65992S 会检测方向(通过 CC 引脚),并启动 USB-USB PD 协商。在进入交替模式之前,即时的任务是为 TUSB1044 内的 SuperSpeed 多路复用器 配置正确的方向,以便 USB3 信号(和未来的 DP 信号)能够正确路由。TPS65992S 固件区分了两个方向情况,通常标记为 ATTACH_UUATTACH_UD(这些标签来自 PD 控制器事件定义 – 本质上是指上行端口上行下行端口下行 方向,或者等效电缆未翻转电缆翻转)。更简单地说:

  • ATTACH_UU 对应于连接器 A 侧朝上的方向(通道的一个特定映射),
  • ATTACH_UD 对应于旋转 180º 的连接器(反向通道映射)。

对于每个方向,我们都定义了对 TUSB1044 的 I2C 写入序列,以设置正常 USB3 运行(并准备潜在的 DP 模式):

Attach_UU 序列:(默认方向的电缆)PD 控制器快速连续发出以下写入:

  1. 将 0x11 写入寄存器 0x0A:这会将 General_1 寄存器设置为 0x11 十六进制(0001_0001 二进制)。与 0x10 相比,现在有位 0 = 1 (CTLSEL = 001b),同时保持位 4 = 1 和位 2 = 0。CTLSEL = 1 表示启用了仅 USB3.1 模式。因此,0x11 会在给定方向下通过转接驱动器打开 USB3 路径。此处的位 2 (FLIP_SEL) 为0,表示采用正常方向(因为这是 UU 情况)。因此,0x11 将 TUSB1044 配置为 USB3 模式,而不是翻转

解释说明:TUSB1044 将 SuperSpeed 发送和接收通道从主机侧连接到连接器上与非翻转插头插入相对应的 TX/RX 引脚。此时,DP 通道(如有)保持禁用状态(因为 CTLSEL = 1 会选择仅 USB3)。EQ_OVERRIDE 保持为 1,因此我们使用编程的 EQ 设置(在后续步骤中设置)。

  1. 将 0x58 写入寄存器 0x0C:我们将 0x58 写入 General_3。二进制格式的 0x58 = 0101_1000。分解:
    • 设置位 6 = 0x40(0x58 包含 0x40),因此 VOD_DCGAIN_OVERRIDE = 1(使用寄存器进行 VOD/DC VOD 设置)。
    • 位 5:2 = 0b0110。根据数据表,该字段 [5:2] 编码 CFG1 和 CFG0 引脚设置等效的值。0b0110 对应于 CFG1 = 01 (R) 和 CFG0 = 10 (F)。换句话说,我们选择了一个特定的 VOD/直流增益电平(一个可以对应于中等 EQ 设置—RF 可能表示电阻器和悬空组合)。这可能是根据 TUSB1044 数据表建议或实验室调优而确定的。

    • 位 1:0 = 0b00,设置 DIR_SEL = 0,表示源模式(USB + DP 源)。这与我们的系统角色相匹配(TUSB1044 将上行侧视为主机侧,将下行 侧视为连接器侧)。

因此,0x58 本质上表示:使用 I2C 提供的 VOD/直流增益,应用特定的增益设置(R-F 配置),并确认器件是源端。我们在连接时编写此文件,以保证针对即将发生的信号正确配置转接驱动器的输出电平。

  1. 将 0x66 0x66 写入寄存器 0x10:这是对 UFP1_EQ 寄存器 (0x10) 的两字节写入。数据 0x66 0x66 会将 UFP1_EQ 的高四位和低四位配置为 0x6。具体来说,0x10 控制了一对 UFP TX/RX EQ:
    • 对于 UFP 通道 1,0x66 作为单字节表示 TX EQ = 0x6 且 RX EQ = 0x6。我们发送两个字节 0x66,这可能意味着我们也打算以单个多字节序列(0x10,后跟 0x10 和 0x11 的数据)中的下一个寄存器 (0x11) 为目标。不过,配置列表显示 0x66 0x66 到 0x10,这实际上可以一次性加载 0x10 = 0x66 和 0x11 = 0x66(具体取决于 PD 工具如何构建多字节写入帧)。

本质上,我们会将 TX 和 RX 的所有上行 EQ(两个通道)设置为中值(0 × 6 是中程设置)。这可以是运行 USB3 或 DP 时转接驱动器主机控制器侧的建议 EQ 设置。这样会覆盖基于引脚的默认 EQ 并验证信号质量(补偿电路板迹线损耗等)。

  1. 将 0x33 0x33 写入寄存器 0x20:另一个两字节写入,这次写入到 DFP1_EQ (0x20)。0x33 0x33 同样将 TX 和 RX 的下行(连接器侧)通道 1(如果是两个字节,则可能为通道 2)EQ 设置设为 0x3。值 0x3 的增益略低于 0x6——这可能表明转接驱动器与连接器的连接较短或表示电缆的默认要求。本质上,我们也对两个通道的下行(USB-C 连接器)EQ 进行编程。

上述 EQ 设置的组合(UFP 侧 0x6、DFP 侧 0x3)可能由 TI 的指南或实验室调优决定,以便通过给定 PCB 和连接器的 USB3 信号完整性和合规性测试。

这四次写入(0x0A、0x0C、0x10、0x20)完成了 Attach_UU 配置。此时,对于非翻转电缆插入,TUSB1044 设置为活动 USB3 模式:连接正确的高速通道并调整 EQ/增益。

Attach_UD 序列:(电缆翻转方向)当电缆反转时,PD 控制器会触发 ATTACH_UD 事件。序列非常相似,但方向不同时会有所不同:

  1. 将 0x15 写入寄存器 0x0A:0x15 十六进制 = 0001_0101 二进制。与 0x11 (0001_0001) 进行比较:

    • 位 2 (FLIP_SEL) 现在为 1(因为 0x15 设置了位 2,即 0x15 = 21(十进制),包括 0x04)。
    • 位 1:0 仍为01(CTLSEL = 1,仅 USB3 模式)。
    • 位 4 保持为 1(EQ_OVERRIDE 开启)。

      因此,0x15 配置启用仅 USB3,但方向翻转。这会通知 TUSB1044 相应地路由通道(相对于器件内部多路复用器交换 A 端口通道和 B 端口通道)。本质上,该器件将 USB3 信号连接到与 UU 情况相比的一组高速引脚,以解决翻转的电缆问题。

  2. 0x58 至 0x0C:General_3 寄存器获取与之前相同的 0x58 值。这实际上与方向无关——VOD/直流增益设置和 DIR(源端)无论翻转如何,都保持不变。因此,我们对 UU 和 UD 使用相同的 0x58 配置。(这很有道理:翻转方向不会改变我们是具有特定 EQ 偏好的源端这一事实;这只会改变哪些物理通道承载信号。)
  3. 将 0x66 0x66 写入寄存器 0x10:我们再次将相同的 EQ 设置写入 UFP EQ 寄存器。在这里,我们必须考虑:在翻转方向上,哪些 TUSB1044 通道对应于哪个物理连接?该器件会交换通道 1通道 2 的通道使用情况,如 FLIP_SEL 所示。但是,通过将相同的值写入两个 UFP 通道(0x10 和 0x11 = 0x66,通过采用两字节序列),我们可以验证无论哪个通道成为 USB 的实际 TX/RX,EQ 都设置为 0x6。换句话说,在我们的配置中,两个上行通道都具有相同的 EQ,因此翻转不需要因对称性而需要不同的值。
  4. 将 0x33 0x33 写入寄存器 0x20:同样,我们将两个下行通道的 EQ 设置为 0x3(0x20 和 0x21 均通过多字节写入获得 0x33)。这种对称性意味着 UD 情况在两个可能的连接器方向上使用相同的 EQ 强度。

结果是 UD 序列仅在 0x0A 寄存器值(0x15 与 0x11) 中不同。所有其他寄存器写入(0x0C、0x10、0x20 和数据)在 UU 和 UD 连接之间是相同的。这很有道理:唯一改变的是翻转位,它告诉转接驱动器以哪种方式路由通道。通过比较这两者,我们可以看到 0x0A = 0x11 与 0x15 之间存在 0x04 的差异,两者确实对应于 FLIP_SEL 位。其他所有内容(EQ 增益等)都保持不变,表明我们的设计不需要针对翻转和未翻转设置不同的增益设置,而是以相同的电气方式进行处理。

连接事件序列(UU 或 UD)后,TUSB1044 将配置为正常 USB3 操作。如果未启动交替模式,系统将继续在 USB3 流量流经转接驱动器的情况下运行。连接时的 PD 控制器工作基本上已完成:这可以保持高速路径方向正确并得到优化。

 寄存器 0x0A 上的连接事件图 4-3 寄存器 0x0A 上的连接事件
 寄存器 0x0C 上的连接事件图 4-4 寄存器 0x0C 上的连接事件
 寄存器 0x10 上的连接事件图 4-5 寄存器 0x10 上的连接事件
 寄存器 0x20 上的连接事件图 4-6 寄存器 0x20 上的连接事件
 寄存器 0x0A 上的连接事件图 4-7 寄存器 0x0A 上的连接事件
 寄存器 0x0C 上的连接事件图 4-8 寄存器 0x0C 上的连接事件
 寄存器 0x10 上的连接事件图 4-9 寄存器 0x10 上的连接事件
 寄存器 0x20 上的连接事件图 4-10 寄存器 0x20 上的连接事件

DisplayPort 交替模式配置

如果连接的伙伴器件(接收端器件,例如监视器或扩展坞)支持 DisplayPort 交替模式,并且 PD 协商进入该模式,则会触发额外的 I2C 事件以重新配置 TUSB1044,从而实现 DisplayPort 运行。在我们的 PD 控制器配置中,我们定义了与特定 DisplayPort 配置步骤 相对应的事件,为方便起见标记为 DP_CONFIG_ACEDP_CONFIG_BDF,每个都有方向的变体(UU 或 UD)。这些标签指的是标准 USB-C DisplayPort 引脚分配——通常是引脚分配 C 和 EB、D 和 F。本质上,PD 控制器会根据四个高速通道用于 DisplayPort 的方式使用不同的配置序列。一种配置可以适用于 4 通道 DisplayPort(无 USB3 数据),另一种配置可以适用于 2 通道 DisplayPort + USB3 运行,这是 DP 交替模式的共模。确切的命名(ACE、BDF)源于这样一个事实:源端可以广播某些引脚映射的支持(例如,4 通道的引脚分配 C 或 E、2 通道 + USB 的引脚分配 D 或 F)。我们的配置可确保在每种情况下正确设置 TUSB1044 以支持通道布线和 EQ。

我们总结了这些序列:

  • DP_CONFIG_ACE_UU:该事件对应于进入 DisplayPort 交替模式配置,该配置使用非翻转方向的(A、C、E)映射。在此模式下,通常所有四个通道都专用于 DP(USB3 被丢弃)。PD 控制器写入:
    • 0x1A 至 0x0A:0x1A 十六进制 = 0001_1010 二进制。位 [1:0] = 10 (CTLSEL = 2),根据 TUSB1044,这表示已启用 4 个 DisplayPort 通道。位 2 = 0(UU 方向),位 4 = 1(EQ 覆盖仍开启)。因此,0x1A 会将转接驱动器以正常方向切换为 DP 模式(所有通道均携带 DP)。
    • 将 0x55 0x55 写入寄存器 0x10:对 UFP1_EQ(和 UFP2_EQ)的两字节写入。数据 55 55 将每个上行 EQ 寄存器设置为 0x55。中断 0x55:每个通道上的 TX 为 0x5,RX 为 0x5。因此,在 DP 模式下,上行侧的 EQ 设置略有不同:0x5(比我们用于 USB 的 0x6 低一位)。这可以优化 DP 信号质量(因为 DP 信号可能具有不同的均衡需求,或者 DP 源端可以执行一些 EQ)。

在此事件中,我们没有明确看到向 0x20 写入值(这可能表明下行 EQ 保持为设置状态,或者 4 通道 DP UU 不需要更改)。假设下行(面向连接器)EQ 可以保持在最后设置的任何值(连接时为 0x33)。这是合理的,因为无论是承载 USB 还是 DP,连接器的物理通道特性都不会改变;但是,也可以针对 DP 频率进行调整。在我们的配置表中,ACE_UU 未列出新的 0x20 写入,因此我们在 DFP EQ 上保持与之前相同的 0x33 0x33。

  • DP_CONFIG_ACE_UD:这是与上述方向相对应的翻转方向:
    • 0x1E 至 0x0A:0x1E 十六进制 = 0001_1110。位 [1:0] = 10(CTLSEL = 2,仍为 4 通道 DP),位 2 = 1(翻转方向),位 4 = 1(EQ 覆盖开启)。因此 0x1E 表示 DP 4 通道模式,翻转方向
    • 将 0x55 0x55 写入寄存器 0x10:将相同的 55 55 数据写入 UFP EQ 寄存器。我们再次看到,ACE_UU 和 ACE_UD 之间的唯一区别是 0x0A 值(0x1A 与 0x1E)。0x04 差异表示翻转位,与连接事件完全相同。寄存器 0x10 的数据保持为 0x55 0x55(由于翻转,因此未发生变化,因为我们再次将两个通道设置为相同的值)。

和以前一样,ACE_UD 也未显示新的 DFP EQ 写入,这意味着我们序列中的这个 DP 模式条目不会改变 DFP 侧 EQ。

  • DP_CONFIG_BDF_UU:这对应于不同的引脚分配场景——可能是 2 个 DP 通道(B 和 D)+ USB3 (F)。在这种情况下,PD 控制器写入:

    • 0x1B 至 0x0A:0x1B 十六进制 = 0001_1011。位 [1:0] = 11 (CTLSEL = 3),这意味着 USB3 + 2 通道 DP 模式。位 2 = 0(无翻转,UU),位 4 = 1(EQ 覆盖开启)。因此,0x1B 将 TUSB1044 配置为路由 DP 的四个通道中的两个通道,并在正常方向上为 USB3 保持一对通道。例如,这对应于对 DP 使用两个通道(HBR 通道),并将其他两个通道用于 USB3 TX/RX。
    • 将 0x66 0x55 写入寄存器 0x10:我们有一个连接 UFP EQ 寄存器的两字节序列,其中包含数据 66 55。这与以前的情况不同。可能的含义:UFP1_EQ = 0x66、UFP2_EQ = 0x55(由于第一个字节 0x66 进入寄存器 0x10,第二个字节 0x55 进入寄存器 0x11)。实际上,我们将一个上行通道 EQ 设置为 0x6,而另一个设置为 0x5。为什么?因为在 BDF 场景中,一个上行通道传输 USB3(我们之前调优为 0x6),而另一个通道传输 DP(我们确定 0x5 已足够)。因此,通道 1(例如仍用于 USB3 的通道 1)可以使用 EQ = 6,而通道 2(承载 DP 通道)使用 EQ = 5。0x66 0x55 的顺序表明:UFP1_EQ = 0x66(对于 USB3 通道),UFP2_EQ = 0x55(对于 DP 通道)。
    • 将 0x33 0x33 写入寄存器 0x20:以 33 33 对 DFP1_EQ (0x20) 和 DFP2_EQ (0x21) 进行两字节写入。无论携带的信号如何,这都会将下行通道 EQ 设置为 0x3(与之前相同)。有趣的是,该表意味着在 BDF_UU 中,0x20 没有更新(即使这是与连接事件相同的值)。或许这样做只是为了保证 DP 通道输出(现在可能占用不同的物理线路)设置为已知 EQ。在任何情况下,DFP1_EQ 和 DFP2_EQ 都为 0x33,两者对称,相对于先前的值保持不变。
  • DP_CONFIG_BDF_UD:双通道 DP + USB 场景的翻转情况:

    • 0x1F 至 0x0A:0x1F 十六进制 = 0001_1111。位 [1:0] = 11 (USB3 + 2DP)、位 2 = 1(翻转)、位 4 = 1(覆盖开启)。因此,0x1F 本质上为 0x1B 加上翻转位 (0x04),即“USB3 + 2DP,呈翻转方向”。
    • 将 0x55 0x66 写入寄存器 0x10:数据 55 66 是从 0x10 开始写入。这可能会设置 UFP1_EQ = 0x55 和 UFP2_EQ = 0x66。为什么与 UU 情况相比交换字节?因为在翻转时,承载 USB 与 DP 的两个上行通道的作用可以交换。在 UU 中,我们假设通道 1 是 USB,通道 2 是 DP(导致通道 1 为 66,通道 2 为 55)。在 UD 方向上,物理布线会导致相反的分配——通道 1 最终会承载 DP,而通道 2 承载 USB3(取决于通道的翻转方式)。PD 配置通过交换 EQ 设置来预测这一点:现在通道 1 获得 0x5,通道 2 获得 0x6。这可保证任何处理 USB3 的通道都具有较高的 EQ (0x6),处理 DP 的通道具有 0x5,即使翻转时也是如此。BDF_UU 和 BDF_UD 配置之间的显式差异(66 55 与 55 66)突出了方向翻转如何需要交换特定于通道的设置。
    • 将 0x33 0x33 写入寄存器 0x20:与 UU 一样,我们将 0x33 0x33 写入 DFP EQ 寄存器。在 BDF_UD 中,这可能是相同的操作:将两个下行通道保持在 EQ = 3。由于翻转并不能真正改变两个连接器通道(其中两个承载 DP,另一个承载 USB,可能还有一个未使用)具有相同的 EQ 这一事实,因此我们将它们保留原样。

DP 配置总结:PD 控制器使用两组与两个主要 DP 交替模式配置(4 通道与 2 通道)相对应的事件,并分别处理两种方向。在每种情况下,这都会将新值写入寄存器 0x0A 以切换 TUSB1044 模式(DP 或 DP + USB,并设置翻转状态),并调整 EQ 寄存器 0x10/0x11(有时还会调整 0x20/0x21)以在新模式下保持信号完整性。选择的值(为寄存器 0x0A 选择的 0x1A/1E、0x1B/1F 以及各种 EQ 代码)源自 TUSB1044 的要求:

  • 0x0A 值:主要在低 3 位方面有所不同。CTLSEL = 2(仅 DP);对于 DP+USB,= 3;对于方向,FLIP = 0 或 1。位 4 始终保持为 1(我们始终使用 EQ 覆盖模式)。

  • EQ 值:我们在上行侧为 USB3 通道使用 0x6,为 DP 通道使用 0x5,在下行侧则通用 0x3。这些特定代码来自 TI 的参考设计或实验室调优,旨在满足 USB3 Gen2 和 DP HBR2/HBR3 合规性要求。重要的部分不是确切的数字,而是 PD 控制器可以根据场景的需要进行更改。例如,如果某个特定设计需要为检测到的更长电缆提供不同的 EQ,则固件可能会使用不同的值(尽管我们的示例将每个模式的 EQ 保持不变)。

执行 DisplayPort 配置事件后,TUSB1044 完全处于交替模式配置中:通道会通过转接驱动器将 DisplayPort 从系统的 GPU 传输到 USB-C 连接器,并且(如果在 BDF 中)两个通道继续传输 USB3 数据。PD 控制器主动参与在此结束,系统会发送 DisplayPort AUX 握手等来照常设置监视器。TUSB1044 与协议无关,只需通过高速信号即可;我们只通过 I2C 有效地控制开关和增益。

 寄存器 0x0A 上的 DP 分配 ACE 配置事件图 4-11 寄存器 0x0A 上的 DP 分配 ACE 配置事件
 寄存器 0x10 上的 DP 分配 ACE 配置事件图 4-12 寄存器 0x10 上的 DP 分配 ACE 配置事件
 寄存器 0x0A 上的 DP 分配 ACE 配置事件图 4-13 寄存器 0x0A 上的 DP 分配 ACE 配置事件
 寄存器 0x10 上的 DP 分配 ACE 配置事件图 4-14 寄存器 0x10 上的 DP 分配 ACE 配置事件
 寄存器 0x0A 上的 DP 分配 BDF 配置事件图 4-15 寄存器 0x0A 上的 DP 分配 BDF 配置事件
 寄存器 0x10 上的 DP 分配 BDF 配置事件图 4-16 寄存器 0x10 上的 DP 分配 BDF 配置事件
 寄存器 0x20 上的 DP 分配 BDF 配置事件图 4-17 寄存器 0x20 上的 DP 分配 BDF 配置事件
 寄存器 0x0A 上的 DP 分配 BDF 配置事件图 4-18 寄存器 0x0A 上的 DP 分配 BDF 配置事件
 寄存器 0x10 上的 DP 分配 BDF 配置事件图 4-19 寄存器 0x10 上的 DP 分配 BDF 配置事件
 寄存器 0x20 上的 DP 分配 BDF 配置事件图 4-20 寄存器 0x20 上的 DP 分配 BDF 配置事件

通过这些连接和 DP 配置事件处理程序,TPS65992S 可确保在以下每个阶段正确配置 TUSB1044:初始连接(用于 USB 3.2 SuperSpeed 或基线运行)和转换到 DisplayPort 交替模式期间。所有必要的 I2C 写入配置完成后,PD 控制器固件会自动执行,从而无需专用 EC 或 MCU 来实时处理转接驱动器设置。