上一篇文章【Maker 電子學】USB 電源供應徹底研究—PART7,我們初步介紹了隨著 USB 3.1 推出的 USB type C 連接器,以及 USB PD 在 type C 連接器上的新設計。
舊的 USB 標準使用連接器的形式來區分 host 與 device,因此 type A 在 host 端,一定是供電的角色,而 type B 在 device 端,一定是受電的角色,但 USB type C 則將供電的角色與資料傳輸的角色分開了,host 不再一定是供電端,device 也不再一定是受電端。
在 USB type C 的定義中,電源的角色有可以供電的 source、永遠吃電的 sink,以及可以供電也可以吃電的 DRP(dual role port)。
當 DRP 連接到 source 時,它就會從 source 拿電;當 DRP 連接到 sink 時,它就會送電給 sink,自動判斷,沒什麼太大的問題。
充電鬧雙胞
但是當 DRP 連接到 DRP 時,會發生什麼事呢?
隨著 iPhone 15 的上市,蘋果也將 iPhone 的充電連接器從 Lightning 換成了 USB type C,世界上突然多了一大堆 USB type C 的裝置,也造成一些有趣的現象。
比方說,有人用 USB type C 的行動電源,透過 USB type C 對 type C 的連接線想要給 iPhone 15 充電,結果 iPhone 15 反而透過 USB type C 對行動電源充電,手機的電越充越少。
這就是典型的 DRP 連接到 DRP 可能會發生的事。一般來說,如果行動電源上有 USB type C 的連接器,它就很有可能是 DRP。當 DRP 連接到一個 source,比方說 USB type C 的充電器,它就會變成 sink,向充電器取電,來對行動電源充電,而當它連接到另一個 sink 時,比方說用 type C 充電的手電筒,它就會變成 souce,向手電筒輸出電源來對手機充電。
但像 iPhone 15 或是其它手機這麼複雜的裝置,它上面的 USB type C 不太可能只用來充電,而多半有類似 USB OTG 這種可以連接其它 USB 裝置的功能。當它用來連接裝置時,自己就會變成 host,而會對外供電,這時候這個 USB type C 就會是 source 的角色,因此 iPhone 15 上的 USB type C 是個 DRP。
當 DRP 連接到 DRP 時,由於兩邊都有供電能力也都有受電能力,它們會隨機決定 source 和 sink 的角色。如果在這個吵架的過程中,iPhone 15 最後決定它是 source,而行動電源決定它自己是 sink,這時 iPhone 15 就會向行動電源輸出電力,消耗 iPhone 15 自己的電池來幫行動電源充電。
其實這種問題早在 Android 手機開始使用 USB type C 連接器時就發生了。有些行動電源上面會有兩個 type C 的連接器,其中一個永遠是 source,用來供電,而另一個永遠是 sink,用來給行動電源充電,只要根據需要選擇對應的 USB type C port,就不會有充電方向反過來的問題,但也因此要多做一個 USB type C 的連接器。
我們上一回說明了 USB type C 利用 CC 接腳來辨別電纜插入的正反向,以及利用連接在 CC 接腳上的 Rp、Rd 電阻來辨認供電、受電的角色,但除此之外,USB PD 還有很多更複雜的通訊協定,可以用來在 USB type C 連接器上傳輸高達 100W(USB PD 3.0)甚至 240W(USB PD 3.1)的電源功率。我們就繼續來看看,USB PD 是怎麼在 type C 連接器上做到這麼大的供電功率。
更高的電壓、更大的電流
其實要增加充電功率沒有別的方法,要嘛加高電壓,要嘛加大電流,或是兩者都做。USB PD 從 2.0 版開始改用 type C 連接器,並定義了相當複雜的電壓和電流組合:
(圖片來源:Bird 提供)
這張圖看起來有點複雜,但其實蠻好理解的。USB PD 2.0 定義了四種輸出電壓:5 V、9 V、15 V、20 V,其中 5 V、9 V、15 V 的最大輸出電流都是 3 A,而 20 V 的最大輸出電流則是 5 A。20 V * 5 A = 100 W,這就是 USB PD 3.0 的最大輸出功率。這個功率不要說充手機了,充大部分的筆電都綽綽有餘。
那麼符合 USB PD 2.0 的充電器都需要能提供這麼多種電壓嗎?不用,它的規範是以最大輸出功率來區分的。如果一個 USB PD 2.0 的充電器支援最大 15 W 的輸出功率,它就只需要支援 5 V 的輸出電壓,因爲 5 V * 3 A = 15 W;如果一個充電器支援最大 27 W 的充電功率,它就需要支援 5 V 和 9 V 的輸出電壓;而如果一個充電器支援最大 45 W 的充電功率,它就需要支援 5 V、9 V、15 V 三種電壓,但不用支援 20 V,只有功率大於 45 W 的充電器才需要支援全部四種電壓。
而不同電壓輸出時的最小電流也有規範。從上圖可以看得出來,20 V 輸出的最小電流是 2.25 A,這時的充電功率是 20 V * 2.25 A = 45 W,如果裝置所需要的充電功率低於 45 W,它就不能要求充電器用 20 V 輸出,而必須將電壓往下調一個檔位,用 15 V 輸出來充電。
同樣的,9 V 這個檔位的最小輸出電流是 1.67 A,這時的充電功率是 9 V * 1.67 A = 15 W,如果裝置所需要的充電功率低於 15 W,它就不能用 9 V 這個電壓來充電,而必須透過 PD 協定通知充電器將電壓降到 5 V 那一檔來充電。
這樣設計的好處是,不會有同樣的功率對應到不同充電電壓的組合。每一檔電壓的最小充電電流所達到的功率,剛好是下一檔電壓的最大充電電流所達到的功率,因此只要知道功率,就可以確定 USB PD 2.0 的充電器用哪一檔電壓輸出。
USB PD 3.0 比 2.0 多了 PPS 可程式化的輸出電壓,可以讓受電端透過 PD 的協定微調輸出端的電壓,讓電壓不再限制在 5 V、9 V、15 V、20 V 四個檔位,同時也海納百川地相容了包括 QC 4.0 在內的各家快協定。
至於 USB PD 3.1,則是增加了 28 V、36 V 和 48 V 三檔更高的電壓,這三檔電壓的最大輸出電流都是 5 A,因此最大的充電功率就來到了 48 V * 5 A = 240 W。這個供電功率已經是傳統的 AC-DC adapter 很少可以達到的功率了。
通訊協定
進入 PD 2.0 的時代之後,簡單地用電阻分壓、判斷電壓這種方式,已經沒辦法滿足這麼複雜的供電協定所需,因此 PD 設計了一套相當複雜的通訊協定,將資料利用 4 b/5 b 的 channel coding 編碼後,成爲大概 300 Kbps 左右的資料流,利用 CC 線路來傳送。
PD message 是一個雙向的通訊協定,它可以讓 sink 詢問 source 具有什麼樣的供電能力,而在 source 回答之後,sink 再決定要向 source 要求什麼樣的電源輸出。由於這個通訊的結果涉及輸出電壓的設定和轉換,如果出錯的話有可能會對受電裝置造成傷害,因此 USB PD 的通訊協定設計得極爲嚴謹且複雜,錯誤檢查與確認機制也非常完整。
這個協定已經沒辦法用簡單的離散邏輯電路來處理。一般來說,要進行 PD message 的通訊,如果不是使用 MCU,就會使用專用的 PD 控制 IC。下一回,應該也是 USB 供電徹底研究的最終回,我們會簡單來看一下,要如何使用專用的 USB PD 控制 IC 來向 USB PD 的充電器取電。
(責任編輯:賴佩萱)
只需不到短短一分鐘...
輸入您的信箱與ID註冊即可享有一切福利!
會員福利
免費電子報
會員搶先看
主題訂閱
好文收藏