Płytka drukowana mojej „karty” ma niewielkie wymiary (85,3 mm×75,2 mm) i mieści się – podobnie jak jej poprzedniczka – w niewielkiej obudowie służącej pierwotnie do przechowywania układów scalonych. Założyłem, że moja konstrukcja nie powinna wymagać napięcia zasilania wyższego niż 5 V. Jeśli nie są używane wyjścia głośnikowe, to karta nie wymaga dodatkowego zasilania – zasilanie jest pobierane z portu USB komputera/laptopa. Jeśli podłączone są głośniki, to wymagane jest zasilanie końcówki mocy z zewnętrznego zasilacza 5 V/2 A (5 V/3 A). Głównym układem scalonym odpowiedzialnym za przetwarzanie sygnałów audio i komunikację z komputerem nadrzędnym przez port USB jest układ PCM2902C produkowany przez firmę Texsas Instruments.
Końcówkę mocy zbudowano z użyciem układu scalonego typu PAM8403 produkcji Power Analog Microelectronics. Układ ten cechuje się bardzo dobrą sprawnością i dość dużą mocą wyjściową przy zasilaniu napięciem równym 5 V. Podstawowe parametry mojej karty USB Audio Mic & Power są następujące (uwaga – parametry sygnału wyjściowego są teoretyczne):
- Główny układ scalony „Audio Codec” typu PCM2902C (TI).
- Końcówka mocy pracująca w klasie „D” typu PAM8403 (PAM).
- Potencjometr elektroniczny dla wyjść głośnikowych typu MAX5486 (Maxim-Dallas).
- Niskoszumowe wzmacniacze wejść mikrofonowych typu MAX9812H (Maxim-Dallas).
- 1 wejście analogowe „Line In” lub „Mic”.
- 1 wejście cyfrowe S/PDIF Opto.
- 1 wyjście analogowe „Line Out”.
- 1 wyjście cyfrowe S/PDIF Opto.
- Przełącznik czułości wejścia analogowego oraz przełącznik wejść.
- Sygnalizacja stanu pracy układu PCM2902C oraz stanu wejść i wyjść na diodach LED.
- Zniekształcenia nieliniowe (THD+N) na wyjściu „Line Out” – 0,005%.
- Stosunek sygnał/szum (SNR) na wyjściu „Line Out” – 96 dB.
- Nierównomierność charakterystyki częstotliwościowej (DAC) ±0,1 dB.
- Zniekształcenia nienilowe (THD+N) dla wejścia „Line In” – 0,01%.
- Stosunek sygnał/szum (SNR) dla wejścia „Line In” – 89 dB.
- Nierównomierność charakterystyki częstotliwościowej (ADC) ±0,05 dB.
- Przetworniki ADC i DAC – 16 bitowe Delta-Sigma.
- Akceptowane częstotliwości próbkowania:
- DAC: 32; 44,1; 48 kHz.
- ADC: 8; 11,025; 16; 22.05; 32; 44,1; 48 kHz.
- Moc wyjściowa dla THD+N=10% 2×1,7 W/8 Ω lub 2×3 W/4 Ω.
- Typowa sprawność końcówek mocy dla 1,5 W/8 Ω (Vcc=5 V) wynosi 89%.
- USB – Full Speed USB2.0, tryb adaptacyjny dla odtwarzania, tryb asynchroniczny dla nagrywania.
W komputerach i laptopach są zamontowane „karty” dźwiękowe zbudowane na jednym specjalizowanym układzie scalonym (np. firmy Realtek) spełniający funkcję kodeka audio. W komputerach stacjonarnych zwykle mamy do dyspozycji komplet wyjść analogowych w układzie głośników od 2.0 do 5.1 lub 7.1. W komputerach stacjonarnych spotkać można również wyprowadzenie dźwięku przez cyfrowy interfejs S/PDIF. Zintegrowane „karty” audio zwykle nie mają cyfrowego wejścia S/PDIF. Zwykle każda „karta” ma jedno wejście analogowe „Line In” oraz jedno wejście mikrofonowe W laptopach zintegrowana „karta” ma jedno wyjście na słuchawki i jedno wejście mikrofonowe (nie zawsze wyprowadzone na złącze Jack). Zastosowanie prezentowanej tu karty USB Audio Mic & Power pozwala wyposażyć nasz komputer w komplet cyfrowych wejść i wyjść S/PDIF. Inna zaletą mojej karty jest możliwość podłączenia wprost głośników o impedancji 4 lub 8 Ω. Mogą to być dwudrożne kolumny w drewnianej obudowie o mocy od 10 do 30 W. Takie kolumny zapewnią dużo lepsze brzmienie niż tanie plastikowe głośniczki komputerowe.
Zastosowany układ scalony typu PCM2902C (można również zastosować układ typu PCM2906C) należy do „urządzeń klasy HID”. Systemy Windows powinny rozpoznać podłączone urządzenie klasy HID i automatycznie zainstalować potrzebne „driver’y”. Bez potrzeby instalacji dodatkowego oprogramowania w systemach Windows (sprawdziłem w XP, 7) automatycznie jest instalowane oprogramowanie dla przetwornika ADC i DAC (odsługujące jednocześnie SPDIF In i SPDIF Out). Układ PCM2902C jest również rozpoznawany w systemach Linux. Układ ten znajduje się także na liście kompatybilnych z Raspberry Pi przetworników DAC. Układ PCM2902C jest „kodekiem audio” – posiada zarówno interfejsy wejściowe (wejścia analogowe i wejście cyfrowe SPDIF) jak i wyjścia analogowe z przetwornika DAC oraz wyście cyfrowe S/PDIF.
Płytka to po podłączeniu przez kabel USB do komputera bez problemu instaluje się jako USB Audio Codec. W systemie Windows XP wejście i wyjście podłączonej karty stają się wejściami/wyjściami domyślnymi. We wszystkich systemach pojawia się jednio wejście „Linia USB AUDIO CODEC”. Nie ma możliwości programowej regulacji poziomu wejściowego sygnału z tego wejścia. Fizycznie układ scalony PCM2902C ma dwa wejścia: stereofoniczne analogowe oraz cyfrowe SPDIF. Układ ten sam przełącza się na wejście S/PDIF jeśli przebieg wejściowy doprowadzony do tego wejścia jest prawidłowy i spełnia następujące warunki:
- Częstotliwość próbkowania: 32; 44,1 lub 48 kHz.
- Kodowanie linowe stereo PCM.
- Bit Copyright zezwala na kopiowanie.
Sprawdziłem działanie tego wejścia dla źródeł sygnału S/PDIF z odtwarzacza DVD, odtwarzacza Blu-ray, Mbox telewizji cyfrowej oraz innego komputera. Należy zwrócić jednak uwagę na to, aby parametry nagrywanego dźwięku (z wejścia SPDIF) były zgodne z parametrami doprowadzonego sygnału – taka sama częstotliwość próbkowania. Przez wejście i wyjście SPDIF mojej karty nie można przesyłać danych skompresowanych (AC-3 lub DTS). Po zainstalowaniu karta to ma zwykle (Windows XP, Linux) jedno wyjście „Głośniki USB AUDIO CODEC” z możliwością programowej regulacji poziomu wyjściowego. Fizycznie jednak karta ma dwa wyjścia – stereofoniczne analogowe oraz cyfrowe S/PDIF. Regulacja poziomu wyjściowego dotyczy tylko wyjścia analogowego. Wyjście SPDIF pracuje zawsze z pełnym wysterowaniem. Zwykle sygnały wyjściowe pojawiają się jednocześnie na wyjściach analogowych, jak i na wyjściu cyfrowym (Systemy Windows i Linux).
Karta USB AUDIO MIC & POWER jest również wykrywana przez komputer Raspberry PI. Po kilku modyfikacjach zbioru /etc/modprobe.d/alsa-base.conf jest obsługiwana przez programy „play”, „mplayer”, „mocp” itd. Pozwala to na uzyskanie z Raspberry PI cyfrowego dźwięku z wyjścia S/PDIF. Na listingu 1 podano ostatnie linie zbioru /etc/modprobe.d/alsa-base.conf zmodyfikowane tak, aby aby karta USB miała wyższy priorytet niż „karta” procesora BCM2835. Najważniejsze w tym listingu są linie 2, 4 oraz ostatnia.
# Keep snd-pcsp from beeing loaded as first soundcard
options snd-pcsp index=-2
# Keep snd-usb-audio from beeing loaded as first soundcard
options snd-usb-audio index=0
# options snd-usb-audio nrpacks=1
# Prevent abnormal drivers from grabbing index 0
options bt87x index=-2
options cx88_alsa index=-2
options snd-atiixp-modem index=-2
options snd-intel8x0m index=-2
options snd-via82xx-modem index=-2
options snd-bcm2835 index=-2
Audio codec PCM2902C
Ten układ ma wszystkie bloki potrzebne do zbudowania karty dźwiękowej. Codec zasilany jest z portu USB. PCM2902C ma wbudowany stabilizator napięcia 3,3 V do zasilania wewnętrznych bloków funkcjonalnych. Linie D+ i D– przez interfejs USB komunikują się z blokiem „USB Protocol Controller”. Blok ten jest odpowiedzialny za (szeregową) transmisję danych z przetwornika A/C lub dekodera S/PDIF oraz do przetwornika C/A i enkodera S/PDIF. Blok ten również umożliwia odczyt trzech przycisków (wejścia HID0, HID1 i HID2). Mogą one pracować jako przyciski „Volume+”, „Volume–” oraz „Mute”. W prototypie nie zamontowałem tych przycisków.
W strukturze układu scalonego znajduje się także blok generatora kwarcowego 12 MHz. Częstotliwość 12 MHz jest mnożona ×8 przy wykorzystaniu pętli PLL. Wyjściowa częstotliwość 96 MHz steruje pracą bloku USB oraz pętli PLL przetworników A/C i C/A. Układ PCM2902C ma obudowę SSOP28. Jego schemat blokowy pokazano na rysunku 1.
Wzmacniacz mocy PAM8403
Układ ten jest stereofonicznym wzmacniaczem pracującym w klasie D. Jego budowę ilustruje schemat blokowy na rysunku 2. Podobnych wzmacniaczy znajdziemy dużo w ofercie różnych firm. O wyborze akurat tego układu zdecydowało jego kilka zalet:
- Łatwy montaż – obudowa SOP-16.
- Dobra sprawność – na poziomie 89% dla 1,5 W/8 Ω przy Vcc=5 V.
- Wystarczająca moc wyjściowa – 1,7 W/8 Ω, 3 W/4 Ω.
- Mały poziom emisji zakłóceń elektromagnetycznych.
- Na wyjściach nie są wymagane filtry LC.
- Tani i łatwy do kupienia.
Trudno jest kupić kilka sztuk tych układów scalonych, ale bez trudu można za kilka złotych kupić płytkę drukowaną z tym układem i podstawowymi elementami mu towarzyszącymi. Na mojej płytce drukowanej umieściłem fragment druku dokładnie odpowiadający płytce z układem PAM8403 dostępnej na Allegro, umożlwiający albo zamontowanie dyskretnych elementów z tym układem w formie pojedynczego układu scalonego, albo gotowej zmontowanej płytki drukowanej. W prezentowanym prototypie wlutowana jest gotowa płytka drukowana z układem PAM8403.
Na wyjściach +OUT_R, –OUT_R, +OUT_L, oraz –OUT_L występują przebiegi PWM o częstotliwości (typowo) 350 kHz. Nota aplikacyjna podaje, że dla połączeń z głośnikami krótszych od 20 cm nie jest wymagane stosowanie na wyjściach filtrów LC. Dla dłuższych połączeń zalecane jest zastosowanie prostych filtrów zbudowanych z koralika ferrytowego i kondensatora 220 pF. Na mojej płytce drukowanej umieściłem takie filtry zbudowane z „koralików” ferrytowych SMD i kondensatorów 220 pF.
Układ scalony MAX9812H/L jest przeznaczony do wzmacniania sygnałów audio z mikrofonów (pojemnościowych). Posiada w swej strukturze niskoszumowy wzmacniacz o ustalonym na +20 dB wzmocnieniu, oraz wyjście (BIAS) napięcia polaryzacji mikrofonu. Wartość napięcia na wyjściu BIAS jest ustalona na stałe i wynosi 4,0 V dla układów serii H (Vcc=5 V) oraz 3,3 V dla układów serii L (Vcc=3,3 V). Napięcie stałe na wyjściu BIAS charakteryzuje się małym poziomem szumów. Układy MAX9812H/L montowane są w 6-nóżkowej obudowie SOT-23. Na płytce umieściłem 2 układy MAX9812H – jeden dla kanału lewego, drugi dla kanału prawego. Przewidziałem zamontowanie 2 mikrofonów pojemnościowych typu MCE-4000. Mikrofony są ustawione względem siebie pod kątem 90 stopni. Pozwala to uzyskać efekt stereofoniczny. Można nie montować mikrofonów na płytce. W takim przypadku po odpowiednim ustawieniu zworek (ZMOL, ZMOR, ZMEL oraz ZM) można podłączyć poprzez złącze JIN mikrofon mono. Czułość wejścia mikrofonowego lub LINE IN można regulować przełącznikiem SW2. Czułość tego wejścia (tłumienie) można ustawić na 0, –3 albo –6 dB.
Do regulacji głośności (poziomu wysterowania wzmacniaczy mocy układu PAM8403) zastosowałem elektroniczny potencjometr stereofoniczny z wykorzystaniem układu MAX5486 (rysunek 3), który zawiera 2 potencjometry logarytmiczne – każdy z nich ma 31 poziomy tłumienia z krokiem równym 2 dB. Sterowanie tłumieniem odbywa się dwoma przyciskami – UP oraz DN. Opcjonalnie można przełączyć się na sterowanie balansem kanałów L/R, ale na mojej płytce tego nie przewidziałem. Po restarcie (po włączeniu zasilania) potencjometry ustawiają się na poziom –12 dB.
Układ MAX5486 jest dodatkowo wyposażony w wskaźnik położenia „suwaków” potencjometrów poprzez 5 diod LED podłączonych do wyjść LEDIND0..4. Zamontowałem 3 „najstarsze” diody (LEDIND2… LEDIND4) sygnalizujące tłumienie od 0 do –28 dB. Diody LED świecą w kilku poziomach jasności reagując na każdy krok (2 dB) ustawienia potencjometru. Dla tłumienia 0 dB świecą się wszystkie diody z maksymalnym wysterowaniem. Zmniejszanie poziomu głośności powoduje coraz słabsze świecenie diody LEDIND4. Po osiągnięciu poziomu –10 dB dioda LEDIND4 gaśnie całkowicie. Dalsze zmniejszanie głośności powoduje podobne zmniejszanie jasności diody LEDIND3 itd.
Karta USB Audio Mic & Power
Schemat ideowy opisywanego rozwiązania karty pokazano na rysunku 4. Głównym elementem mojej karty jest układ scalony PCM2902C. Układ ten pracuje w typowej konfiguracji „Bus-Powered”. Wyjściowe sygnały audio VOUTL i VOUTR zostały doprowadzone na wejścia filtrów dolnoprzepustowych (LPF) zbudowanych na wzmacniaczach operacyjnych układu U6 (OPA2353). Wzmacniacze OPA2353 są wzmacniaczami z wyjściami i wejściami typu RAIL-TO-RAIL. Pracują poprawnie w zakresie napięcia zasilającego 2,7…5,5 V. 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 33 Ω. Wydajność prądowa wyjść wzmacniaczy wynosi ±40 mA. Można zatem bez problemu wysterować z wyjść analogowych słuchawki o impedancji nawet 30 Ω. Elementy RC filtrów wyjściowych zostały dobrane dla częstotliwości granicznej 20 kHz, a ich charakterystyka przenoszenia jest typu „Linear Phase”. Filtry dolnoprzepustowe zastosowałem również na wejściach analogowych – układ U5(OPA2353). Ich struktura jest nieco inna. Są to filtry z wielokrotnym sprzężeniem zwrotnym. Filtry te odwracają fazę sygnału (co nie ma istotnego znaczenia). Zaletą tych filtrów jest możliwość ustawienia dowolnego współczynnika wzmocnienia. W przypadku mojej karty wybrałem wzmocnienie napięciowe na około 4 V/V. Stopień wejściowy układu PCM2902C może przyjąć sygnał wejściowy (linie LEFTIN i RIGHTIN) na poziomie do 2 Vpp. Odpowiada to wartości skutecznej (dla sygnału sinusoidalnego) około 0,7 VAC. Elementy RC filtrów wejściowych zostały dobrane dla częstotliwości granicznej 27 kHz, a ich charakterystyka przenoszenia jest również typu „Liner Phase”. Podwójne diody D1 i D2 (BAT54S) zabezpieczają wejścia wzmacniaczy operacyjnych przed zniszczeniem w wypadku pojawienia się na wejściach napięć wyższych od napięcia zasilania tych układów.
Układ scalony PCM2902C posiada wyprowadzenie SSPND (nóżka 28). Po podłączeniu karty do portu USB (przez złącze J2) napięcie magistrali USB VBUS zasila tylko układ U2(PCM2902C), a na wyjściu SSPND występuje logiczne „0”. Komputer nadrzędny (Host) inicjuje proces enumeracji urządzenia USB. Gdy proces ten zakończy się pomyślnie na nóżce SSPND pojawia się logiczna „1”. Powoduje to wysterowanie tranzystora T6 i T1. Przewodzący tranzystor T1 zasila stabilizator U1(LM2936MP-3.3). Pojawia się napięcie VCC zasilające pozostałe bloki karty. Dioda L1 święci się dopiero po prawidłowym rozpoznaniu karty przez komputer nadrzędny. Port USB może mieć podłączoną pojemność nie większą niż 2,2 µF. Dlatego kondensatory C1 i C22 mają pojemność tylko 1 µF. Kondensatory CU1..6 o pojemności 1 µF filtrują wewnętrzne napięcia zasilania układu PCM2902C.
Na karcie zamontowałem optyczne wejście S/PDIF (Fiber optic) na bazie odbiornika TOI(TORX147PL albo FC684208R). Na wyjściu tego odbiornika dodałem szeregowy rezystor RF1 (82R lub 470R) oraz rezystor RF3 (1 kΩ lub brak) dołączony do masy, aby uzyskać właściwy poziom sygnału SPDIF_IN. Jeśli typ zastosowanego odbiornika (FC684208R) wymaga zasilania napięciem +5 V rezystory RF1 i RF3 mają odpowiednio 470 Ω i 1 kΩ – tworzą dzielnik napięcia. Dla odbiornika (TORX147PL) wymagane jest napięcie zasilania równe +3,3 V. Wtedy rezystor RF1 ma 82 Ω, a rezystora RF3 nie montujemy. Sygnał SPDIF_IN jest doprowadzony do przełącznika SW1. Sygnał z odbiornika optycznego (SPDIF_INX) trafia na wejście układu PCM2902C tylko dla pozycji 3 tego przełącznika. Zasilanie odbiornika jest poprowadzone przez dławik LX2(47 mH).
Wyjście optyczne obsługuje nadajnik TOO(TOTX147PL). Wejściowy sygnał (SPDIF_OUT) dla tego elementu pochodzi wprost (przez szeregowy rezystor 82 Ω) z odpowiedniego (DUOT) wyjścia układu PCM2902C. Przełącznik SW1 pozwala na wybranie źródła wejściowego dla układu PCM2902C. W pozycji „1” jest aktywne wejście analogowe – dla zworek ustawionych w tryb wejść mikrofonowych podawany sygnał jest w wersji MONO. W pozycji 2 aktywne jest również wejście analogowe, ale podawany sygnał jest w wersji STEREO. W pozycji „3” tego przełącznika aktywne będzie wejście cyfrowe S/PDIF, jeśli do odbiornika TOI został doprowadzony prawidłowy cyfrowy sygnał przez przewód światłowodowy (TOSLINK). Jeśli odbiornik TOI nie dostarcza prawidłowego sygnału SPDIF, to aktywne jest wejście analogowe w wersji STEREO (tabela 1).
Stany wejść i wyjść sygnalizują diody LED. Sygnały SPDIF mają częstotliwość na poziomie 2 do 3 MHz (zależnie od ilości transmitowanych „1” w sygnale). Diody sygnalizujące obecność „prostokątnych” przebiegów SPDIF sterowane są przerzutników monostabilnych 74HC123 (U10A, U10B). Dla wejść i wyjść analogowych zbudowałem na tranzystorach T7, T8, T9 i T10 proste źródła prądowe sterowane ujemnymi połówkami sygnałów sinusoidalnych. Pary tranzystorów sterują dwukolorowe diody LED (L2 i L5).
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 2).
Zbyszko Przybył
zbyszek.przybyl@mikronika.com.pl
- R1, R13, R33, RML, RMR: 33 Ω
- R10: 470 Ω 0805
- R14, R17: 36 kΩ
- R15, R18: 1 kΩ/1%
- R16, R19: 10 kΩ/1%
- R2, R5, R11, R12, R45, R47, RBL, RBR, RF2: 3,3 kΩ
- R20, R21: 22 Ω
- R22…R25: 1,5 kΩ
- R26: 82 Ω
- R27, R28, R30, R32: 200 Ω
- R3, R4, R29, R31, R36, R37, R41, R43: 39 kΩ
- R34: 270 kΩ
- R35, R50, R51, R52, RF1: 470 kΩ
- R38: 27 kΩ
- R39, R40: 390 Ω
- R42, R44: 4,7 kΩ
- R48, R49, RKL, RKR: 20 kΩ
- R6…R9: 6,8 kΩ
- RCL, RCR: 13 kΩ
- RD1, RD2, RF3: 1,0 kΩ
- RDL, RDR: 15 kΩ
- RIL, RIR: 3,6 kΩ
- Rx1: 1,0 MΩ
- C1…C3, C6, C7, C26, C33, CD3, CD4, CD8, CU1…CU6: 1,0 µF
- C11, C16: 4,7 µF/25 V
- C1L, C1R, C4, C4L, C4R, C5: 4,7 µF
- C20, C24: 22 nF
- C21, C25, C110, CD5…CD7: 100 nF
- C22, CD1, CD2: 470 nF
- C27…C30: 220 pF
- C2L, C2R, C8L, C8R: 1,5 nF
- C31, C32: 10 µF (SMD 1210)
- C3L, C3R: 100 pF
- C7L, C7R, C13, C17: 470 pF
- C8, C19: 1,0 µF/50 V
- C9, C15, C18, CB1, CF1: 220 nF
- C96, C97: 12 pF
- CE1: 10 µF/16 V (SMD 3528)
- CE2: 470 µF/6,3 V (SMD 7343)
- CE9L, CE9R: 47 µF/16 V (SMD 6032)
- L1: dioda LED żółta
- L2, L5: LED2C: dioda LED czerwona
- L3, L4: dioda LED niebieska
- L6, LD4: LEDCZ: dioda LED czerwona
- LD5, LD6: LEDZIEL: dioda LED zielona
- U1: LM2936MP-3.3 (SOT-223)
- U10: 74HC123: (SO16)
- U2: PCM2902C (SSOP28)
- U4, U7: MAX9812H (SC70)
- U5, U6: OPA2353 (SO8)
- U8: MAX5486 (TSSOP24)
- UD: PAM8403 (SO16)
- TOI: TORX147PL (TOTX147)
- TOO: TOTX147PL (TOTX147)
- D1, D2: BAT54S (SOT-23B)
- T1: Si9433BDY (SO8)
- T6: BC847 (SOT-23)
- T7…T10: BC857 (SOT-23)
- J2: MICRO_USB_FV: MICRO_USB_FV_3
- JIN: JACK_IN: JACK_NC
- JOUT: JACK_OUT: JACK_NC
- SPKL, SPKR: złącze głośnikowe
- ZZ: FCR681465
- F1: bezpiecznik 3,15 A
- F2…F5: perełka ferrytowa 2743019447
- LX2: SCDS_470_47uH
- MICL, MICR: mikrofon MCE-4000
- QX: rezonator 12 MHz
- SW1, SW2: MSS-2346
- VDN, VUP: PRZEL. TACTA-68N: TACTA-68N-F