# PD TYPE- C Elementary Guide 1
## 大綱
### Type-C Port架構
1.Type-C Port Manager
2.Type-C Port Controller
3.Type-C Port Controller Interface
4.USB-C Power Path Controller.
5.USB-C Redriver and Retimer
### USB Type-C 概述
1.Signal overview
2.Configuration Channel(CC) Pin
3.Type-C Role
# Type-C Port
一個功能完整的Type-C Port需要同時符合**USB Type-C Specification**及**USB Power Delivery Specification**的規範,符合兩個規範的晶片稱為**TCPC(Type-C Port Controller)**。
一個**管理者(Type-C Port Manager, TCPM)** 透過I2C的溝通來控制Type-C Port的功能。
**(EC在Chromebook扮演著TCPM的角色)**

圖1.type-c架構圖
## Type-C Port Manager
### ec在TCPM主要的功能有以下幾個:
1. 透過I2C判斷**外接裝置**的Type-C Port的CC pin狀態
2. 透過I2C設定**本機端**的Type-C Port的CC pin狀態
3. 處理Power Delivery Message中的Protocol Layer訊息
簡單說,可以抓取PD的CC狀態與PD的傳輸訊息
:::info
補充:CC(Configuration Channel)
:::
## Type-C Port Controller
TCPC則是整個Type-C功能的核心晶片,主要負責的部分為**Physical Layer**及**CRC的處理**,以及**實現TCPM的設定**,通常在各個晶片的Specification都會提到各個晶片所支援的規範版本。
### TCPC主要分三個部分
1. **TCPC-compliant registers**
TCPM透過I2C與TCPC進行讀/寫設定值,如果Specification沒有提到該晶片符合TCPCI規範,會自己的Register Specification要另外注意。
2. **CC Detect & PD Logic**
任何一顆TCPC都具有辨識對方的cc pin及控制Host端的cc pin來決定Host端的Power Role及Data Role,並且透過cc pin進行PD Logic的溝通。
3. **Switch(Mux)**
Type-C Port除了充電及USB功能外,還可以透過Alternate Mode的選擇,切換成其他的功能如投影(displayport)、耳機等功能,此時就會透過switch模組(統稱Mux: Multiplexer)來切換不同的功能。
## Type-C Port Controller Interface
https://www.usb.org/sites/default/files/documents/usb-port_controller_specification_rev2.0_v1.0_0.pdf
在TCPCI Spec.中定義了TCPC必要條件:
1. Port Power control for VBUS
2. Port Power control for VCONN
3. Port Power control for CC control
4. Port Power control for sensing
5. USB PD Message delivery
♢***非常重要: protocol layer message 每個bit 都要到TCPCI查表***
:::info
補充
合格TCPCI
`.set_vconn = &tcpci_tcpm_set_vconn`
不合格TCPCI
`.set_vconn = &anx74xx_tcpm_set_vconn`
:::
## USB-C Power Path Controller(PPC)
1. 主要功能:
OVP、OCP、RCP、FRS、ESD、Dead Battery
2. 防止電路板出現過電流過電壓的情況(Vbus)
3. 有些PPC有額外保護Vbus的信號
:::spoiler 功能詳細資料
OVP: over voltage protection
OCP: over current protection
RCP: reverse current protection
FRS: fast role swap
ESD: Electostatic discharge(Electron Static Discharge)
:::
---
### 電路保護,分下列幾點保護
1. 過溫保護
2. 過電壓保護
3. under-voltage
在電源電壓低於正常工程準位時,切斷電源的電路。
4. Reverse current protection
當 Vout 高於 Vin 時,反向電流保護電路會阻止從 VOUT 引腳到 VDD 引腳的反向電流。

圖2.TCPC+TCPM與PPC的電路圖
---

圖3.NCT3807 TCPC
:::info
提問1:TCPM+TCPC跟PPC是怎麼溝通的?
答:TCPM(EC)用I2C控制PPC
提問2:PPC是否有公規的SPEC?
答:有,在sever上有,有需要在上去看
:::
## USB-C Redriver and Retimer
Redriver and Retimer兩個是一樣的東西,只是一個價格高一個價格低。
Redriver and Retimer功能:訊號重整拉到一定的準位在發送出去,訊號整流器概念。
以Burnside Bridge(BB)來說會支援三種模式:
~ 1. Bypass Mode
2. Display Port Mode
3. Thunderbolt/USB4 Mode
- **init時會在Bypass Mode,有需要其他功能會切過去**
:::info
提問1.有幾個port就要幾個retimer?or 是否離得很近是否還需要retimer?
答1.問HW
提問2.ec 如何控制retimer的?
答2.使用register(i2c控制)
:::
# USB Type-C 概述
## Signal overview
USB –Type-C插頭是可反轉使用的,任一方向插入均可;無論怎樣插入,電源的連接都是正確的。
由於插座上含有兩組連在一起的資料線D+/D-,所以插頭以任意方向插入時資料線都是連通的。
用於高速通訊的TX/RX不能被連接在一起,所以CC線被用於對電纜的插入方向進行標識,並經由硬體線路對TX/RX進行路由,確保配置正確。(應該是根據電子標籤認證去認證他插入的方向,確保配置正確)

圖3.晶片pin腳(上圖為母頭、下圖為公頭)
## Configuration Channel(CC) Pin
cc pin 的功能行為操作,TCPCI Spec.定義TCPC必須作為控制CC pin之角色:
1. 依據規範決定Port power role
2. 回報CC pin狀態、控制Rp/Rd
3. CC的sense/debounce/interrupt(cc pin 訊號處理)

圖4. cc pin連接圖
在Source的CC pin會有**上拉電阻Rp**,在Sink的CC pin會有**下拉電阻Rd**。
**未連接之前**,Source的**VBUS是沒有輸出的**。並且會保持在高電位 or 零電位的情況。
**連接以後**,CC pin相接,Source的cc pin偵測到Sink下拉的Rd,表示接到Device,Source便會打開VBUS的FET開關,輸出VBUS給Sink,接著執行PD communication。
Source可以根據CC1與CC2的**附載阻抗來判斷連接狀態**,並且偵測它是否接到Debug Accessory或Audio Accessory裝置。
:::danger
FET複習

上圖以NMOSFET為例,但是目前最常使用的是CMOS-->N+P
場效電晶體(field-effect transistor-->FET)
是一種通過電場效應控制電流的電子元件。
主要應用是當作switch或是amplifier
1.Amplifier
~ 小電流/電壓從Gate端input,經過跨壓從Drain端output使訊號放大。
2.Switch
~ Gate沒電-->輸出0
Gate給電-->輸出1
:::
---

圖6.各種CC pin的組合,與其相對應的關係
最後4個特別注意
當cc1連接到Rd cc2連接到Ra 或 當cc1連接到Ra cc2連接到Rd 會進入到VCONN-Powered Accessory
當cc1連接到Rd cc2連接到Rd 進入到Debug Accessory Mode
當cc1連接到Ra cc2連接到Ra 進入到Audio Adapter Accessory Mode
這些阻值會跟type-c的spec決定
表1. cc pin 的data role 、power role 、resistor

DFP = Downstream Facing Port 是在Host端
UFP = Upstream Facing Port 是在Device端
DRD = Dual-Role, host與device的雙向溝通
SRC = source端
SNK = sink端
DRP = Dual-Role Power 具有source and sink雙向傳輸信號
Rp = 上拉電阻
Rd = 下拉電阻
Ra = cable間的下拉電阻
---

圖7.Type-C cc pin 示意圖(正插反插的示意圖)
Type-C 5 支援正反面connection, detected by CC pin
都唯一對一的connection 不會有交叉行為
CC connect Ra與Rd分壓 Vout 變小
完成相對應的USB輸出信號

圖8.power role and data role 比較
Type-C裝置的公頭與母頭並沒有固定的Host與Device的關係
--->透過CC pin去建立power role與data role。

圖9.Source端與Sink端的power role and data role
當Source端的裝置其Data Role為DFP,而當Sink端的裝置其Data Role為UFP。
若裝置有支援USB PD則可透過Power Role Swap或Data Role Swap來切換其角色。
當兩個DRP裝置接在一起,兩個裝置會**隨機組合**,一方為Source,一方為Sink。

CC pin有CC1,CC2,當其中一個被用來做DFP,UFP之間的連結,另一個用就來供VCONN
當Cable內將另一個CC pin接一個下拉電阻Ra,代表這是一條**Electronically Marked Cable(E-Marker)**,需要透過VCONN提供電給它。
Source偵測到Ra,便會輸出VCONN在CC pin,供電給Cable。
## Type-C Role
Type-C 總共有三種角色:
1. power
2. data
3. Vconn

根據Rp、Rd、Ra的阻值決定role
Rp-->data role:DFP,power role:source
Rd-->data role:UFP,power role:sink
Ra-->Vconn
透過Power Delivery的swap的功能切換role
~ 1.Power Role Swap(PR_Swap): 對換SRC(Rp)與SNK(Rd)角色
2.Data Role Swap(DP_Swap): 對換DFP與UFP角色
3.Vconn Swap: 對換提供Vconn之port

上圖為DRP CC Functional Model,紅圈處是具備DRP功能的TCPC會有一個switch來切換Rd及Rp電阻,在未有裝置連接上的時候做toggle持續切換Rd及Rp,其切換週期必須符合Typc-C spec定義的tDRP(50 ms ~ 100 ms, duty 30%~70%)

上圖為實際量測chromebook的Type-C port在未接上裝置前的toggle訊號,0 V表示目前切換成Rd、3.3 V表示目前切換成Rp