Koncentrator zasilany z magistrali USB - ponad 100 mA na urządzenie?

11

Chciałbym zadać dość szczegółowe pytanie dotyczące zarządzania energią USB.

Przede wszystkim przedstawię projekt mojego urządzenia. Jest to symetryczny sterownik linii sygnałowej z wbudowanym kodekiem audio dla mojego zestawu głośnikowego DIY. Urządzenie jest wewnętrznie podzielone na dwa w większości niezależne bloki: sam sterownik liniowy ze sterującym MCU i kodekiem audio (PCM2706 TI). Oba wymagają połączenia USB (przez FT232R dla bloku sterownika), a całe urządzenie powinno być zasilane z magistrali. Dwa bloki zostaną połączone ze sobą za pomocą układu koncentratora USB, co zapewni jedno połączenie USB połączenia ładującego z komputerem. Spodziewam się, że zużycie stopnia sterownika będzie wynosić od 100 do 200 mA (zdecydowanie więcej niż jedna jednostka obciążenia).

Pojawia się problem: zgodnie ze specyfikacją USB koncentrator zasilany z magistrali może zapewnić tylko jedną jednostkę na port wyjściowy, jednocześnie pobierając maks. 5 jednostek z wyjściowego. Chciałbym wiedzieć, co zrobiłby hub, gdybym poprosił o dwie jednostki za pośrednictwem FT232 na etapie sterownika. Limit 5 jednostek wysyłania nie zostanie osiągnięty (1 jednostka dla koncentratora, 1 jednostka dla kodeka i dwie dla sterownika), więc komputer powinien fizycznie być w stanie dostarczyć ten prąd.

W przypadku układu koncentratora sprawdzałem http://www.ti.com/lit/ds/symlink/tusb2036.pdf . Istnieje opcja „zasilanego” trybu zasilania, czy byłoby to pomocne? A może chip po prostu odmówiłby przyznania kierowcy dwóch jednostek? A w tym przypadku, czy jest jakieś brudne obejście?

Zdaję sobie sprawę z wymogu, że urządzenia dużej mocy muszą również pobierać maks. 100 mA podczas zliczania; nie stanowi to problemu, ponieważ FT232 jest w stanie włączyć sterownik tuż po wyliczeniu. Hub włączy również etapy niezależnie.

Mam nadzieję, że mój problem jest wystarczająco jasny i dziękuję za poświęcony czas :)

AKTUALIZACJA:

Zrobiłem trochę więcej badań nad układem TUSB2036. Zabezpieczenie nadprądowe można wyłączyć za pomocą styku / OCPROT. Koncentrator następnie zgłasza kontrolerowi root, że nie jest w stanie wykryć przetężenia. W arkuszu danych znajduje się ostrzeżenie, że wymagana jest ochrona OC zgodnie ze specyfikacją USB 2.0 - to nie ma dla mnie znaczenia, potrzebuję tylko 1.1 Full-speed. Główny hub komputera powinien następnie dostarczyć IMO 500 mAmps do całego urządzenia. Tak więc mogłem ustawić FT232 sterownika tak, aby wymagał tylko 100 mA, a hub nigdy nie wiedziałby, czy przekroczyłbym limit (oczywiście uwzględniając 500 mA z komputera). Czy ktoś może powiedzieć, czy to może zadziałać?

Ladislav
źródło

Odpowiedzi:

3

Rozumiem twój projekt, że całe urządzenie znajduje się na jednej płytce drukowanej, znajduje się w jednej obudowie i jest połączone z hostem za pomocą jednego kabla USB. Zintegrowałeś hub na płytce drukowanej, aby umożliwić obu urządzeniom komunikację z komputerem. Poniższa odpowiedź będzie zależeć od tych założeń, jeśli składa się z kilku oddzielnych urządzeń połączonych rozłącznymi kablami, to to zmienia rzeczy.

W takim przypadku sugeruję, abyś po prostu skonfigurował koncentrator, aby wyliczał go jako urządzenie dużej mocy i dzielił powstałe 500 mA na całą płytkę. Co ciekawe, na przykładowym schemacie TI z portem z otworami pokazano urządzenia połączone razem, nawet przy użyciu ich układu zarządzania energią:

wprowadź opis zdjęcia tutaj

Przychodząca linia zasilająca 5 V (podświetlona na niebiesko, ponieważ jest to jedna z dwóch sieci, którymi jesteśmy zainteresowani na tym skomplikowanym schemacie) jest podłączona do układu zarządzania energią TPS2041 (obszerny opis, to tak naprawdę tylko FET, który wyłącza się, gdy wykrywa 500mA przepływającego prądu). Jednak każde z wejść jest zwarte razem, a każde z wyjść jest również zwarte razem, a następnie rozdzielone do każdego z niższych portów (sieć pokazana na czerwono).

Zasadniczo wykonują ochronę nadprądową dla wszystkich dalszych sekcji w jednym układzie scalonym. Nie mają możliwości wykrycia, czy mają trzy jednostki małej mocy (100 mA), jedną jednostkę dużej mocy, czy dwie jednostki małej mocy i jedną jednostkę 300 mA. Wszystkie te opcje są dopuszczalne na podstawie tego projektu referencyjnego. Napisałeś:

Zgodnie ze specyfikacją USB koncentrator zasilany z magistrali może zapewnić tylko jedną jednostkę na port wyjściowy, jednocześnie rysując maksymalnie 5 jednostek ...

ale, aby bezpośrednio odpowiedzieć na twoje pytanie, ten projekt z Texas Instruments (członek grupy USB i główny implementator) pokazuje, że musisz tylko zagwarantować, że całkowity prąd jest mniejszy niż 5 jednostek.


