ZHCAFH9 July 2025 TPS55288 , TUSB1044
TUSB1044 负责根据 Type-C 电缆方向和交替模式状态路由和调节高速信号(USB3 SuperSpeed 通道和可选的 DisplayPort 通道)。通常,TUSB1044 可以在引脚控制 (GPIO) 模式下运行,但在本设计中,我们使用 I2C 控制模式,通过 PD 控制器实现细粒度的动态控制。通过 TPS65992S I2C 控制器,TUSB1044 在发生各种事件时进行配置:端口上电、电缆连接(带方向)和 DisplayPort 模式进入。所有与 TUSB1044 相关的 I2C 命令都分配给 PD 控制器表中的地址索引 1(外设地址 0x12)并占用事件索引 9–28。
我们配置中使用的 TUSB1044 的主要寄存器包括:
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 控制的情况下以安全、禁用的状态启动。固件触发:
此命令会使 TUSB1044 保持未驱动任何信号,并准备好针对接下来的任何内容(USB 或交替模式)进行配置。这类似于在检测到电缆连接之前将转接驱动器保持在复位或待机状态。我们还根据需要对其他事件(如分离)使用相同的值以返回此基准。
图 4-1 寄存器 0x0A 上的上电复位事件在发生分离(电缆拔出)事件时,PD 控制器会再次将 0x10 发送至 TUSB1044 的寄存器 0x0A。这将写入与上电时相同的值:EQ_OVERRIDE = 1、CTLSEL = 0(通道关闭)。分离时执行此操作会有效地关闭转接驱动器通道切换并返回默认状态。任何有效的交替模式配置都将被清除,并且器件下次为新的连接序列做好准备。本质上,无论是在初始上电还是分离时,TUSB1044 都会被指示为禁用开关(无 USB3 或 DP 通道处于活动状态)并依靠 I2C 进行进一步配置。这可以防止在未连接任何器件时通过或锁存先前配置的不必要信号。
(注意:某些设计还可以在分离时切换 TUSB1044 硬件复位引脚。使用所示的 I2C 命令可以通过将控制寄存器写入已知的安全状态,无需额外的 GPIO 切换即可实现类似的结果。)
图 4-2 寄存器 0x0A 上的分离事件连接事件 – 电缆方向处理
连接 USB-C 电缆后,TPS65992S 会检测方向(通过 CC 引脚),并启动 USB-USB PD 协商。在进入交替模式之前,即时的任务是为 TUSB1044 内的 SuperSpeed 多路复用器 配置正确的方向,以便 USB3 信号(和未来的 DP 信号)能够正确路由。TPS65992S 固件区分了两个方向情况,通常标记为 ATTACH_UU 和 ATTACH_UD(这些标签来自 PD 控制器事件定义 – 本质上是指上行端口上行 和下行端口下行 方向,或者等效电缆未翻转 和电缆翻转)。更简单地说:
对于每个方向,我们都定义了对 TUSB1044 的 I2C 写入序列,以设置正常 USB3 运行(并准备潜在的 DP 模式):
Attach_UU 序列:(默认方向的电缆)PD 控制器快速连续发出以下写入:
将 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 设置(在后续步骤中设置)。
位 5:2 = 0b0110。根据数据表,该字段 [5:2] 编码 CFG1 和 CFG0 引脚设置等效的值。0b0110 对应于 CFG1 = 01 (R) 和 CFG0 = 10 (F)。换句话说,我们选择了一个特定的 VOD/直流增益电平(一个可以对应于中等 EQ 设置—R 和 F 可能表示电阻器和悬空组合)。这可能是根据 TUSB1044 数据表建议或实验室调优而确定的。
因此,0x58 本质上表示:使用 I2C 提供的 VOD/直流增益,应用特定的增益设置(R-F 配置),并确认器件是源端。我们在连接时编写此文件,以保证针对即将发生的信号正确配置转接驱动器的输出电平。
本质上,我们会将 TX 和 RX 的所有上行 EQ(两个通道)设置为中值(0 × 6 是中程设置)。这可以是运行 USB3 或 DP 时转接驱动器主机控制器侧的建议 EQ 设置。这样会覆盖基于引脚的默认 EQ 并验证信号质量(补偿电路板迹线损耗等)。
上述 EQ 设置的组合(UFP 侧 0x6、DFP 侧 0x3)可能由 TI 的指南或实验室调优决定,以便通过给定 PCB 和连接器的 USB3 信号完整性和合规性测试。
这四次写入(0x0A、0x0C、0x10、0x20)完成了 Attach_UU 配置。此时,对于非翻转电缆插入,TUSB1044 设置为活动 USB3 模式:连接正确的高速通道并调整 EQ/增益。
Attach_UD 序列:(电缆翻转方向)当电缆反转时,PD 控制器会触发 ATTACH_UD 事件。序列非常相似,但方向不同时会有所不同:
将 0x15 写入寄存器 0x0A:0x15 十六进制 = 0001_0101 二进制。与 0x11 (0001_0001) 进行比较:
位 4 保持为 1(EQ_OVERRIDE 开启)。
因此,0x15 配置启用仅 USB3,但方向翻转。这会通知 TUSB1044 相应地路由通道(相对于器件内部多路复用器交换 A 端口通道和 B 端口通道)。本质上,该器件将 USB3 信号连接到与 UU 情况相比的一组高速引脚,以解决翻转的电缆问题。
结果是 UD 序列仅在 0x0A 寄存器值(0x15 与 0x11) 中不同。所有其他寄存器写入(0x0C、0x10、0x20 和数据)在 UU 和 UD 连接之间是相同的。这很有道理:唯一改变的是翻转位,它告诉转接驱动器以哪种方式路由通道。通过比较这两者,我们可以看到 0x0A = 0x11 与 0x15 之间存在 0x04 的差异,两者确实对应于 FLIP_SEL 位。其他所有内容(EQ 增益等)都保持不变,表明我们的设计不需要针对翻转和未翻转设置不同的增益设置,而是以相同的电气方式进行处理。
连接事件序列(UU 或 UD)后,TUSB1044 将配置为正常 USB3 操作。如果未启动交替模式,系统将继续在 USB3 流量流经转接驱动器的情况下运行。连接时的 PD 控制器工作基本上已完成:这可以保持高速路径方向正确并得到优化。
图 4-3 寄存器 0x0A 上的连接事件
图 4-4 寄存器 0x0C 上的连接事件
图 4-5 寄存器 0x10 上的连接事件
图 4-6 寄存器 0x20 上的连接事件
图 4-7 寄存器 0x0A 上的连接事件
图 4-8 寄存器 0x0C 上的连接事件
图 4-9 寄存器 0x10 上的连接事件
图 4-10 寄存器 0x20 上的连接事件DisplayPort 交替模式配置
如果连接的伙伴器件(接收端器件,例如监视器或扩展坞)支持 DisplayPort 交替模式,并且 PD 协商进入该模式,则会触发额外的 I2C 事件以重新配置 TUSB1044,从而实现 DisplayPort 运行。在我们的 PD 控制器配置中,我们定义了与特定 DisplayPort 配置步骤 相对应的事件,为方便起见标记为 DP_CONFIG_ACE 和 DP_CONFIG_BDF,每个都有方向的变体(UU 或 UD)。这些标签指的是标准 USB-C DisplayPort 引脚分配——通常是引脚分配 C 和 E 与 B、D 和 F。本质上,PD 控制器会根据四个高速通道用于 DisplayPort 的方式使用不同的配置序列。一种配置可以适用于 4 通道 DisplayPort(无 USB3 数据),另一种配置可以适用于 2 通道 DisplayPort + USB3 运行,这是 DP 交替模式的共模。确切的命名(ACE、BDF)源于这样一个事实:源端可以广播某些引脚映射的支持(例如,4 通道的引脚分配 C 或 E、2 通道 + USB 的引脚分配 D 或 F)。我们的配置可确保在每种情况下正确设置 TUSB1044 以支持通道布线和 EQ。
我们总结了这些序列:
在此事件中,我们没有明确看到向 0x20 写入值(这可能表明下行 EQ 保持为设置状态,或者 4 通道 DP UU 不需要更改)。假设下行(面向连接器)EQ 可以保持在最后设置的任何值(连接时为 0x33)。这是合理的,因为无论是承载 USB 还是 DP,连接器的物理通道特性都不会改变;但是,也可以针对 DP 频率进行调整。在我们的配置表中,ACE_UU 未列出新的 0x20 写入,因此我们在 DFP EQ 上保持与之前相同的 0x33 0x33。
将 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 控制器写入:
DP_CONFIG_BDF_UD:双通道 DP + USB 场景的翻转情况:
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 有效地控制开关和增益。
图 4-11 寄存器 0x0A 上的 DP 分配 ACE 配置事件
图 4-12 寄存器 0x10 上的 DP 分配 ACE 配置事件
图 4-13 寄存器 0x0A 上的 DP 分配 ACE 配置事件
图 4-14 寄存器 0x10 上的 DP 分配 ACE 配置事件
图 4-15 寄存器 0x0A 上的 DP 分配 BDF 配置事件
图 4-16 寄存器 0x10 上的 DP 分配 BDF 配置事件
图 4-17 寄存器 0x20 上的 DP 分配 BDF 配置事件
图 4-18 寄存器 0x0A 上的 DP 分配 BDF 配置事件
图 4-19 寄存器 0x10 上的 DP 分配 BDF 配置事件
图 4-20 寄存器 0x20 上的 DP 分配 BDF 配置事件通过这些连接和 DP 配置事件处理程序,TPS65992S 可确保在以下每个阶段正确配置 TUSB1044:初始连接(用于 USB 3.2 SuperSpeed 或基线运行)和转换到 DisplayPort 交替模式期间。所有必要的 I2C 写入配置完成后,PD 控制器固件会自动执行,从而无需专用 EC 或 MCU 来实时处理转接驱动器设置。