Skocz do zawartości
IGNORED

Odtwarzacz cyfrowy DIY


jar1

Rekomendowane odpowiedzi

A tak, a propos odtwarzacza zaprojektowałem sobie takiego daca do niego. Będzie zintegrowany z płytka kontrolera, by ograniczyc do minimum połaczenia kablowe. Czeka na uruchomienie...

 

WM8740, bo OSD i regulacja głosności mi niepotrzebne.

Poza tym, w wyższych cyferkach trzeba chyba przełączać filtry zgodnie z tym, jaki sygnał dostają a to wymaga obsługi zautomatyzowanej np. przez procesor a najpierw identyfikator rzeczywistego sygnału. Bo mają rozbudowane filtry cyfrowe...

WM8740

 

Świat oszalał :) 8740 siedzi już np. w takim czymś, coś koło 8 stówek.

Ukryta Zawartość

    Zaloguj się, aby zobaczyć treść.
Zaloguj się, aby zobaczyć treść (możliwe logowanie za pomocą )

Ukryta Zawartość

    Zaloguj się, aby zobaczyć treść.
Zaloguj się, aby zobaczyć treść (możliwe logowanie za pomocą )

jar1

 

czy badałeś może jaka stabilność jest generowanego przez ciebie i2s

właściwie na jakiej zasadzie to u ciebie działa czy korzystasz z SSC Synchronous Serial

Controller Atmela

bo jeżeli mówimy o AT91SAM9260 to nawet samo atmel pisze że zegar jest niestabilny

Ukryta Zawartość

    Zaloguj się, aby zobaczyć treść.
Zaloguj się, aby zobaczyć treść (możliwe logowanie za pomocą )

Ukryta Zawartość

    Zaloguj się, aby zobaczyć treść.
Zaloguj się, aby zobaczyć treść (możliwe logowanie za pomocą )

jar1

 

czy badałeś może jaka stabilność jest generowanego przez ciebie i2s

właściwie na jakiej zasadzie to u ciebie działa czy korzystasz z SSC Synchronous Serial

Controller Atmela

bo jeżeli mówimy o AT91SAM9260 to nawet samo atmel pisze że zegar jest niestabilny

Ukryta Zawartość

    Zaloguj się, aby zobaczyć treść.
Zaloguj się, aby zobaczyć treść (możliwe logowanie za pomocą )

Co rozumiesz, jako stabilnośc i2s?

Nie korzystam z tego atmelowskiego SSC. Nie wiedziaem, że coś takiego istnieje przedtem. ;)

Synchronicznośc zapewnia mi odpowiednio skonfigurowany układ SRC4192, a dodatkowo robi róznież upsampling.

Zegar procka, odpowiednio podzielony, podawany jest jako Master Clock do SRC.

Z procka wysyłane są dane do SRC a ten dodaje do nich wygenerowane przez siebie na bazie zegara procka Bit Clock i Word Clock . Dalej jest już dac.

Ukryta Zawartość

    Zaloguj się, aby zobaczyć treść.
Zaloguj się, aby zobaczyć treść (możliwe logowanie za pomocą )

Doczytałem, ze ten SSC jest jednym z peryferiów samego mikrokontrolera, a więc on tam sobie "siedzi". ;) Nie ja się zajmowałem szczegółowo częścią mikrokontrolerową - moja wiedza jest tu bardzo pobieżna i cząstkowa.

Niemniej sam SSC ograniczony jest do obsługi 8-48kHz samplingu oraz 16bitowych danych. To trochą mało.

Z tego, co pamietam, to takie rozwiązanie chyba sie nie powiodło, mogę się dopytac, bo dokładnie już nie pamiętam. Generalnie "popiardywało" sobie ;) Dlatego wyniknęła potrzeba innego rozwiązania. Ponieważ w dacu, jakim dysponowałem wtedy był juz zaimlementowany SRC4192, powstał pomysł, by spróbować go wykorzystac. Po tym, problem z jakością I2S przestał istnieć.

Dzięki wykorzystaniu układu SRC w odwarzaczu obsługiwane są również formaty do 96 kHz i 24 bit.

chodzi mi o stabilność wysyłanych danych bo linux nie jest za bardzo systemem czasu rzeczywistego wyniki operacji nie zawsze są jednakowe czasowo trzeba by korzystać z DMA i bufora pierścieniowego żeby zmniejszyć ten efekt a i nawet to nie gwarantuje odpowiednich czasów podawania danych dlatego karty dźwiękowe mają niewielki bufor wewnętrzny na kilka ramek

chodzi mi o stabilność wysyłanych danych bo linux nie jest za bardzo systemem czasu rzeczywistego wyniki operacji nie zawsze są jednakowe czasowo trzeba by korzystać z DMA i bufora pierścieniowego żeby zmniejszyć ten efekt a i nawet to nie gwarantuje odpowiednich czasów podawania danych dlatego karty dźwiękowe mają niewielki bufor wewnętrzny na kilka ramek

SRC4192, zdaje sie, że sam buforuje sobie pewna ilość danych danych wejściowych.

Zajrzę dla przypomnienia sobie do dokumentacji.

w sumie sam szukam sposobu na wydobycie z procesora typu ARM z linuxem dobrej jakości i2s bo odpadają problemy sterowników urządzeń odtwarzacza kodeków połączenia sieciowego i można by się skupić na samej jakości generowanego sygnału cyfrowego

Jak widać, ożenienie ARMa z SRC4192 w kontekście obsługi I2S jest jedną z takich możliwości.

