Czy samoobsługowe urządzenie USB musi łączyć się z VCC z portu hosta?

18

Samozasilające się urządzenie peryferyjne USB zapewnia własną moc, więc czy dobrze jest podłączyć tylko D +, D- i GND do portu hosta, czy też zawsze musisz podłączyć + 5 V, a następnie zaczekaj na fazę negocjacji urządzenia powiedzieć gospodarzowi, że jest samozasilający i dlatego nie chce żadnej mocy, dziękuję bardzo?

Konkretne urządzenie peryferyjne, na które patrzę, oparte jest na adapterze USB-to-serial FTDI FT4232H, ale naprawdę mam nadzieję na ogólną odpowiedź na to pytanie.

kbro
źródło
1
FTDI ma wiele notatek aplikacji i informacji na ten temat w swoich arkuszach danych. Spojrzałeś tam?
Gustavo Litovsky
Arkusz danych FTDI ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT4232H.pdf pokazuje VBUS podłączony do RESET # przez mostek rezystorowy, więc (przypuszczalnie) odłączenie kabla USB powoduje zresetowanie urządzenia (jeśli było wtedy zasilane z magistrali , oczywiście odłączenie kabla USB spowoduje całkowite wyłączenie urządzenia!). Ale pytanie brzmi: czy obciążenie VBUS oznacza coś dla hosta USB i czy brak obciążenia pozostawiając VBUS n / c coś psuje podczas uzgadniania USB?
kbro
USB zazwyczaj nie ma pojęcia, czy coś jest podłączone. O ile nie pobierasz więcej niż 100 mA, nie można stwierdzić, czy coś jest podłączone.
Gustavo Litovsky
@GustavoLitovsky, w rzeczywistości, hosty USB nie mają w ogóle możliwości rozróżnienia między brakiem prądu a prądem 100 mA pobieranym z jego portu. Jedynym sposobem zdefiniowanym w specyfikacjach USB jest wystąpienie przetężenia, które jest znacznie powyżej 500 lub 900 mA. Jednak wszystko można zaprojektować za pomocą dodatkowych obwodów i dodatkowych pinów GPIO.
Ale..chenski 31.01.19

Odpowiedzi:

7

Ogólna odpowiedź na to pytanie brzmi: tak, VBUS (+ 5 V z kabla) musi być podłączony do urządzenia, nawet jeśli jest ono samozasilające. Powód tego jest następujący:

Aby rozpocząć proces łączenia po stronie hosta, urządzenie musi podciągnąć D + (w przypadku trybu FS / HS) lub D- (w przypadku urządzenia LS).

Jednak specyfikacje USB mają obowiązkowy wymóg, aby żadne urządzenie USB nie było źródłem prądu na żadnym styku interfejsu, chyba że jest podłączone do kabla, patrz rozdział 7.1.5.1, który brzmi:

Źródło napięcia na rezystorze podciągającym musi pochodzić lub sterowane przez moc dostarczoną na kablu USB, tak aby po odłączeniu VBUS rezystor podciągający nie dostarczał prądu do linii danych, do której jest podłączony.

Jeśli urządzenie USB nie ma tej kontroli, jedna z linii danych będzie źródłem prądu. Przedwczesne stwierdzenie pull-upów było źródłem problemów dla niektórych starszych hostów USB. Właśnie dlatego wprowadzono tę zasadę i jest to specjalny test w programie certyfikacji USB-IF.

Dlatego USB VBUS jest ważnym sygnałem „pasma bocznego” w protokole połączenia USB. W związku z tym normalne układy scalone urządzeń USB mają osobne styki wejściowe do wykrywania obecności hosta USB. Niektórzy producenci układów scalonych (np. FT232H, MCP2221 itp.) Pomijają ten wymóg, zakładając, że ich układ będzie wykorzystywany wyłącznie w konfiguracji zasilanej z magistrali, gdzie wymóg kontroli podciągania jest automatycznie spełniony. Jednak przy projektowaniu tych układów w układy z własnym zasilaniem konieczne są dodatkowe wysiłki w obwodzie, aby połączyć włączanie podciągania z obecnością VBUS na porcie USB.

Jeśli chodzi o protokół „handshake” połączenia USB, USB nie polega na prądzie pobieranym z VBUS. Protokół jest następujący: Port hosta musi mieć aktywny VBUS; VBUS jest podłączony do urządzenia; urządzenie widzi VBUS i podciąga 1,5k na jednym z przewodów D + / D-; host widzi to połączenie, a po 100 ms opóźnienie potwierdza sygnalizację USB_RESET (SE0 itp.).

Ale..chenski
źródło
18

W przypadku urządzenia z własnym zasilaniem nie podłączaj jego 5 V do 5 V hosta, możesz uszkodzić oba zasilacze. GNDa D+, D-zrobi grzywny.

Pamiętaj, że poziomy dla D+i D-są oceniane dla + 3.6 V max, a nie do 5 V, jak można się spodziewać!

jippie
źródło
5
Warto jednak monitorować VBUS w celu wykrycia warunków rozłączenia / połączenia, ponieważ część wstępnych negocjacji USB obejmuje podciągnięcia na D + i D-. Kiedyś natrafiliśmy na problemy, w których koncentrator nie mógł poprawnie wyliczyć urządzeń w zależności od kolejności, w jakiej koncentrator z własnym zasilaniem i urządzenia z własnym zasilaniem były włączone, chyba że zaobserwujesz VBUS. Rozwiązaniem było użycie potencjalnego dzielnika w VBUS do obsługi.
Jxj
1
Z tego samego powodu rezystor pullup - który zarówno powiadamia hosta o podłączeniu urządzenia, jak i identyfikuje jego początkową prędkość - powinien odnosić się do VBUS, a nie do lokalnego źródła zasilania urządzenia.
Dave Tweed
1
Hmmm - objaśnienie „Self-Powered Devices” na usbmadesimple.co.uk/ums_2.htm mówi to samo - nie ciągnij D + ani D- powyżej VBUS. Co ciekawsze, nie prowadź D + ani D-, gdy VBUS jest wyłączony. Karta danych FT4232H ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT4232H.pdf pokazuje połączenie VBUS z RESETEM #, które wiązałoby się z „nie jedź, gdy VBUS jest wyłączony”, ale wydaje się, że nie ma żadnych gwarantuje, że D + / D- są zawsze poniżej VBUS przy resecie. Myślałem, że sednem resetowania jest to, że D + jest albo powyżej, albo poniżej D-, nie to, że było blisko VBUS.
kbro