Aby rozwiązać Twój problem, zasady określają (wzięte z doskonałego USB w dokumencie w skrócie ):

Funkcje zasilane przez magistralę dużej mocy pobierają całą moc z magistrali i nie mogą pobierać więcej niż jednego obciążenia jednostkowego, dopóki nie zostanie skonfigurowane, po czym może opróżnić 5 obciążeń jednostkowych (maks. 500 mA), o ile poprosi o to w swoim deskryptorze.

Jeśli możesz zagwarantować, że stopień sterownika nie zacznie pobierać prądu, dopóki urządzenie nie zostanie skonfigurowane (co może być tak proste jak opóźnienie czasowe w kontrolerze hosta), możesz po prostu wszystko połączyć. Ponieważ cały obwód znajduje się na jednej płytce drukowanej i nie ma dostępnych dla użytkownika portów pobierania danych, prawdopodobnie można również pominąć TPS2041 i po prostu zaprojektować system tak, aby nie wymagał więcej niż 500 mA prądu w dowolnym stanie.

Kolejną korzyścią z wyliczenia jako urządzenia dużej mocy są ulepszone specyfikacje napięcia wejściowego. Po wyliczeniu jako urządzenie o niskiej mocy, host musi wytworzyć jedynie 4,40 V w porcie wejściowym (który będzie niższy w twoim urządzeniu ze względu na rezystancję kabla). Po wyliczeniu jako urządzenie dużej mocy, specyfikacja gwarantuje, że otrzymasz 4,75 V, co jest bardziej prawdopodobne w zakresie roboczym dowolnych komponentów 5 V, których możesz używać.

Kevin Vermeer
źródło
Dzięki za doskonałą odpowiedź. Ale jak skonfigurować hub w ten sposób? Czy potrzebuję zewnętrznej pamięci EEPROM, czy po prostu przywiązuję pin / GANGED do masy (i innych pinów konfiguracyjnych zgodnie ze schematem, który wysłałeś)?
Ladislav
1
Trzeba by było przywiązać! GANGED do ziemi i! EXTMEM do 3,3 V. Jednak zewnętrzna pamięć EEPROM może być przyjemna: w przeciwnym razie urządzenie pojawi się na komputerze jako „ogólny koncentrator USB”. Alternatywnie możesz prawdopodobnie emulować pamięć EEPROM za pomocą wbudowanego mikrokontrolera (skonfiguruj jeden z interfejsów I2C, aby działał jako slave). Następnie możesz zgłosić to jako „sterownik systemu głośników i kontrolera kodeków” lub coś w tym rodzaju.
Kevin Vermeer
5

Zaprojektowałem tablicę wokół tego piasty.

W mojej aplikacji umożliwiał dostęp do FT232 i FT245.

Jeśli wszystko jest na twojej płytce drukowanej, poleciłbym całkowicie całkowicie zignorować całe systemy zabezpieczenia nadprądowego. W końcu, jeśli coś na twoim PCB ulegnie awarii, cała sprawa będzie wymagała pracy, więc umożliwienie urządzenia częściowej awarii jest rodzajem spornego punktu.

W mojej sytuacji przypiąłem TUSB, aby zażądać pełnej 500 mA i wyłączyć ochronę nadprądową, i po prostu uruchomiłem wszystko prosto z USB 5.0v. Zrobiłem to, zmuszając hub do zgłaszania się jako samozasilający do nadrzędnego hosta.

Zrobiłem kilka plansz bez żadnych problemów, więc wydaje się, że jest to całkowicie wykonalna strategia. Jest również używany z kilkoma różnymi komputerami, więc czuję się całkiem pewnie, używając go takim, jakim jest.

Oczywiście, jeśli chodzi o urządzenie produkcyjne, a nie osobisty projekt lub uprząż testową (co w moim przypadku jest), jest to zupełnie inny problem.

wprowadź opis zdjęcia tutaj

(Patrz uwaga na schemacie)


Za to, co jest warte, często możesz dość okropnie nadużywać większość nowoczesnych portów USB bez większych problemów. Wiele z nich może dostarczyć znacznie więcej energii niż 500ma, dla których są przeznaczone, bez większych problemów.
Ponadto większość z nich (wszystko, co przetestowałem, z wyjątkiem niektórych laptopów ) z przyjemnością dostarczy pełne 500ma bez urządzenia, którego w ogóle trzeba wyliczyć.

Jednak różni się to w zależności od płyty głównej, w zależności od projektu hosta USB. Twój przebieg może się różnić.

Connor Wolf
źródło
Tak, zastanawiałem się nad tym, ale jak powiedziałeś, różni się to w zależności od MB. Urządzenie nie będzie produkowane w tysiącach, ale potrzebuję, aby było tak interoperacyjne, jak to tylko możliwe, aby „działało” na dowolnym komputerze. Dzięki, praktyczne obserwacje są równie cenne :).
Ladislav
@Ladislav - Nie sądzę, żeby i tak uniknąć konieczności przełączania zasilania urządzeń końcowych bez naruszania specyfikacji USB.
Connor Wolf,
Warto zauważyć, że jeśli przypiszesz urządzenie do raportu jako zasilanego z magistrali, i po prostu nie przejmujesz się przełączaniem zasilania, może ono i tak działać. To może być warte przetestowania. Możesz też poszukać układu scalonego koncentratora USB-1.1.
Connor Wolf,
1

Może być nieco brudny: TUSB2036 pozwala na wybór portu pobierania (p3 NPINT1-0 ustawiony na 10). Następnie podłącz urządzenie do dwóch (fizycznych) portów, aby móc narysować 2 jednostki równolegle.

suha
źródło