HUB USB + USB Audio DAC

HUB USB + USB Audio DAC
Pobierz PDF Download icon
Kilka miesięcy wcześniej opisywałem na łamach EP przetwornik USB Audio DAC mający wyjścia analogowe i cyfrowe. To urządzenie powstało przede wszystkim do współpracy z komputerkiem Raspberry Pi. Miniaturowa płytka Rapberry nie pozwala na zamontowanie na niej dużej liczby złącz. Po dołączeniu przetwornika do płytki pozostaje tylko jeden wolny port USB, którego można użyć dla klawiatury lub myszki. Nie dosyć, że w związku z tym możemy użyć tylko jednego lub drugiego, to na dodatek nie ma miejsca na przyłączenie np. pendriva. Zauważyłem, że przydałby się HUB USB zwiększający liczbę portów do przynajmniej 4. Rekomendacje: urządzenie rozszerza funkcjonalność komputerka Raspberry Pi, który może stać się odtwarzaczem multimedialnym dającym dźwięk o bardzo dobrej jakości.

Oczywiście, można kupić gotowy HUB USB kompatybilny z Raspberry Pi, ale zwiększyłoby to liczbę współpracujących z sobą elementów do trzech: Raspbery Pi, HUB USB, karta USB Audio DAC. Stwierdziłem, że wygodniejszym rozwiązaniem będzie urządzenie integrujące HUB USB oraz przetwornik USB Audio DAC. Skłoniło minie to do zaprojektowania płytki drukowanej bazującej na układach GL850G pełniącym funkcję HUB oraz PCM2706C spełniającym funkcję przetwornika Audio DAC z wysokiej jakości wyjściem audio i cyfrowym interfejsem S/PDIF.

