Zestawy startowe do ewaluacji systemów zasilania w USB-C

Zaawansowane systemy zasilania (takie jak w USB-C) wymagają specjalistycznych sterowników i rozbudowanych układów zasilania. Jedną z realizacji sterownika USP PD jest układ STUSB4700 produkowany przez firmę STMicroelectronics. Jest to autonomiczny sterownik standardu USB PD2 przeznaczonym do pracy jako źródło zasilania. Jedną z jego właściwości jest możliwość pracy bez konieczności komunikacji z zewnętrznym kontrolerem. Układ ten jest dobrym wyborem w sytuacji, kiedy brak jest urządzenia sterującego USB PD lub zasoby takiego urządzenia są ograniczone. Stos USB PD2 w układzie STUSB4700 jest zaimplementowany sprzętowo i umożliwia bezpieczną i poprawną negocjację połączenia z zasilanym urządzeniem wymaganą przez standard. W układ wbudowano następujące funkcje:

  • Wykrywanie połączenia pomiędzy dwoma portami USB
  • Ustanowienie poprawnego połączenia host-urządzenie
  • Wykrycie i konfiguracja Vbus w trybach pracy: z małym, średnim i wysokim prądem
  • Analiza orientacji wpiętego wtyku kabla
  • Negocjowanie dostawy energii przez USB z urządzeniem obsługującym standard USB PD
  • Odpowiednie konfigurowanie źródła zasilania
  • Monitorowanie linii Vbus oraz zapewnianie ochrony urządzenia podłączonego do magistrali

Schemat blokowy układu STUSB4700 został pokazany na rysunku 1.

Rys. 1. Schemat blokowy STUSB4700

Układ może pracować zupełnie autonomicznie, jest także wyposażony w interfejs I2C pozwalający na komunikację z hostem/masterem. Możliwa jest zmiana domyślnych ustawień poprzez zapisanie wewnętrznych rejestrów i kontrola stanu pracy układu i magistrali USB-C (w zakresie USB PD).

Jeżeli popatrzymy na wyprowadzenia złącza (rysunek 2) zobaczymy tam dwa piny oznaczone jako CC1 i CC2. Te piny tworzą magistralę przeznaczonej do wykrywania podłączenia do portu i określenia orientacji włożenia wtyku do gniazda. STUSB470 ma wbudowany blok kontrolny CC line access sterujący magistralą CC i współpracujący z warstwa protokołu USB CC, oraz sterownikiem PORT C. Blok interfejsu BMC jest przeznaczony do transmisji danych poprzez linie CC z urządzeniem negocjującym parametry zasilania.

Rys. 2. Sygnały w gnieździe USB-C

Stany linii CC1 i CC2, oraz napięcie na VBUS są podstawowymi danymi dla pracy stosu USB PD2. Stan linii CC1 i CC2 jest używany do:

  • Wykrywania połączenia pomiędzy dwoma portami USB np. pomiędzy źródłem napięcia i obciążeniem. Każda z linii CC źródła ma dołączony rezystor Rp podłączony do plusa zasilania a każda z linii CC obciążenia rezystor Rd podłączony do masy. Monitorowanie napięcia na liniach CC1 i CC2 pozwala na wykrycie połączenia obu portów (po połączeniu tworzy się dzielnik napięcia i napięcie na CC1 i CC2 spada).
  • Wykrywanie orientacji włożonego kabla. Po wykryciu połączenia jeden z pinów CC przejmuje rolę źródła napięcia zasilania VCONN. Drugi pin CC zależnie od pozycji wskazuje, która z magistral Super Speed (TX1/RX1lub TX2, RX2) będzie wykorzystywana do transmisji danych.
  • Ustalenie roli układów na magistrali (host – urządzenie).
  • Konfigurowanie wydajności prądowej źródła zasilania. W procesie inicjalizacji określa to wartość rezystancji Rp dołączanej po stronie źródła. Potem możliwa jest programowa negocjacja.

Zależnie od wartości rezystora Rp możliwe jest „zaprogramowanie” wydajności standardowej USB, 1,5A lub 3A przy +5V.

Blok BMC (BMC Driver) jest fizycznym połączeniem pomiędzy warstwą protokołu USB PD i blokiem kontrolnym wyprowadzeń CC. W trybie pracy TX konwertuje dane zakodowane w BMC (Biphase Mark Coding) i wysterowuje linie CC do pracy z prawidłowym napięciem. W trybie RX odczytuje stan linii CC i konwertuje na dane przesyłane do warstwy protokołu. BMC jest używany do transmisji danych przez linie CC1 i CC2 pomiędzy sterownikiem źródła, a sterownikiem obciążenia. Transmisja danych umożliwia programową negocjację parametrów zasilania przez USB-C.

Blok warstwy protokołu jest odpowiedzialny za zarządzanie komunikatami przesyłanymi z i do warstwy fizycznej. Wbudowane mechanizmy automatycznie zarządzają timeoutami odbioru danych, licznikami komunikatów i licznikami ponowień przesłania komunikatów. Warstwa protokołu współpracuje z blokiem Policy Engine. Blok ten negocjuje zasady dotyczące zasilania podłączonego urządzenia pracującego jako źródło energii. Ma zaimplementowane wszystkie maszyny stanów, które kontrolują tworzenie i zarządzenie komunikatami. Policy Engine wykorzystuje warstwę protokołu do wysyłania i odbierania komunikatów. Statusy odczytywane z bloku portów oraz układu monitorowania napięcia (voltage montoring) są intepretowane w bloku Policy Manager.

Ponieważ standard USB PD 2.0 dopuszcza różne napięcia na liniach Vbus, to trzeba je jakoś kontrolować. Układ sterujący musi mieć możliwość pomiaru napięcia podawanego na Vbus i jeżeli nie jest takie jak powinno być, to nie powinno się pojawić na linii Vbus złącza USB-C. Pomiar wykonuje blok Voltage Sense się poprzez linię Vbus_Sense. Po wykryciu prawidłowego połączenia typu źródło – obciążenie i prawidłowego napięcia, która ma być podane na na Vbus układ uaktywnia wyjście sterujące VBYS_EN_SRC podające napięcie Vbus na magistralę USB. Takie postępowanie pozwala wykryć wszelkie nieprawidłowości typu zbyt wysokielub zbyt niskie napięcie. W razie wykrycia nieprawidłowości STUSB4710 reaguje w sposób następujący: uniemożliwia połączenie pomiędzy źródłem zasilania i wyprowadzeniem Vbus, oraz dezaktywuje połączenie ścieżki zasilania Vbus. Do warstwy protokołu wysyłane są odpowiednie komunikaty o błędach.

Autor: admin

Admin