Przekroczenie limitu prądu dla interfejsu USB nie może być realizowane jednostronnie. Jeśli konieczne jest dostarczenie prądu o natężeniu większym niż 500 mA dla USB 2.0 i 900 mA dla USB 3.0, urządzenie zasilające i zasilane muszą skorzystać ze zgodnego protokołu podwyższania prądu do pożądanego poziomu. Urządzenie pobierające prąd musi zainicjować i obsłużyć wymianę informacji, w której ramach poinformuje zasilacz, że jest w stanie pobrać ponadnormatywną ilość prądu. Sposób sygnalizowania tej możliwości różni się pomiędzy urządzeniami. Niektóre korzystają ze standardowego protokołu USB-IF BC1.2, ale niemało bazuje na własnościowych rozwiązaniach.
Stosowane metody informowania o możliwości poboru większego prądu mogą polegać np. na zwieraniu ze sobą linii D+ i D– lub łączeniu ich ze sobą poprzez rezystor o ustalonej oporności. Wykrywanie kompatybilnej ładowarki może natomiast odbywać się np. przez podciąganie linii D+ do góry i monitorowanie napięcia na linii D–. Jeśli wykryte zostanie tam napięcie dodatnie, urządzenie przyjmuje, że zostało podłączone do specjalnej ładowarki, a nie standardowego portu USB. Jeszcze inne urządzenia podciągają napięcie na jednej linii danych, opuszczając napięcie na drugiej, a podłączenie zgodnej ładowarki powoduje zmianę napięcia na jednej z tych linii. W każdym z tych przypadków wykrycie kompatybilnego zasilacza skutkuje zwiększeniem poboru prądu z linii Vbus powyżej standardowego limitu, wynikającego ze specyfikacji USB.
Alternatywnie, informowanie o dostępności większego prądu może spoczywać na zasilaczu. Przykładowo, może on podawać na linie D+ i D– pewne napięcia, nieco większe niż 1 V. Tego typu ładowarki określane są mianem SE1. Urządzenie ładowane jest w stanie wykryć pojawienie się napięć na liniach sygnałowych, które w przypadku standardowych ładowarek są odłączone.
USB IF BC1.2
Układy obsługujące technikę RapidCharge pracują zgodnie ze standardem USB IF w wersji 1.2. Wykrywanie faktu podłączenia ze sobą kompatybilnych urządzeń, wspierających ten standard, rozpoczyna się więc po stronie sprzętu ładowanego. Wymaga to zastosowania odpowiednich obwodów, podłączonych bezpośrednio do przewodów interfejsu USB. Zostały one przedstawione na rysunku 1.
Pokazane obwody można podzielić na pięć bloków funkcjonalnych, odpowiadających za:
- wykrywanie napięcia Vbus,
- wykrywanie kontaktu na linii danych,
- detekcję pierwotną,
- detekcję wtórną,
- detekcję ACA.
Komunikacja pomiędzy urządzeniami rozpoczyna się od wykrycia napięcia na linii Vbus, a dokładniej od momentu, gdy przekroczy ono zadany próg. Próg ten jest określony dla danej sesji ładowania i został oznaczony na rysunku 1 jako VOTG_SESS_VLD.
Drugi etap jest opcjonalny i służy upewnieniu się, że linie sygnałowe obu urządzeń są połączone – albo do specjalnej ładowarki, albo do zwykłego portu USB. Oznacza to zarazem, że można rozpocząć detekcję pierwotną.
Sama detekcja pierwotna rozpoczyna się z pewnym opóźnieniem, którego czas jest z góry ustalony, a odliczanie zaczyna się w momencie pojawienia się zasilania na linii Vbus. Pozwala to upewnić się, że blok odpowiadający za detekcję kontaktu na liniach danych (jeśli jest obecny) będzie miał czas na zadziałanie lub że linie po prostu się ze sobą połączą (linie zasilania są dłuższe w złączu i wcześniej dochodzi pomiędzy nimi do kontaktu, niż pomiędzy liniami danych).
Wykrywanie scenariusza pracy
Istnieją trzy scenariusze podłączenia, które urządzenie przeznaczone do ładowania musi rozpoznać. Może ono być dołączone do zwykłego portu USB, do zgodnej ładowarki albo do innego urządzenia zgodnego z omawianą technologią, ale niebędącego ładowarką, a jedynie innym sprzętem, który w podobny sposób można ładować. Sposób prowadzenia połączeń w klasycznym porcie USB oraz w urządzeniu, które ma być ładowane zgodnie z USB-IF, jest znany, co oznacza, że konieczne było takie zaprojektowanie ładowarki, by tę dało się odróżnić od pozostałych dwóch urządzeń. Poszczególne scenariusze zostały pokazane na rysunkach 2, 3 i 4.
W przypadku połączenia ze zwykłym portem USB, na linii D– pojawia się napięcie niższe od napięcia odniesienia (VDAT_REF), co wynika z rezystora RDP_DWN podłączonego do masy.
W przypadku podłączenia do urządzenia, które może być szybko ładowane, ale samo nie służy do dostarczania prądu, na linii D+ napięcie będzie wyższe niż VDATA_REF oraz włączone zostanie źródło prądowe oznaczone na rysunku 3 jako VDM_SRC, co spowoduje podniesienie napięcia na linii D–, a więc przekroczy ono VDATA_REF.
Jeśli urządzenie zostanie podłączone do kompatybilnego zasilacza, na linii D– pojawia się napięcie większe niż VDAT_REF, a rezystancja pomiędzy D+ a D– nie przekracza 200 V.
Rozróżnienie scenariuszy przedstawionych na rysunkach 3 i 4 określane jest mianem detekcji wtórnej.
Opcjonalnie urządzenie może obsługiwać detekcję ACA – jest ona implementowana tylko w urządzeniach z portem USB z wtyczką Micro-AB. Detekcja ACA opiera się na pomiarze rezystancji na pinie oznaczonym ID.
Obsługa układu USB2534
Kontroler portów USB – układ Microchip USB2534, obsługuje technologię RapidCharge, zgodną z BC1.2. Ponadto wspiera też różnego rodzaju specyficzne standardy zwiększonego przesyłu prądu przez USB, takie jak SE1 oraz Chinese Telecommunications Industry YD/T 1591-2009. W efekcie układ samodzielnie jest w stanie współpracować z urządzeniami praktycznie dowolnych producentów – w tym tych największych, takich jak Apple i Samsung.
USB2534 jest w stanie samodzielnie, automatycznie wykryć, do jakiego rodzaju ładowarki jest podłączony oraz pozwala na pracę interfejsu USB w klasyczny sposób. Zawiera cztery porty USB w ramach wbudowanego koncentratora oraz jeden do podłączenia z wyprowadzeniami USB mikrokontrolera lub innego urządzenia (rysunek 5). Wśród portów koncentratora tylko jeden może być wykorzystywany do podłączenia ładowarek, przy czym wszystkie mogą służyć jako zwykłe porty USB. Wszystkie 4 porty można także skonfigurować w roli wyjścia ładowarki USB przez odpowiednie dołączenie rezystora podciągającego o wartości 10 kV.
Alternatywnie, konfiguracja układu jako ładowarki może być dokonana także za pomocą rejestrów USB2534. Wbudowany firmware sprawdza ich stan, włączając obsługę szybkiego ładowania dla poszczególnych portów. Rejestry odpowiadające za omawiane opcje są w pamięci jednorazowo programowalnej, której wartości przypisuje się za pomocą narzędzia ProTouch. Narzędzie to zostało opracowane przez firmę Microchip właśnie na potrzeby programowania i konfiguracji koncentratorów USB. Może być wykorzystywane podczas tworzenia nowych projektów oraz w trakcie prototypowania, a więc zarówno gdy potrzebne jest zaprogramowanie pojedynczego urządzenia, jak i na linii produkcyjnej.
Sposób działania kontrolera USB2534 jest dosyć inteligentny – został zaprojektowany tak, by można było łatwo zrealizować typowe aplikacje. Przykładowo, jeśli do portu, który może być wykorzystany jako wejście ładowarki, nie zostało nic podłączone (na linii Vbus nie ma napięcia), wszystkie porty skonfigurowane do pracy jako ładowarki będą dostępne w tym trybie. Jeśli jednak do portu wejścia ładowarki zostanie coś podłączone, pozostałe porty wyjdą z wcześniej wymienionego trybu. Porty skonfigurowane do pracy jako źródła prądu będą także funkcjonować, gdy układ jest uśpiony, a zdalne wybudzanie jest wyłączone. Kolejność wykrywania poszczególnych standardów zwiększonego poboru prądu została dobrana tak, by móc optymalnie obsłużyć wszelkiego rodzaju urządzenia.
Po wejściu w tryb RapidCharge, USB2534 przechodzi do ładowania zgodnie ze specyfikacją SE1, podając odpowiednie napięcia na wyprowadzenia. Jeśli podłączono urządzenie zgodne z SE1, pasywnie wykryje odpowiednie napięcia i zacznie ładowanie. Dany port pozostanie w trybie ładowania zgodnie z SE1 przez cały czas, gdy pobierany jest prąd przez podłączone urządzenie.
Jeśli podłączone zostanie urządzenie zgodne ze specyfikacją USB-IF BC1.2, pobierany przez nie prąd będzie na tyle duży, że na linii D– pojawi się niskie napięcie. Jednakże urządzenia zgodne z innymi standardami szybkiego ładownia także są w stanie obniżyć napięcie na linii D– do podobnego poziomu. Dlatego cała procedura decydowania o trybie ładowania musi uwzględniać zwieranie linii D+ i D– z podciąganiem D+ za pomocą rezystora 125 kV z określonymi opóźnieniami, co pozwala szczegółowo rozpoznać dopuszczalne tryby ładowania. Zostało to przedstawione na rysunku 7.
Po podłączeniu urządzenia pracującego w trybie hosta – tak jak zostało to wspomniane wcześniej – wszystkie porty pracujące w trybie ładowarki automatycznie wyjdą z tego trybu, a kontroler będzie oczekiwać. Host może jednak przesłać komendę zmiany trybu pracy poszczególnych portów. Ponadto zewnętrzny mikrokontroler może wyłączyć domyślną automatyczną procedurę detekcji trybu ładowania, zmieniając rejestry kontrolera. Naturalnie może ją też następnie ponownie włączyć.
Podsumowanie
Zastosowanie kontrolera, takiego jak Microchip USB2534, znacząco ułatwia implementację obsługi wielu różnych standardów przyspieszonego ładowania akumulatorów przez USB. Zgodność kontrolera z najpopularniejszymi standardami pozwala poprawnie obsłużyć większość sprzętu elektronicznego. Opcje konfiguracyjne oraz bogaty zestaw funkcji umożliwia precyzyjne dostosowanie pracy układu do potrzeb konkretnej aplikacji.
Marcin Karbowniczek, EP