Jesli chodzi o wynik końcowy, czyli sam dźwięk, to nie ma co narzekać. Sam jestem zdziwiony, bo nie ma tam żadnych super dokładnych zegarów. Widac wystarczająca synchronizacja załatwia sprawę.

Okazuje się, ze jednak nieco namieszałem. SSC jest wykorzystywany, ale nie w standardowy sposób. Wykorzystuje jedynie sygnały BCLK i WCLK generowane z SRC4192 i generuje strumień danych.

 

Do sterowania SSC napisany jest sterownik pod linuksem dla zapewnienia działnia z układem SRC ustawionego na stałe z nadpróbkowaniem 256 razy.

  • 2 miesiące później...

SRC4192, zdaje sie, że sam buforuje sobie pewna ilość danych danych wejściowych.

 

z natury jego pracy tak musi być,

każdy asynchroniczny układ musi buforować dane.

Z tym, że w tym konkretnym przypadku SRC niezupełnie działa w sposób standardowy, czyli w trybie asynchronicznym.

Jest na sztywno ustawiony w tryb bypass.

W zasadzie słuzy jedynie do generowania zegarów BCLK i LRCK, które wykorzystuje mikrokontroler do tworzenia strumienia danych oraz dalej dac WM8740.

być może

Nie wiem, czy akurat warość jittera określa czy cały układ działa symetrycznie czy asynchronicznie.

 

Oprócz trybu bypass u mnie wyjścia SRC sa ustawione jako Master. Z nich BCKI i LRCK podawane są jednocześnie (fizycznymi połączeniami) na daca WMa, odpowiednie wejścia SRC oraz do kontrolera SSC zintergrowanego z głównym procesorem, który tworzy I2S. Gdzie tu może być asynchroniczność?

  • 4 tygodnie później...

Popatrzyłem sobie trochę na sygnały I2S jakie chodzą po moim daczku.

Zwróciłem uwagę, że przy przestawianiu układu SRC z trybu ASRC na Bypass zmieniają się ilości bitów na wyjściu SDOUT.

Czyli, mimo, że nie zmieniają się LRCKI i BCKI, mam to samo na wejściach i wyjściach poprzez fizyczne połączenie na pcb, to dane na wyjściu zależą od tego czy ustawiony jest tryb ASRC czy Bypass. W trybie Bypass dane rzeczywiście przechodzą bez zmiany, natomiast w trybie ASRC dane ustawiane są zgodnie z ustawieniami na pinach IFMT, czyli w moim przypadku na 24 bit I2S.

 

Dla pliku w standardzie 44,1 KHz i przy ustawieniu trybu Bypass na wejściu i wyjściu układu sygnały danych są identyczne i wyglądają tak:

 

 

Natomiast po przestawieniu w tryb ASRC sygnał na wyjściu jest taki:

(wejściowy bez zmian)

 

Na górze jest sygnał LRCKI na dole SD. Dane kanałów Lewy i Prawy znajdują się odpowiednio pod odpowiednimi połówkami sygnału LRCKI. Widać, ze w drugim przypadku wykorzystywana jest większa ilośc bitów z danymi (24 bity dokładnie) w stosunku do danych wejściowych - mniej pustego miejsca na końcu każdego kanału.

  • 1 miesiąc później...

Tak wyglądają sygnały 20Hz, 1kHz, 10kHz i 20kHz na wyjściu odtwarzacza. Sygnały pochodzą z płyty testowej, która kiedyś była rozprowadzana na naszym forum. Przebiegi nagrane były na poziomie -10dB Fs.

 

20Hz

 

 

1kHz

 

 

10kHz

 

 

20kHz

 

 

A tak wygląda zmontowana wersja w obudowie już z moimi płytkami daca i stopniem analogowym.

 

 

 

 

Odtwarzacz Jarka stoi w klubie KAiM. Gdyby ktoś chciał go porównać z jakimś innym odtwarzaczem plików, to serdecznie zapraszamy. Na razie porównywaliśmy go jedynie z klubowym Lektorem IV. Walka była wyrównana, na niektórych płytach/plikach ze wskazaniem na konstrukcję Jarka, co bardzo dobrze o niej świadczy.

  • Pokaż nowe odpowiedzi
  • Zarchiwizowany

    Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.



    • Ostatnio przeglądający   0 użytkowników

      • Brak zarejestrowanych użytkowników przeglądających tę stronę.
    • Biuletyn

      Chcesz być na bieżąco ze wszystkimi naszymi najnowszymi wiadomościami i informacjami?
      Zapisz się
    • KONTO PREMIUM


    • Ostatnio dodane opinie o sprzęcie

      Ostatnio dodane opinie o albumach

    • Najnowsze wpisy na blogu

    ×
    ×
    • Dodaj nową pozycję...

                      wykrzyknik.png

    Wykryto oprogramowanie blokujące typu AdBlock!
     

    Nasza strona utrzymuje się dzięki wyświetlanym reklamom.
    Reklamy są związane tematycznie ze stroną i nie są uciążliwe. 

     

    Nie przeszkadzają podczas czytania oraz nie wymagają dodatkowych akcji aby je zamykać.

     

    Prosimy wyłącz rozszerzenie AdBlock lub oprogramowanie blokujące, podczas przeglądania strony.

    Zarejestrowani użytkownicy + mogą wyłączyć ten komunikat oraz na ukrycie połowy reklam wyświetlanych na forum.