Strona 1 z 2 12 OstatniOstatni
Pokaż wyniki od 1 do 20 z 24

Wątek: Odbiornik SPDIF WM8804 z dwoma wejściami

  1. #1
    Zaawansowany Awatar Holgin
    Dołączył
    26.10.2013
    Skąd
    Wrocław
    Posty
    807

    Odbiornik SPDIF WM8804 z dwoma wejściami

    Kiedyś, przy okazji zamawiania płytek, mój kolega wspomniał, że przydałby mu się odbiornik SPDIF. Długo nie myślałem i machnąłem płytkę na WM8804 korzystając z noty katalogowej, z opcją zamontowania odbiornika optycznego lub transformatorka SPDIF. Z czasem ciut rozwinąłem projekt i polepszyłem funkcjonalność - teraz na pokładzie jest selektor. Układ obsługuje 24bit/192kHz po kablu koncentrycznym, jeżeli chodzi o toslink - zależy od odbiornika.

    W tym momencie odbiornik wygląda tak:



    Moduł optyczny:



    Płytka:



    Jak to działa? Otóż na PCB znajduje się miejsce do przylutowania odbiornika typu TORX, w przypadku, gdyby ktoś chciał przykręcić PCB do tyłu obudowy. Z przodu PCB jest też odłamywana, mała płytka, która umożliwia podłączenie odbiornika do głównej płytki za pomocą kabelka
    Gniazdo RCA podłącza się za pomocą kabla, który trzeba wlutować w płytkę. Ewentualnie można wlutować dwa goldpiny i do nich się podpinać.

    Wybór źródła dokonuje się za pomocą zworki - można to realizować mikrokontrolerem albo zwykłym przełącznikiem - służy do tego 3 pinowe złącze
    Układ, który realizuje przełączanie to po prostu jednokanałowy multiplekser. W tym przypadku użyłem 74LVC1G157, ale są dziesiątki układów, które można by tam zalutować.

    Płytka ma zintegrowany zasilacz z mostkiem prostowniczym. Można pominąć mostek i w jego miejsce dać dwie zworki 0805, wtedy moduł należy zasilić napięciem stałym. Kondensator leży na płasko, więc całość jest dość kompaktowa.

    Schemat:



    Nie ma tutaj niespodzianek. Złącze wyjściowe ma wyprowadzone 3.3V do zasilenia izolatora. Moduł jest kompatybilny z moim selektorem I2S, który "kiedyś" także opublikuję :P

    Projekt jest publiczny i udostępniam do niego wszystkie materiały. Gdyby ktoś chciał, PCB się znajdzie, można też zamówić więcej. Poniżej BOM i schemat w PDF.
    Raster otworów to N*10mm, więc układ pasuje do płyt montażowych modushop. W razie pytań, proszę pisać
    bom WM8804.pdf
    Schemat WM8804.pdf

  2. #2
    Moderator Globalny Awatar .3lite
    Dołączył
    05.11.2010
    Skąd
    Pszczyna
    Posty
    1,718
    Trzeba wspomnieć, że WM8804 w takiej konfiguracji nie zrobi lock'a na 176,4 kHz. Strumień 192 kHz powinien działać, ale 176,4 kHz nie będzie, ponieważ układ tych strumieni nie potrafi rozróżnić w konfiguracji sprzętowej

  3. #3
    Zaawansowany Awatar Holgin
    Dołączył
    26.10.2013
    Skąd
    Wrocław
    Posty
    807
    Powiem szczerze, że nawet nie wiedziałem, aczkolwiek wydaje mi się, że 176.4 kHz to raczej rzadka częstotliwość próbkowania Jak będę miał chwilę to przetestuję.

  4. #4
    Moderator Globalny Awatar .3lite
    Dołączył
    05.11.2010
    Skąd
    Pszczyna
    Posty
    1,718
    Sprawdź też 192 kHz, ponieważ coś mi się wydaje, że nie będzie działał Ja osobiście tego układu nie testowałem, ale datasheet mówi swoje:



    Raczej wątpliwe, że układ sam zmienia swoje wartości PLL_N i PLL_K w trybie sprzętowym.

  5. #5
    Zaawansowany Awatar Holgin
    Dołączył
    26.10.2013
    Skąd
    Wrocław
    Posty
    807
    Wczoraj grałem na 192/24 bity... chyba że Xonar U7 coś pochrzanił, bo z niego był generowany sygnał SPDIF.

  6. #6
    Moderator Globalny Awatar .3lite
    Dołączył
    05.11.2010
    Skąd
    Pszczyna
    Posty
    1,718
    Jak nie grasz poprzez ASIO to mixer Windowsa robi resampling do niższej częstotliwości, tj. takiej, która jest wybrana w opcjach urządzenia.

  7. #7
    Zaawansowany Awatar Holgin
    Dołączył
    26.10.2013
    Skąd
    Wrocław
    Posty
    807
    I właśnie xonar miał ustawione wyjściowe 192/24 bit Sprawdzę jeszcze jej będzie okazja.

  8. #8
    Moderator Globalny Awatar .3lite
    Dołączył
    05.11.2010
    Skąd
    Pszczyna
    Posty
    1,718
    No to powinien działać Przeglądając datasheet wpadłem jeszcze na poniższe wpisy:





    Inaczej pisząc 192 kHz powinien działać, ale 176,4 kHz nie będzie.

  9. #9
    Użytkownik
    Dołączył
    11.09.2016
    Skąd
    Warszawa
    Posty
    135
    Nie testowałem, ale z tego co pamiętam to np. w sdr-widget jest kod w asemblerze avr32, który wykrywa sample rate na podstawie I2S frame clk i przestawia te rejestry PLLki: https://github.com/borgestrand/sdr-w...l/src/wm8805.c
    Bo wewnętrzny detektor sample rate wm8804/5 jest zawodny i w ogóle nie rozróżnia fs n*44100 i n*48000. Akurat wszystkie częstotliwości oprócz 192k da się niby obsłużyć jednym ustawieniem PLL. I I2S frame clk jest niby poprawnie generowany, mimo że PLLka nie ma locka.

    EDIT:
    Tylko, że to wszystko dotyczy SW mode wm8804/5.
    Ostatnio edytowane przez sylvester ; 18.06.2018 o 20:14

  10. #10
    Zaawansowany Awatar Holgin
    Dołączył
    26.10.2013
    Skąd
    Wrocław
    Posty
    807
    Ostatnio robiłem więcej testów i wyniki były ciekawe.
    176.4 kHz zgodnie z tym co mówił .3lite nie działa, okropny szum także lutowanie układu który przełącza coax/opt ma duże znaczenie i topnik może powodować problemy przy 192kHz!

    Tym razem miałem trochę lepsze narzędzia pomiarowe, więc z całą pewnością stwierdzam że 192kHz działa - ale! Istotne jest źródło. Coax z komputera stacjonarnego szumiał na 192, a puszczony z xonara już nie Wniosek z tego taki, że jakość źródła ma znaczenie.

  11. #11
    Moderator Globalny Awatar .3lite
    Dołączył
    05.11.2010
    Skąd
    Pszczyna
    Posty
    1,718
    Cytat Zamieszczone przez Holgin Zobacz posta
    Wniosek z tego taki, że jakość źródła ma znaczenie.
    Moim zdaniem WM8804 nie lockuje prawidłowo na daną częstotliwość wejściową powyżej 96 kHz. Fakt, można mieć fuksa i przy dobrych wiatrach zrobi locka na sztywne 192 kHz bez zmiany standardowych wartości PLL_N i PLL_K, ale generalnie nie jest to zapewnione. Sam się tego obawiałem, więc fajnie, że ktoś to sprawdził

    W praktyce jednak aby WM8804 działał prawidłowo powyżej 96 kHz to trzeba zmienić wartości PLL_N i PLL_K. Na pewno po zmianie tych wartości mógłbyś zrobić locka na 192 kHz z płyty głównej
    Ostatnio edytowane przez .3lite ; 18.07.2018 o 12:36

  12. #12
    Zaawansowany Awatar Holgin
    Dołączył
    26.10.2013
    Skąd
    Wrocław
    Posty
    807
    Cytat Zamieszczone przez .3lite Zobacz posta
    Moim zdaniem WM8804 nie lockuje prawidłowo na daną częstotliwość wejściową powyżej 96 kHz. Fakt, można mieć fuksa i przy dobrych wiatrach zrobi locka na sztywne 192 kHz bez zmiany standardowych wartości PLL_N i PLL_K, ale generalnie nie jest to zapewnione. Sam się tego obawiałem, więc fajnie, że ktoś to sprawdził

    W praktyce jednak aby WM8804 działał prawidłowo powyżej 96 kHz to trzeba zmienić wartości PLL_N i PLL_K. Na pewno po zmianie tych wartości mógłbyś zrobić locka na 192 kHz z płyty głównej
    Jutro napiszę maila do Cirrus Logic, ciekawe co mi odpowiedzą Zapytam też o zauważalnie większy pobór mocy (~85mA) niż napisany w datasheet.
    Na diyaudio była mała dyskusja na ten temat i twierdzą, że 192 kHz w trybie hardware jest obsługiwane, aczkolwiek scenariusz, gdzie 192 kHz łapie "fuksem", tylko przy sygnale dobrej jakości, całkiem do mnie przemawia Choć przy graniu z płyty głównej szum/charczenie było niesłyszalne w pierwszej chwili.

    Chciałbym mieć oscyloskop z pasmem >=200MHz i analizator stanów logicznych, żeby porównać zbocza i inne parametry sygnału..

    - - - - - aktualizacja - - - - -

    W sumie - kusi mnie też, żeby wrzucić tam generator 7x5mm zamiast kwarcu. Mam takie poczucie, że zegar będzie wyższej jakości, ale to czysto subiektywne, nie poparte niczym odczucie

  13. #13
    Moderator Globalny Awatar .3lite
    Dołączył
    05.11.2010
    Skąd
    Pszczyna
    Posty
    1,718
    Ja tego układu nigdy nie testowałem, więc w praktyce domyślam się na bazie podanych informacji Najlepiej po prostu wziąć prosty MCU, WM8804 uruchomić w trybie programowym i zmieniać wartości PLL_N i PLL_K obserwując status LOCK. Tak samo myślę, że nie ma potrzeby liczenia częstotliwości aby poprawnie ustawić wartości PLL. Datasheet mówi o tym, że jak PLL ustawione jest na ten drugi tryb do 192 kHz to przy strumieniu 176,4 kHz status LOCK będzie co chwilę się zmieniał (cyt. The unlock signal will continually toggle between a locked and unlocked state"). W takim wypadku można przestawić PLL_N i PLL_K na następne wartości i sprawdzić, czy tym razem udało się uzyskać locka. Nie próbowałem, ale warto to sprawdzić.

  14. #14
    Początkujący
    Dołączył
    23.02.2016
    Skąd
    Poznań
    Posty
    6
    .3lite: czy byla jakas silna motywacja dlaczego nie użyć wm8805 i selektora zrodla bezposrednio wbudowanego? Pytam bo sam chce w przyszlosci zrobić preamp cyfrowy i zastanawiam sie czy wm8805 czy tez jakis niezależny selektor cyfrowego audio.
    Ostatnio edytowane przez hessus ; 21.07.2018 o 23:50

  15. #15
    Moderator Globalny Awatar .3lite
    Dołączył
    05.11.2010
    Skąd
    Pszczyna
    Posty
    1,718
    Nie sądzę aby była jakakolwiek różnica.

  16. #16
    Zaawansowany Awatar Holgin
    Dołączył
    26.10.2013
    Skąd
    Wrocław
    Posty
    807
    Jak kiedyś się nauczę programować na tyle, żeby poprawnie komunikować się z WM8804/5, pewnie zrobię taki "kombajn", który będzie rozwinięciem mojego sterownika DAC/selektora I2S, ale na tą chwilę jest ten projekcik, prosty i łatwy, bez programowania

  17. #17
    Zaawansowany Awatar Holgin
    Dołączył
    26.10.2013
    Skąd
    Wrocław
    Posty
    807
    192 kHz jednak działa i to na dwóch płytkach - z selektorem i bez. 192kHz z komputera stacjonarnego nie działało, bo nie było rezystora terminującego 75R na pierwotnym uzwojeniu trafa Teraz już jest wszystko ok i gra wszystko oprócz 176.4kHz.

  18. #18
    Zaawansowany Awatar Holgin
    Dołączył
    26.10.2013
    Skąd
    Wrocław
    Posty
    807
    Kolejny update:
    W przypadku niebieskiego PCB z pojedynczym wejściem, bez multipleksera, dołożenie 75R równolegle do uzwojenia pierwotnego transformatora rozwiązuje wszystkie problemy i WM8804 prawidłowo działa z 44.1, 48, 88.2, 96 oraz 192 kHz - czyli wszystko oprócz 176.4 kHz, tak jak pisał .3lite.

    Jeżeli chodzi o czarne PCB z multiplekserem, sprawa jest trochę trudniejsza - dołożenie rezystora równolegle powoduje obciążenie wyjście cyfrowego w źródle, tym samym poziom sygnału spada. Efekt tego jest taki, że układ scalony "gubi" bity, bo stan HIGH w strumieniu SPDIF jest na granicy "łapania" przez multiplekser - przynajmniej taka jest moja teoria Poprzednim razem przy testach miałem oscyloskop i widziałem zależność amplitudy od rezystora przed/za transformatorem. Z drugiej strony, bez rezystora jest problem z impedancją i w tym przypadku 192kHz nie działa dobrze, a do tego przy zmianie Fs PLL potrzebuje kilka sekund żeby złapać LOCK'a, co objawia się głośnym, nieprzyjemnym szumem.

    Aktualnie gram na 470R i to zdaje się być dobrym kompromisem Ale w następnej rewizji PCB dołożę dzielnik podnoszący poziom sygnału przed multiplekserem o kilkaset mV, co powinno rozwiązać problem.

  19. #19
    Zaawansowany Awatar Holgin
    Dołączył
    26.10.2013
    Skąd
    Wrocław
    Posty
    807
    Dodałem nie dzielnik, a konwersję SPDIF->TTL z prawdziwego zdarzenia. Współczesne układy logiczne dostępne są w bardzo wygodnych, małych obudowach, więc udało się to fajnie, zgrabnie zrealizować Teraz nie ma prawa być już żadnych problemów, nie ma szumów, LOCK jest łapany praktycznie od razu

    Wspomnę też, że złącze IN_CTRL ma 3 piny - masa, 3V3 oraz wejście selektora. W wersji samodzielnej, podłączamy tam przełącznik mechaniczny (3 piny) lub mikrokontroler (2 piny) i tak robimy selekcje. W przypadku używania tej płytki jako modułu w selektorze I2S, użyty jest tylko środkowy pin - Input Selector - pozostałe dwa są nieużywane.

    Analogicznie, złącze ARK 3.5mm GND | VCC, także jest nieużywane w przypadku, gdy ten odbiornik jest zastosowany w selektorze. Oryginalnie służy do zasilania modułu napięciem AC (wtedy oznaczenia nie mają różnicy, lutujemy mostek na warstwie BOTTOM) lub DC (zamiast mostka zworki 0805, także na BOTTOM) i wtedy wiemy gdzie + a gdzie masa

  20. #20
    Początkujący
    Dołączył
    22.12.2017
    Skąd
    gdynia
    Posty
    17
    Mam prośbę do tych którzy już złożyli ten układ o podesłanie listy części .

Uprawnienia umieszczania postów

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •