1. Detect attach of USB ports,
e.g. a DFP to a UFP
DFP (Downstream Facing Port)為Host端, UFP (Upstream Facing Port) 為device端。在DFP的CC pin會有上拉電阻Rp,在UFP會有下拉電阻Rd。在DFP與UFP未連接之前,DFP的VBUS是沒有輸出的。當DFP與UFP連接後,CC pin相接,DFP的CC pin 偵測到UFP pulldown Rd,表示接到Device,DFP便打開VBUS的FET開關,輸出VBUS電源給UFP。DFP可由CC1與CC2 pin的負載阻抗來判斷連接狀態,並偵測它是否接到debug or Audio accessory裝置。
2. Resolve cable orientation and twist connections to establish USB data bus routing
由於Type-C是支援正反插,CC pin被用來偵測正反插,從DFP的角度來看,當CC1接到Pulldown就是正插,如果是CC2接到Pulldown就是反插。在偵測完正反插後,就會輸出相對應的USB信號,例如CC1對應的是SSTX1與SSRX1。下圖的右邊整合了MUX,由於USB 3.1的data rate高達10 Gbps,為了避免PCB的走線出現分支,所以正反插進來的訊號會由MUX來切換,正插時,切換到SSRX1&SSTX1,反插時,切換到SSRX2&SSTX2。
3. Establish DFP and UFP roles between two attached ports
除了DFP、UFP,Type-C spec還定義了DRP (Dual Role port),DRP可以做為DFP也可以做為UFP,可以供電,也可以受電。當DPR接到UFP裝置,DRP會轉換為DFP。當DRP接到DFP裝置,DRP會轉換為UFP。當兩個DRP裝置接在一起,兩個裝置會Random地,一方為DFP,一方為UFP。
除了DFP、UFP,Type-C spec還定義了DRP (Dual Role port),DRP可以做為DFP也可以做為UFP,可以供電,也可以受電。當DPR接到UFP裝置,DRP會轉換為DFP。當DRP接到DFP裝置,DRP會轉換為UFP。當兩個DRP裝置接在一起,兩個裝置會Random地,一方為DFP,一方為UFP。
4. Discover and configure VBUS:
USB Type-C Current modes or USB Power Delivery
下表為Type-C VBUS 輸出選項,USB 2.0, USB3.1,USB BC1.2 是先前USB協會定義的標準,可以跟Type-C相容。USB Type-C current 1.5A與3A是Type-C所定義的,需要有CC pin來做偵測。USB PD的功能還需要有USB PD Phy chip來完成Protocol溝通,而Protocol信號是載在兩端連接的CC pin上。
Type-C如何去決定要執行那個模式呢?這也需要靠CC pin。先前提到DFP會有上拉電阻Rp,UFP會有下拉電阻Rd,當DFP與UFP相接,CC pin上就會有分壓,Rd是固定5.1k,而Rp就會依照DFP的類別,而有不一樣的阻值。UFP會monitor CC pin上的分壓來知道DFP的VBUS種類。另外DFP也用不同大小的定電流源來供給CC pin,當電流流到uRd,同樣可以產生電壓,讓UFP知道DFP的VBUS模式。
在UFP是由CC pin上的電壓,來得知DFP的VBUS輸出能力。例如DFP為5V/3A,它可以在CC pin上供330uA的電流,在UFP端的CC pin上就會得到330uA * 5.1k=1.683V,UFP就可以判斷
DFP為vRd-3.0。或是DFP用一個上拉電阻10K到VBUS,UFP端的CC pin上的電壓為
5v * 5.1k /(5.1k+10k)=1.688V,UFP一樣可以判斷DFP為vRd-3.0。
USB Type C也支援USB PD,而USB PD的Protocol會轉為BMC的信號,在CC pin上傳輸。
CC pin有CC1,CC2,當其中1 pin被用來做DFP,UFP之間的連結,另1pin用就來供VCONN。由Figure4.5可以發現,當Cable內將另一個CC pin接一個下拉電阻Ra,這表示這是一條主動式Cable,需要被供電的。DFP偵測到Ra,便會輸出VCONN在CC pin,供電給Cable。Ra的阻抗是定義為800ohm ~1200ohm。
6. Discover and configure
optional Alternate and Accessory modes
USB PD的VDM (Vendor defined message)功能,可以讓host與device認到對方的ID,而進到alternate mode.,VDM也是透過CC pin來傳輸的。下面為一個Alternate mode在Dock的例子,system認到dock裝置,知道dock有PCIe裝置,於是system利用Type-C的SBU1/SBU2、Tx2/Rx2來傳輸PCIe信號。
當CC1與CC2 pin上各接一個下拉電阻,阻值≤Ra,這表示system接到了Audio Accessory,system
進到accessory mode。如下圖,Type C的CC pin接到耳機的DET pin,當耳機插入時,DET pin被拉到low,system進到accessory mode。system需要自動切換Type C上的訊號,讓DP/DN甩來輸出耳機的左右聲道。SBU1/SBU2用來作MIC/AGND function,依照system是支援OMTP或CTIA的耳機。
Reference
1. www.usb.org "USB Type-C Specification Release 1.0"
USB PD的VDM (Vendor defined message)功能,可以讓host與device認到對方的ID,而進到alternate mode.,VDM也是透過CC pin來傳輸的。下面為一個Alternate mode在Dock的例子,system認到dock裝置,知道dock有PCIe裝置,於是system利用Type-C的SBU1/SBU2、Tx2/Rx2來傳輸PCIe信號。
當CC1與CC2 pin上各接一個下拉電阻,阻值≤Ra,這表示system接到了Audio Accessory,system
進到accessory mode。如下圖,Type C的CC pin接到耳機的DET pin,當耳機插入時,DET pin被拉到low,system進到accessory mode。system需要自動切換Type C上的訊號,讓DP/DN甩來輸出耳機的左右聲道。SBU1/SBU2用來作MIC/AGND function,依照system是支援OMTP或CTIA的耳機。
Reference
1. www.usb.org "USB Type-C Specification Release 1.0"