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 來實時處理轉接驅動器設置。