從樹(shù)莓派4 USB-C設計失誤 看嵌入式系統的接口升級
近日,樹(shù)莓派4 Model B(樹(shù)莓派4B)正式發(fā)布,從處理能力,通信方式,對外接口都進(jìn)行了全方位的升級,為嵌入式開(kāi)發(fā)者帶來(lái)了福音。收到貨后,不少開(kāi)發(fā)者懷著(zhù)激動(dòng)的心情開(kāi)始嘗試使用,結果卻發(fā)現USB-C接口在設計規范性上出現了嚴重的問(wèn)題。
本文引用地址:http://dyxdggzs.com/article/201907/402550.htm帶USB-C接口的樹(shù)莓派4
經(jīng)過(guò)實(shí)際測試發(fā)現,樹(shù)莓派4上面的這個(gè)USB-C接口,其CC1和CC2是連接在一起的,并共用了一顆5.1k的電阻下拉到地。
這個(gè)設計看似非常巧妙,USB-C接口的控制做到了極致簡(jiǎn)單,只需要一顆5.1k下拉電阻。當外接的USB-C 數據線(xiàn)是不帶Emark芯片的情況下,一起都可以正常工作。
因為這類(lèi)USB-C數據線(xiàn)的CC2是懸空的,只有CC1有連接到對端,所以,這種數據線(xiàn)跟樹(shù)莓派4B的USB-C接口母座一連起來(lái),就非常好的符合了Sink端的設計規范,即CC1上,有一個(gè)5.1k的電阻下拉到地。
樹(shù)莓派4B在使用不帶Emark 芯片的連接線(xiàn)時(shí)的連接情況
但是,USB TYPE-C規范里面,還規定了一種帶Emark 芯片的數據線(xiàn)(Cable),這種數據線(xiàn)的CC2上,有一個(gè)1K的下拉電阻,用來(lái)告知DFP端的CC識別芯片,需要往CC2上提供VCONN Source。
一旦跟這樣的數據線(xiàn)連接起來(lái),樹(shù)莓派4 Model B就會(huì )出現嚴重問(wèn)題,因為CC1和CC2連接起來(lái)后,會(huì )跟數據線(xiàn)上的1K到地電阻并聯(lián),形成一個(gè)比1k電阻還小的阻抗,從而滿(mǎn)足了USB-C規范中Audio Adapter Accessory Mode的連接規范,被電源端誤認為是一個(gè)模擬耳機設備,從而拒絕供電。
樹(shù)莓派4B在使用帶Emark 芯片的連接線(xiàn)時(shí)的連接情況
通過(guò)上圖我們可以看到,Emark連接線(xiàn)上的1k電阻會(huì )導致,CC1建立失敗,1k電阻和5.1k電阻的并聯(lián),會(huì )導致樹(shù)莓派4B被認為是一個(gè)Audio Adapter Accessory Mode。
解決這個(gè)問(wèn)題的方法也很簡(jiǎn)單,只需要在CC1和CC2上各接一個(gè)5.1K電阻到地,互相獨立就行了。
樹(shù)莓派4B在USB-C接口上的設計,其實(shí)屬于入門(mén)級設計,因為這個(gè)接口僅僅用來(lái)進(jìn)行5V供電和一個(gè)USB2.0通信而已,并無(wú)復雜的音視頻及USB 3.0功能。
在實(shí)際的嵌入式開(kāi)發(fā)中,一個(gè)USB-C接口的功能,可能遠不止于此。下面我們就大功率供電供電、高速信號傳輸、雙C口DRP控制三點(diǎn)進(jìn)行闡述。
第一, 需要使用USB-C接口來(lái)獲得9V/12V/15V/20V的供電電壓。
很多嵌入式系統具有非常復雜的功能,僅僅5V的供電,是無(wú)法滿(mǎn)足要求的。那么這個(gè)時(shí)候,只是通過(guò)在CC1和CC2上單獨設置5.1k下拉電阻,就不夠了,而是必須使用USB PD控制芯片,最好是能夠靈活配置各種電壓的USB PD控制芯片,例如LDR6015和LDR6021就可以實(shí)現這個(gè)功能。
某些系統設計中,甚至希望USB PD控制芯片自動(dòng)去判斷適配器的最高功率檔,讓電源適配器直接供應最高功率給嵌入式系統,這個(gè)時(shí)候,就可以使用LDR6015Max,可以不需要任何的控制,直接獲得最高功率。
第二, 需要使用USB-C接口進(jìn)行高速視頻信號傳輸的應用開(kāi)發(fā)。
USB-C接口,可以同時(shí)支持10G/b的USB 3.1Gen2數據傳輸和4K高清視頻傳輸。但是要讓Sink端進(jìn)入DP ALT mode,這個(gè)是吧必須使用一顆USB PD Controller,例如LDR6282等。
這類(lèi)USB PD控制芯片,充當的是一個(gè)交通管理員的角色,通過(guò)USB PD通信,對USB-C數據線(xiàn)內的高速差分對通路進(jìn)行配置,讓數據信號和視頻信號適配到合適的差分對上。
第三, 雙C口DRP功能控制。
很多嵌入式應用不僅僅使用單個(gè)USB-C口,還可能會(huì )有兩個(gè)USB-C口,其中一個(gè)C口用于供電,另外一個(gè)C口用于進(jìn)行高速數據及視頻信號傳輸。
但用戶(hù)使用過(guò)程中,并不確定兩個(gè)中的哪一個(gè)口會(huì )插上電源,或者多媒體設備,因此需要滿(mǎn)足雙C口盲插識別和控制,最典型的應用是USB-C接口的顯示屏和投影儀。
這就屬于比較復雜的USB PD控制功能了。目前市面上僅僅有LDR6282可以滿(mǎn)足這個(gè)需求。
用于雙C口DRP控制的USB PD芯片LDR6282
綜上所述,我們可以看出,對于USB-C接口僅僅用于供電和Debug功能的嵌入式系統,USB-C接口并不需要使用任何芯片控制,通過(guò)CC1和CC2各自獨立下拉一個(gè)5.1k電阻到地即可。對于需要用到大功率供電或者高清視頻傳輸功能的嵌入式設計,則必須要使用USB PD控制芯片。
評論