Układ GL850G ma 4 interfejsy USB2.0. Każdy z nich może pracować w trybie USB High Speed, z prędkością transmisji do 480 Mb/s. W moim urządzeniu 3 interfejsy układu GL850G wyprowadziłem na 3 złącza USB A, natomiast czwarty obsługuje układ PCM2706C. Dołączenie mojego urządzenia do Raspberry Pi pozwala na jednoczesne korzystanie z 4 portów USB (1 z Raspberry Pi, 3 z HUB'a) oraz z przetwornika Audio DAC z wyjściem analogowym i dwoma cyfrowymi S/PDIF - COAXIAL i OPTO.

Płytka jest przeznaczona przede wszystkim do użycia jej z Raspberry Pi, dlatego układ scalony realizujący funkcje HUB'a USB musiał spełnić dwa podstawowe warunki:

  • Możliwość pracy z szybkością High Speed (HS) wynoszącą 480 Mb/s (około 60 MB/s).
  • Musi być kompatybilny z Raspberry Pi.

Przystępując do realizacji mojego projektu zauważyłem, że wiele układów scalonych i gotowych urządzeń pracujących w standardzie USB2.0 potrafi pracować tylko w trybach Low Speed (1,5 Mb/s tj. około 186 kB/s) lub/i Full Speed (12 Mb/s tj. około 1,5 MB/s). Należy zaznaczyć, że podane prędkości transmisji dotyczą chwilowych prędkości transmisji danych.

Ponieważ interfejs USB2.0 może pracować w trybie dupleks oraz algorytm przesyłania danych jest dość skomplikowany, to rzeczywiste maksymalne prędkości przesyłu danych są znacznie mniejsze. Dla transmisji Low Speed można w praktyce uzyskać szybkość do około 150 kB/s, dla Full Speed do około 1,25 MB/s, a dla transmisji High Speed do około 50 MB/s.

Aby było możliwe odtwarzanie przez Raspberry Pi filmów zapamiętanych na pendrive bez "zacięć", jest wymagana praca HUB z prędkością High Speed. Układ scalony GL850G spełnia te warunki. Dodatkową jego zaletą jest jego niewygórowana cena - udało mi się go kupić u polskiego dystrybutora w cenie około 10 złotych.

Układ PCM2706C produkcji firmy Texsas Instruments należy do grupy układów scalonych określanych jako "Stereo Audio DAC with USB Interface". Do tej grupy należą układy PCM2704C, PCM2705C, PCM2706C oraz PCM2707C. Układy PCM2704C i PCM2705C mają tak samo rozmieszczone wyprowadzenia. Podobnie jest w wypadku układów PCM2706C i PCM2707C.

Dlatego w urządzeniu można zastosować układy PCM2706C lub PCM2707C bez wykonywania zmian na płytce drukowanej. Układy są obsługiwane za pomocą klasy HID obejmującej takie urządzenia, jak: klawiatury, myszki, przełączniki, joysticki, czytniki kodów kreskowych, termometry i inne.

Układ PCM2706C umożliwia wykorzystanie trzech (opcjonalnie nawet siedmiu) przycisków obsługiwanych za pomocą klasy HID: Volume+, Volume-, Mute (opcjonalnie: Next Track, Previous Track, Stop, Play). Systemy Windows rozpoznają dołączone urządzenie klasy HID i zwykle automatycznie instalują potrzebne sterowniki.

Bez potrzeby instalowania dodatkowego oprogramowania w systemach Windows (sprawdziłem w XP, 7) automatycznie jest instalowane oprogramowanie dla przetwornika DAC (odsługujące jednocześnie S/PDIF Out). Układ PCM2706C jest również rozpoznawany w systemach Linux i znajduje się na liście kompatybilnych z Raspberry Pi przetworników DAC.

Można również podłączyć moją płytkę do laptopa lub komputera stacjonarnego uzyskując dodatkowe 3 szybkie porty USB oraz zwykle "lepszą" kartę dźwiękową. Zaletą zewnętrznej karty dźwiękowej jest pozbycie się różnych przydźwięków na wyjściach analogowych występujących często na płytach głównych komputerów ze zintegrowanymi kartami.

Interfejsy USB

Rysunek 1. Uproszczony schemat obwodów HOST’a i DEVICE’a dla transmisji USB w trybie LS i FS

Interfejs USB zawiera jedną parę linii danych pracującą w sygnalizacji różnicowej: D+, D-. Dane mogą być przesyłane w kierunku HOST -> DEVICE albo DEVICE -> HOST. Fizycznie w danym momencie kierunek przesyłu danych jest ściśle określony.

Kontroler nadrzędny (HOST) steruje przepływem danych. Podłączone urządzenie (DEVICE) może przesyłać dane do HOST'a tylko na jego żądanie. Schemat połączeń wewnętrznych nadajników i odbiorników dla transmisji LS i FS jest taki sam. Dla transmisji HS układ ten jest inny.

Transmisja danych w trybie LS i FS jest realizowana przez nadajniki z wyjściem trójstanowym o bardzo niskiej impedancji wyjściowej (rysunek 1). W szereg z wyjściami nadajników są włączone rezystory Rs o rezystancji 45 Ω. Zapewniają one dopasowanie do różnicowej impedancji falowej przewodów D+/D- wynoszącej 90 Ω. W czasie nadawania danych (TxD+/-) tylko jedna z dwóch par nadajników może być włączona (OE=1) - albo nadajniki hosta, albo nadajniki device.

Odczyt danych (Rx) odbywa się przez odbiorniki z wejściem różnicowym o czułości około 200 mV. Host rozpoznaje szybkość transmisji dzięki rezystorowi Rpu 1,5 kΩ przyłączonemu do napięcia 3,3 V w urządzeniu device. Jeśli rezystor ten jest dołączony do linii D+, to jest załączany tryb transmisyjny Full Speed. Dla transmisji Low Speed rezystor jest przyłączany do linii D-. Odłączenie rezystora Rpu oznacza odłączenie urządzenia device. Po stronie hosta linie D+ i D- są obciążone rezystorami Rpd 20 kΩ. Amplituda napięcia na liniach D+/D- w obu trybach transmisji wynosi około 3,3 V.

Rysunek 2. Uproszczony schemat obwodów HOST’a i DEVICE’a dla transmisji USB w trybie HS

Transmisja danych w trybie High Speed jest realizowana w innym układzie elektrycznym. Jego schemat ideowy pokazano na rysunku 2. Nadajniki mają wyjścia symetryczne, a odczyt danych (Rx) odbywa się za pomocą odbiorników z wejściem różnicowym.

Ich czułość jest na poziomie 10 mV. Brak rezystora 1,5 kΩ, linie D+/D- są po obu stronach obciążone rezystorami 45 Ω. Nadawanie danych polega na przełączaniu w nadajniku źródła prądowego 17,8 mA. Taka wartość prądu sterującego daje na liniach D+ i D- amplitudę napięcia rzędu 400 mV, jeśli do nadajnika jest przyłączony odbiornik. Po odłączeniu odbiornika amplituda napięcia na liniach D+/D- wzrasta dwukrotnie do około 800 mV. Ten efekt zwiększenia się amplitudy napięcia na liniach D+/D- można wykorzystać do detekcji odłączenia odbiornika.

Kontroler USB (host USB) rozpoczyna pracę zawsze przy szybkości FS lub LS. Programowa procedura negocjacji pomiędzy kontrolerem i urządzeniem może zakończyć się przełączeniem ich obwodów z wersji FS na HS. Jak wynika z powyższego opisu, elektryczny interfejs USB kompatybilny z szybkością transmisji HS musi mieć możliwość zmiany swej struktury w trakcie procedury negocjacji.

Układ scalony GL850G

Rysunek 3. Schemat blokowy układu scalonego GL850G

Układ scalony GL850G produkowany przez firmę Genesys Logic zawiera wszystkie bloki funkcjonalne potrzebne do zbudowania koncentratora USB. Układ ten ma 4 interfejsy wyjściowe USB - DSPOTR. Na rysunku 3 zamieszczono schemat blokowy układu scalonego GL850G. Port USPORT jest dołączony do urządzenia nadrzędnego (komputera hosta).

Blok PLL wytwarza z sygnału wejściowego 12 MHz wewnętrzne sygnały zegarowe 120 i 480 MHz. Blok CPU zawiera jednostkę mikroprocesorową. Jest nią 8-bitowy procesor RISC z 2 kB ROM i 64 B RAM. Działa z szybkością 6 MIPS. Procesor służy głównie do dekodowania poleceń wydanych przez hosta oraz tworzenia i wysyłania odpowiedzi.

Opcjonalnie może czytać zewnętrzny EEPROM oraz może sterować wyjściami GPIO. Blok FRTIMER wykrywa początek i koniec transmisji pojedynczych ramek danych (np. SOF). Blok UTMI wykonuje zadania niskiego poziomu, takie jak formowanie ramek danych, odtwarzanie sygnału zegara itp.

Blok SIE obsługuje protokół wnikający ze specyfikacji 2.0. Wykonuje między innymi kontrolę błędów CRC. Blok REPERATOR transmituje sygnały w sytuacji, gdy szybkość transmisji na jego wejściu i wyjściu jest taka sama. Blok TT (Transaction Translator) transmituje sygnały w sytuacji, gdy szybkość transmisji na jego wejściu i wyjściu jest różna. Blok ten zmienia np. szybkość transmisji z HS na FS lub LS. Porty DSPORT służą do podłączenia urządzeń - device. Każdy taki blok ma dodatkowo blok DSPORT Logic sterujący diodami LED oraz sygnałami sterującymi blokowaniem zasilania danego portu po wykryciu jego przeciążenia.

W opisywanym urządzeniu do kontroli zasilania zastosowałem układy scalone produkcji Texas Instrument typu TPS2062DR-1. Zawiera on dwa klucze analogowe o rezystancji w stanie włączonym ok. 80 Ω. Prąd każdego z kluczy jest ograniczony do 1,1 A (maksymalnie 1,9 A). Przekroczenie prądu znamionowego jest sygnalizowane wyzerowaniem odpowiedniego wyjścia OCn#. Układ scalony GL850G włącza wybrany klucz analogowy przez wyzerowanie odpowiedniej linii PENn#.

Układy scalone PCM2706C i PCM2707C

Rysunek 4. Schemat blokowy układów scalonych PCM2706C/PCM2707C

Układy PCM2706C/07C zawierają stereofoniczny przetwornik DAC, koder S/PDIF oraz interfejs I²S. Mają również bloki potrzebne do komunikacji z komputerem nadrzędnym przez USB. Układy PCM2706C/07C mają wbudowany stabilizator napięcia 3,3 V, który zasila wewnętrzne bloki funkcjonalne. Linie D+/D- przez interfejs USB SIE są dołączone do bloku USB Protocol Controller. Blok ten jest odpowiedzialny za (szeregową) transmisję danych do przetwornika DAC, kodera S/PDIF oraz opcjonalnie do bloku I²S.

W strukturze układu scalonego znajduje się też blok generatora kwarcowego 12 MHz. Generowana częstotliwość jest mnożona ×8 przy wykorzystaniu pętli PLL. Wyjściowa częstotliwość 96 MHz taktuje pracą bloku USB oraz pętli PLL przetwornika DAC.

Na schemacie blokowym układów PCM2706/07C (pokazanym na rysunku 4) elementy występujące tyko w układzie typu PCM2706C oznaczono (1), a elementy występujące tylko w układzie typu PCM2707C oznaczono (2).

W układzie typu PCM2706C jest możliwy odczyt trzech (opcjonalnie siedmiu) przycisków dołączony do wejść HID0, HID1 i HID2 (opcjonalnie również FUNC0...3). Mogą pełnić rolę przycisków regulatora siły głosu: Volume+, Volume- oraz Mute. Na mojej płytce nie zamontowałem żadnych przycisków, ale jest to możliwe, ponieważ wyprowadziłem dla nich punkty lutownicze. Układ typu PCM2707C nie pozwala na dołączenie przycisków sterujących, natomiast ma interfejs szeregowy do sterowania za pomocą zewnętrznego procesora (linie MS, MC, MD).

Blok interfejsu I²S wykorzystuje 5 sygnałów: DIN, SYSCK(MCLK), BCK(BCLK), LRCK(LRCLK) oraz DOUT. Interfejs ten pracuje w formacie 16-bitowym I²S (bit MSB danych opóźniony o jeden bit). Blok interfejsu I²S jest uruchamiany, jeśli wejście FSEL zostanie wyzerowane. Na mojej płytce nie przewiduję wykorzystywania tego interfejsu, ale wyprowadziłem punkty lutownicze ze wszystkimi jego sygnałami.

Zainteresowanych czytelników odsyłam do dokumentacji technicznej układów PCB2706/07.

Jeśli na wejście FSEL zostanie ustawione, to na wyjściu DOUT pojawi się cyfrowy przebieg S/PDIF.

Płytka HUB USB z USB AUDIO DAC

Rysunek 5. Schemat ideowy płytki HUD USB z USB AUDIO DAC (1)

Schemat ideowy urządzenia nie zmieścił się na jednym rysunku i dlatego podzielono go na dwie części pokazana na rysunku 5 i rysunku 6. Głównym elementem płytki jest układ scalony U11 typu GL850G.

Jest on zasilany za pomocą USB, przez gniazdo UIN. Stabilizator U10 (LM2936MP-3.3) stabilizuje napięcie 3,3 V. Układ U11wymaga zasilania napięciem +5 V (V5, pin 47) oraz napięciami 3,3 V: V33, DVDD, AVDD. Wszystkie napięcia zasilające są filtrowane za pomocą kondensatorów 100 nF.

Układ GL850G pracuje w trybie Power Self. Przewidziałem pracę portów "wyjściowych" USB z zasilaniem z magistrali USB lub z zasilaniem zewnętrznym (gniado ZZ). Zworki Z3 i Z4 decydują, które porty moją być zasilane z zewnętrznego zasilacza.

Zworka Z3 decyduje o źródle napięcia zasilania dla portów UO1 i UO2, a zworka Z4 dla portu UO3 i układu AUDIO DAC. Poszczególne porty USB mogą mieć zabezpieczenie przed zwarciem. Układ scalony U3 typu TPS2062DR-1 zabezpiecza porty UO1 i UO2, układ U8 zabezpiecza port UO3 oraz zasilanie układu U1 typu PCM2706. Na płytce drukowanej przewidziałem zworki (ZZ1, ZZ2, ZZ3, ZZ4) zastępujące układy U3 i U8. W moim prototypie wlutowałem tylko pierwszy układ U3, a zworki ZZ3 i ZZ4 zostały zwarte. Powoduje to, że tylko pierwsze dwa porty USB są odporne na zwarcia i przeciążenia.

Układ scalony GL850G steruje zasilaniem portów USB. Wybrałem tryb sterowania Individual Mode (rezystor R14 dołączony do masy). W tym trybie pracy układ GL850G generuje 4 sygnały: PEN1#, PEN2#, PEN3# oraz PEN4# włączające zasilanie w danym porcie. Układ czyta również 4 sygnały: OVC1#, OVC2#, OVC3# oraz OVC4# wystawiane przez układy scalone U3 i U8 (TPS2062DR-1). Wyzerowanie dowolnego wyjścia OVCn# oznacza przeciążenie odpowiadającego mu kanału.

Rysunek 6. Schemat ideowy płytki HUD USB z USB AUDIO DAC (2)

Układ U11 (GL850G) po wykryciu logicznego 0 na którymś z wejść OVCURn# (linia OVCn#) natychmiast ustawia odpowiadające mu wyjście PWRENn# (linia PENn#). Układ U11 może zasygnalizować stan przeciążenia zaświeceniem diody LED z odpowiedniego wyjścia PAMBERn. W moim urządzeniu z tej możliwości nie korzystam.

Wykorzystałem natomiast wyjścia PGREENn (linie GREENn) dla diod LED oznaczające prawidłowe podłączenie do danego portu urządzenia np. pendriva. Układ GL850G można odpowiednio skonfigurować przez odpowiednie dołączenie diod LED do masy lub do VCC. Wybrałem konfigurację domyślną, w której wszystkie diody LED są przyłączone do masy.

Układy U11 (GL850G) i U1 (PCM2706C) wymagają doprowadzenia częstotliwości taktującej 12 MHz. Zastosowałem scalony generator typu CFPS-73-12 MHz taktujący obydwa układy scalone. Jego wyjście jest doprowadzone do układu U11 przez kondensator C4, a do układu U1 przez rezystor R96.

Linie danych dla portu wejściowego (UIN) i trzech portów wyjściowych (UO1, UO2 i UO3) zostały zabezpieczone przed uszkodzeniem specjalnymi układami scalonymi typu TVS8240026 (U2, U4, U6, U7). Zawierają one diodę Zenera i dwie pary szybkich diod przełączających o bardzo małej pojemności pasożytniczej. Na płytce drukowanej pary linii danych USBDNn i USBDPn zostały poprowadzone z wykorzystaniem opcji Diffrential Pair programu Altium Designer.

Drugim ważnym układem scalonym na mojej płytce jest układ scalony U1 typu PCM2706C (lub PCM2707C). Aby uzyskać lepszą funkcjonalność mojego urządzenia dodałem kilka dodatkowych elementów. Układ scalony PCM2706C pracuje w typowej konfiguracji "Bus-Powered". Wyjściowe sygnały audio LINOL i LINOR zostały doprowadzone na wejście filtrów dolnoprzepustowych zbudowanych na wzmacniaczach operacyjnych U5A i U5B typu OPA2353.

Są to wzmacniacze o bardzo małych zniekształceniach z wyjściami (i wejściami) typu Rail-to-rail. Filtry dolnoprzepustowe mają po dwa wejścia. Pracują jednocześnie jako sumatory. Na każdym z wyjść wzmacniaczy U5A i U5B (VOXL i VOXR) pojawia się suma sygnałów analogowych: analogowy sygnał z wyjścia układu scalonego U1(LINOL dla kanały lewego, LINOR dla kanału prawego) oraz analogowy sygnał z gniazda JIN (JACK 3,5mm - VINL dla kanału lewego, VINR dla kanału prawego).

Po odcięciu składowej stałej przez kondensatory elektrolityczne CEL i CER sygnały wyjściowe VOYL i VOYR trafiają na styki wyjściowego gniazda JOUT typu JACK STEREO 3.5 mm. Dla obciążenia równego lub większego od 10 kΩ zniekształcenia nieliniowe na tych wyjściach nie powinny przekraczać poziomu 0.006%. Aby zmniejszyć ewentualne zafalowania charakterystyki przenoszenia związane z obciążeniem pojemnościowym (pojemność podłączonych kabli) dodałem szeregowo w wyjściami rezystory RML i RMR o rezystancji 49,9 Ω.

Wejściowe gniazdo JIN przewidziałem do przyłączenia analogowego wyjścia dźwięku z Raspberry Pi. Z doświadczenia wiem, że oprogramowanie dla Raspberry Pi nie zawsze obsługuje zewnętrzną przystawkę USB Audio. Aby na wyjściu (gniazdo JOUT) nie zanikał sygnał w zależności od tego, na którym z wyjść z Raspberry Pi (wyjście analogowe albo wyjście z układu PCM2709C) występuje dźwięk, zastosowałem wspomniany wcześniej sumator.

Układ scalony PCM2706C ma wyprowadzenie SSPND (nóżka 11), które początkowo jest wyzerowane. Po prawidłowym połączeniu się układu PCM2706C z czwartym portem USB układu GL850G oraz pomyślnym zakończeniu procesu enumeracji urządzenia przez host, na wyjście SSPND zostaje ustawione. Powoduje to wysterowanie tranzystora T1 i zaświecenie się diody L2. Kondensatory CU1...4 filtrują wewnętrzne napięcia zasilania układu PCM2706C.

Na płytce zamontowałem cyfrowe wyjścia sygnału S/PDIF. Wyjście optyczne obsługuje nadajnik TOO (TOTX147PL). Wejściowy sygnał dla tego elementu to SPDIF_DO. Wyjście SPDIF COAXIAL zastało przeprowadzone przez dwie bramki układu U9. Wyjścia z bramek układu U9 zawierają rezystory RO1...RO3 oraz R114 zapewniające impedancję wyjściową zbliżoną do 75 Ω.

Na płytce urządzenia zamontowałem kilka diod LED. Dioda L1 sygnalizuje załączenie napięcia zasilania +3,3 V. Dioda L2 sygnalizuje poprawne działanie układu PCM2706C. Diody LO1...LO3 sygnalizują poprawne podłączenie do magistrali USB urządzeń zewnętrznych.

Dla wyjść analogowych zbudowałem na tranzystorach T4 i T5 proste źródła prądowe sterowane ujemnymi połówkami sygnałów sinusoidalnych audio z wyjść wzmacniaczy U5A, U5B. Pary tranzystorów sterują dwukolorową diodę LED (L3). Dla sygnału z lewego kanału świeci się dioda zielona, dla sygnału z prawego kanału świeci się dioda czerwona. Jeśli obecne są sygnały w obydwu kanałach diody te świecą kolorem wypadkowym zbliżonym do żółtego (tabela 1).

Na płytce drukowaniej przwidziałem otwory KEY przeznaczone do dołączenia przycisków Volume+, Volume- oraz Mute. Podanie logicznej 1 (lub 3,3 V) na dane wejście jest interpretowane jako naciśniecie przycisku. Jak wspomniano, przyciski obsługiwane są tylko przez układ scalony PCM2706C. Podobnie można wykorzystać otwory "I²S".

Podczas normalnej pracy układu PCM2706C piny 1 i 2 zworki Z2 (FS) powinny być rozwarte. Dla zwartych pinów 1 i 2 zworki Z2 (FS) układy scalone PCM2706C/07C wykorzystują piny DOUT, MCLK, BCLK, LRCK oraz DIN jako magistralę I²S. Sposób użycia tej magistrali może być różny (wspominałem o tym wcześniej). Po szczegóły odsyłam do noty katalogowej PCM2704C_2705C_2706C_2707C.pdf.

Wykaz elementów

Rezystory: (SMD 0805):
R14: 100 kΩ
R96: 100 Ω
R3, R15, RAL, RAR, RBL, RBR, RCL, RCR: 10 kΩ
R3, R15, RCL, RCR: 11 kΩ
RDL, RDR, RE1, RE2: 13 kΩ
R2, RGL, RGR: 1,0 kΩ
R5, R22, R23: 1,5 kΩ
R30, R114, RO1, RO2: 200 Ω
R20, R21, RO3: 22 Ω
R32: 330 Ω
R4, R18, RL3, RL4, RR3, RR4: 33 Ω
R36, R37: 39 kΩ
RL1, RR1: 3,3 kΩ
R10, R12, R13, R19: 470 Ω
R17: 47 kΩ
RML, RMR: 49,9 Ω
R16: 680 Ω/1%
R9, R11: 6,8 kΩ

Kondensatory:
C8, C9, C12...C17, C90, C110: 100 nF (SMD 0805)
CEF: 100 µF (SMD 7343)
CE1: 10 µF (SMD 3528)
C10, C18, CC1... CC6: 10 µF (SMD 1210)
C1...C3, C11, C26, CU2... CU6: 1 µF (SMD 0805)
C3L, C3R, C4: 220 pF (SMD 0805)
CL1, CR1: 22 nF (SMD 0805)
C5, C97: 22 pF (SMD 0805)
C2L, C2R: 2,2 nF (SMD 0805)
CEL, CER: 47 µF/16 V (SMD 6032)
CU1, C1L, C1R, C6, C7: 4,7 µF (SMD 0805)

Półprzewodniki:
D1...D3, D41: BAT54S (SOT23)
L3: dwukolorowa dioda LED
L1, L2: czerwona dioda LED
LO1, LO2, LO3: zielona dioda LED
T1: BC847 (SOT23)
T4, T5: BC857 (SOT23)
U2, U4, U6, U7: TVS8240026 (SOT143-4L)
U9: 74LVC2G34DBVT (SOT23-6)
U11: GL850G (LQFP48)
U10: LM2936MP-3.3 (SOT223)
U5: OPA2353 (SO8)
U1: PCM2706 (TQFP32)
U3, U8: TPS2062DR-1 (SO8)

Inne:
OSC1: generator CFPS-73-12MHz (SG-710)
ZZ: FCR681465 (FCR681465)
JIN, JACK_OUT: złącza Jack
UIN: gniazdo micro USB
LX3: dławik 47 µH (SCDS47)
JO: gniazdo RCA
TOO: nadajnik TOTX147
UO1, UO2, UO3: gniazdo USBA

Eksploatacja

System Windows

Rysunek 7. "Głośniki USB AUDIO DAC" na liście urządzeń Audio w systemie Windows

Płytka po dołączeniu do komputera z systemem Windows inicjuje instalowanie sterowników dla HUB USB. Po pomyślnym zainstalowaniu tych sterowników powinien być wykryty również układ USB Audio DAC.

Po pomyślnym zainstalowaniu Audio DAC ma w systemie Windows lub Linux jedno wyjście (głośniki) nazwane USB AUDIO DAC z możliwością programowej regulacji poziomu wyjściowego (rysunek 7).

Fizycznie jednak układ PCM2706C ma dwa wyjścia - stereofoniczne analogowe oraz cyfrowe S/PDIF. Regulacja poziomu wyjściowego dotyczy tylko wyjścia analogowego. Wyjście S/PDIF pracuje zawsze z pełnym wysterowaniem.

Przez to wyjście nie można przesyłać danych skompresowanych (AC-3 lub DTS). W systemach Windows sygnały wyjściowe pojawiają się jednocześnie na wyjściach analogowych, jak i na wyjściu cyfrowym. W systemach Linux nie zawsze tak jest.

System Raspbian

AUDIO DAC jest wykrywany również przez Raspberry Pi. W systemie Raspbian może być potrzebne zmodyfikowanie zbioru /etc/modprobe.d/alsa-base.conf. Na listingu 1 zamieszczono ostatnie linie zbioru /etc/modprobe.d/alsa-base.conf zmodyfikowane w taki sposób, aby przystawka dźwiękowa USB miała wyższy priorytet niż "karta" procesora BCM2835. Najważniejsze w tym listingu są linie druga, czwarta oraz ostatnia (pogrubione dla wskazania).

Po modyfikacji tego zbioru AUDIO DAC jest obsługiwany przez programy "play", "mplayer", "mocp" itd. W systemie Raspbian zainstalowanym na Raspberry Pi pojawia się cyfrowy dźwięk z wyjścia S/PDIF. Audio DAC jest obsługiwany również w systemie Raspbmc.

Montaż i uruchomienie

Rysunek 8. Schemat montażowy płytki drukowanej HUB USB z USB AUDIO DAC

Schemat montażowy płytki pokazano na rysunku 8. Montaż elementów najlepiej rozpocząć od wlutowania układu U11 (GL850G). Układ ma obudowę LQFP48 o rozstawie nóżek 0,5 mm. Wlutowanie tego układu nie jest łatwe, ale możliwe w warunkach amatorskich.

Po wlutowaniu tego elementu należy dokładnie sprawdzić czy nie wystąpiły zwarcia pomiędzy wyprowadzeniami. Następnie należy wlutować stabilizator napięcia U10 (LM2936MP-3.3) oraz złącze mikro USB UIN. Dalej, proponuję wlutowanie generatora kwarcowego OSC1 (12 MHz), wszystkich kondensatory filtrujących napięcie zasilania oraz dławika LX3 (47 µH).

Fotografia 9. Płytka HUB USB z USB AUDIO DAC w obudowie

Po wlutowaniu elementów rezystorów R15...R18, pojemności C3...C5, C8 oraz diody D3 (BAT54S) można podłączyć pierwszy raz naszą płytkę przez kabel USB do komputera. Komputer powinien znaleźć układ GL850G.

Jeśli próba przebiegła pomyślnie, proponuję wlutowanie układu U1 (PCM2706C). Ma on obudowę TQFP32 o rastrze 0,8 mm. Po wlutowaniu tego elementu należy również sprawdzić czy nie wystąpiły zwarcia pomiędzy wyprowadzeniami. W miejsce układu U1 można ewentualnie wlutować PCM2907C.

Po wlutowaniu układu U1 proponuję zamontowanie kondensatorów CU1...CU5 oraz rezystorów przyłączonych do U1. Po wlutowaniu tych elementów można powtórnie dołączyć płytkę przez kabel mikro USB do komputera. Komputer powinien wykryć USB AUDIO DAC. Jeśli układ PCM2706C zostanie poprawnie wykryty przez komputer, to proponuję wlutowanie tranzystorów T1...T3 ze współpracującymi komponentami.

Rysunek 10. Projekt obudowy - przód

Warto również wlutować diodę LED L2. Po wlutowaniu tych elementów każde przyłączenie karty do komputera powinno spowodować zaświecenie się diody L2. Następnie proponuję wlutowanie wzmacniacza operacyjnego U5 (OPA2353) i elementy pasywne filtrów aktywnych oraz złącze JOUT.

Po wlutowaniu tych elementów można podłączyć do złącza JOUT słuchawki. Podłączone słuchawki pozwolą na sprawdzenie poprawności działania analogowego wyjścia karty. Dźwięk powinien być czysty, bez zniekształceń.

W następnym kroku proponuję wlutowanie układu scalonego U9 (74LV2G34DBVT) wraz z rezystorami i kondensatorami z nim współpracującymi oraz elementów interfejsów cyfrowych S/PDIF (złącze JO i nadajnik TOO). Interfejsy te najłatwiej sprawdzić przez podłączenie ich do wejść amplitunera kina domowego.

Rysunek 11. Projekt obudowy - tył

W kolejnym kroku należy wlutować podwójną diodę LED L3, tranzystory T4 i T5 oraz współpracujące z nimi elementy bierne. W kolejnym kroku proponuję wlutowanie złącz USB: UO1, UO2, i UO3. Należy zdecydować czy lutujemy układy U3 i U7 typu TPS2062DR-1.

W prototypie wlutowałem tylko pierwszy z nich - U3. Jeśli nie jest wlutowany układ U7, to należy zewrzeć zworki (pola lutownicze na druku) ZZ3 i ZZ4. Należy również wstawić odpowiednio zworki Z3 i Z4 doprowadzające zasilanie do złącz USB. Po wlutowaniu tych elementów można podłączyć płytkę do komputera i sprawdzić najlepiej za pomocą pendriva działanie trzech portów USB.

Jeśli testy przebiegną pomyślnie, proponuję wlutowanie układów zabezpieczających: U2, U4, U6, U7 (TVS824026). Ewentualnie można zrezygnować z ich obecności na płytce, ale wiąże się to z ryzykiem uszkodzenia w przyszłości któregoś z portów USB podczas podłączania i odłączania różnych urządzeń USB.

Rysunek 12. Projekt obudowy - góra

Na koniec można wlutować wszystkie diody LED (wraz z odpowiednimi rezystorami). W kanałach USB1 i USB2 zastosowałem zielone diody LED, ponieważ te dwa kanały są zabezpieczone przed przeciążeniem układem scalonym TPS2062DR-1. Działanie kanału USB3 i układu AUDIO DAC sygnalizują żółte diody LED.

Płytkę drukowaną o wymiarach około 80 mm×54 mm umieszczono w czarnej obudowie z tworzywa sztucznego (po elementach elektronicznych) o wymiarach około 83 mm×57 mm×19 mm. Zmontowaną płytkę pokazano na fotografii 9. Na rysunkach 10...12 pokazano rozmieszczenie otworów w proponowanej obudowie.

 

Zbyszko Przybył
zbyszekjob@interia.pl

Artykuł ukazał się w
Elektronika Praktyczna
luty 2015
DO POBRANIA
Pobierz PDF Download icon
Materiały dodatkowe

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik kwiecień 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio marzec - kwiecień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje marzec 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna kwiecień 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich kwiecień 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów