玩轉 AI 機器人的新境界 – Now and Future
|
View Categories

USB 電源供應徹底研究—PART7

閱讀時間: 4 min read

作者:Bird

我們花了幾次的篇幅,說明了像 Apple、Samsung 等手機供應商在 USB type A 連接器上利用 D+/D- 的電壓辨認快充能力的方法,也說明了如 Qualcom Quick Charge 這種利用 D+/D- 上的的分壓以及脈波來辨認快充能力、調整電壓的協定。

但我們一直還沒有說明 USB 進到 type C 時代後,USB PD 在通訊上有哪些變化,這一回我們就來聊一下這個題目。

USB 3 #

USB 在推出 3.0 的規格時,爲了要容納 SuperSpeed 模式下更快的傳輸速度,增加了 SSTX/SSRX 這兩對超高速的差動對訊號線。由於原來的 type A 與 type B 乃至於普遍使用的 micro USB 連接器都只有四到五支腳的空間,爲了容納這些新的訊號,USB 組織爲了 USB 3.0 定義了新的 type A、type B 以及 micro USB 連接器。

(圖片來源:Bird 提供)

USB 3.0 的連接器其實是在原來的連接器上開外掛,比方說新的 3.0 type B 連接器就在原來四隻腳的外面又多長了六隻腳的連接空間,新長出來的接腳位於原來連接器的外側,因此 USB 3.0 type A、type B 及 micro 連接器的設計,都相容於 USB 2.0;當你拿 USB 2.0 的接頭插入 USB 3.0 的插座時,就只會使用 USB 2.0 定義的 VBUS、D+/D-、GND 等四隻腳,不會碰到新的 SSRX/SSRX。

但也許是全世界每天都有幾億人浪費幾秒鐘在尋找 USB type A 的正反面,USB 組織覺得 USB 需要一種想 Apple Lightning 一樣沒有方向性、正面反面都可以插的接頭。

Type C #

於是就在 USB 3.1 推出時,USB 組織一起推出了 type C 連接器。它是一個全新設計、沒有分正反面,也沒有分 host/device 端的連接器。

(圖片來源:Bird 提供)

而且除了 USB 3.0 新增加的 SSTX/SSRX 訊號外,type C 連接器隨著 USB 3.1 規格的發佈,也新增了許多 USB 3.1 所需要的訊號,訊號數量一舉來到 12 個,接腳數更是來到 24 支。

(圖片來源:Bird 提供)

接腳數量是訊號數量兩倍的原因,就是 USB type C 可以不分正反面的原因。在插座上,大部分的訊號從 A1-A12 會照著順序在 B1-B12 上重複出現一次,而且相同的訊號會接在一起,因此不管你插哪一個方向,所有的訊號都接得到,因此就沒有方向的問題了,而除了可以正插反插,USB type C 透過其它沒有完全鏡像的接腳,甚至還可以知道你是正插還是反插。

除了 USB 2.0 的 VBUS、D+、D-、GND,以及 USB 3.0 的 SSRX/SSTX 外,type C 上又新增了 SBU 及 CC 兩組訊號。SBU 和 CC 的接腳排列不像其它訊號有兩組鏡像排列,CC1 和 CC2 是不同的兩個訊號, SBU1 和 SBU2 也是分開的兩個訊號。

在研究 USB PD 這件事上, CC1 和 CC2 是我們最關心的兩個訊號,因爲它決定了 USB type C 裝置連接時的行爲。

首先,因爲 USB type C 已經不再用接頭型式區分 host 或是 device,而是所有裝置一律平等地使用 type C 連接器,因此裝置的角色與行爲必須定義清楚。在 USB 2.0 之前,所有的裝置都分爲 host 與 device,host 通常是計算能力較強、較複雜的裝置,也具有供電能力,而 device 則是比較小、比較簡單則裝置,可以透過 VBUS 接腳向 host 裝置取電,也可以自行供電。

很多角色 #

在 USB type C 的世界中,資料傳輸的行爲和供電的行爲是分開的。Type C 定義了幾種不同裝置的角色:downstream facing port(DFP)類似 USB 2.0 之前的 host,但不一定是供電端;upstream facing port(UFP)類似 USB 2.0 之前的 device,但也不一定吃電。除此之外,還有一種裝置叫 dual role data(DRD),它可以視需要成爲 DFP 也可以成爲 UFP,有點類似 USB 2.0 之前的 OTG port。

(圖片來源:Bird 提供)

而在供電方面,USB type C 定義供電方叫做「source」,受電方叫做「sink」,而可以供電也可以吃電的角色則叫做 dual role port(DRP)。

(圖片來源:Bird 提供)

由於 USB type C 不使用接頭類型來區分 host/device 或是供電、不供電,因此有件非常重要的事,就是 USB type C 的 VBUS 並不是隨時有電的。

傳統的 USB type A 插座,因爲一定是供電的 host 端在使用,所以它的 VBUS 上隨時有 5 V,當 device 連接到 host 時,它會靠偵測 VBUS 上的電壓來知道自己被連接到 host 上,如果有需要,它也可以從 VBUS 上拿取最多 100 mA 的電流,當作電源讓自己完成接下來的裝置辨認程序。

但同樣是 type C 接頭的裝置,它有可能是 source 也有可能是 sink,光從接頭無法判斷。如果 USB type C 的 VBUS 隨時有電,而我們又把兩個 source 裝置用 USB type C 連接線接起來,這時候兩個裝置都會對 VBUS 供電,如果電壓不完全一致,就會有電流從電壓較高的一方流向電壓較低的一方,這就是所謂的「電源打架」,我們不能隨意將兩個電壓源連接在一起,不然他們很有可能會打起來。

怎麼辦呢?就要靠 CC 接腳來識別了。

(圖片來源:Bird 提供)

在 source 裝置中,CC1 和 CC2 接腳都會連接到一個叫 Rp 的電阻,將 CC1 和 CC2 上拉到電源電壓;相對地,在 sink 裝置中,CC1 和 CC2 都會透過一個叫 Rd 的電阻接地。

USB type C 的電纜中,會有一條線將 CC1 連接到另一端的 CC1,但 CC2 則不會連接。如果 source 沒有連接任何東西,因爲 CC1 和 CC2 接腳上沒有任何下拉的電阻,所以 CC1 和 CC2 上的電壓就是電源電壓,在這樣的狀況下,source 不會輸出任何電源,VBUS 上也就不會有電壓。

一旦有 sink 裝置透過 type C 電纜連接到 source 裝置,source 這邊的 CC1 和 CC2 其中一定有一隻腳會透過電纜連接到 sink 的其中一顆 Rd 電阻,而將電壓拉下來;如果 source 的 CC1 連接到 sink 的 CC1,我們稱這種情況叫「正插」(但其實使用者並不在意);如果 source 的 CC1 連接到 sink 的 CC2,我們稱這種情況叫「反插」 (但其實使用者也不在意)。

之所以要透過 CC1 和 CC2 偵測電纜的正反插,跟資料傳遞的路徑切換有關,這個我們下次有機會再聊。當 source 偵測到 CC1 或 CC2 的電壓被拉下來,不再是電源電壓,就代表有 sink 裝置被連接到 source 上,這時就會把 VBUS 的電源開關打開,開始供電。

因此,很重要的觀念再說一次:USB type C 的 VBUS 上平常是沒有電源的,只有透過 CC1、CC2 完成裝置的初步辨認,VBUS 上才會開始有 5 V 的電壓可供使用。

Rd 固定爲 5.1 K ohm,而 Rp 則有幾種不同的規格,可以讓 Sink 快速辨認 source 端的供電能力。

(圖片來源:Bird 提供)

Default USB power 是爲了相容傳統 USB type A 的 VBUS 供電能力而做的設計。

設計一條充電線 #

今天要做一條 USB type C 對 micro USB 的線,讓我們可以用 type C 的充電頭來充 micro USB 輸入的行動電源,該怎麼做呢?

如果我們照著一般充電用的 USB 線設計,把電纜設計成這樣:

(圖片來源:Bird 提供)

這樣的電纜是無法用來充電的。如果供電端是 USB type A 的話,可以,但如果是 USB type C 的話,不行,因爲 USB type C 的 VBUS 並不是隨時有電的,我們需要至少控制一隻 CC 接腳,來讓它啓動 VBUS 供電。

因此正確的電纜設計應該是這樣:

(圖片來源:Bird 提供)

我們用一個 5.1 K 的電阻將 CC1 在電纜中連接到 GND,就相當於 CC1 有了一個 Rd 電阻。根據上面說過的,當 type C 的 source 端在 CC 接腳上偵測到 Rd 電阻,就會把 VBUS 打開,這樣我們就可以從 VBUS 拿到電源了。

小結 #

這次我們聊了 USB type C 這種在 USB 3.1 之後引入的新型連接器,也說明了它用來辨認資料傳輸與供電能力角色的方法。

下一回我們會繼續聊跟 USB type C 供電控制有關的話題。

(責任編輯:賴佩萱)

Powered by BetterDocs

Submit a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *