eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaRadio internetowe DIY - dziwne zrywanie dźwięku › Radio internetowe DIY - dziwne zrywanie dźwięku
  • Data: 2022-09-13 10:38:43
    Temat: Radio internetowe DIY - dziwne zrywanie dźwięku
    Od: Atlantis <m...@w...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Korzystając z chwili wolnego wróciłem do jednego ze swoich starych
    projektów edukacyjnych - sprzętowego radia Internetowego. Projekt zaczął
    powstawać jakiś czas temu w wyniku frustracji faktem, że komercyjnie
    dostępne wieże stereo z funkcją "radia internetowego" często są zależne
    od zewnętrznego serwera. Postanowiłem więc złożyć coś podobnego, gdzie
    mógłbym po prostu sam ustawiać linki do streamów.

    Konfiguracja sprzętowa urządzenia wygląda następująco:
    - Mikrokontroler PIC32MX795F512 pracujący na taktowaniu 80 MHz
    - Łączność sieciową zapewnia wbudowany w MCU moduł MAC, z zewnętrznym
    PHY DP83848, mamy więc do dyspozycji Fast Ethernet.
    - Dekodowanie streamów bierze na siebie VS1053, chociaż pewnie sam
    mikrokontroler poradziłby sobie z tym programowo.
    - Dostępne nośniki pamięci to karta microSD (po SPI), pendrive oraz
    niewielki (bodajże 2MB) chip pamięci SPI Flash.
    - Wszystko zamontowane na dwustronnej płytce, wykonanej samodzielnie
    metodą termotransferu. To chyba najbardziej szczegółowa i skomplikowana
    płytka jaką wykonałem w domowych warunkach.

    Od strony programowej wykorzystuję raczej standardowe komponenty, m.in.
    bibliotekę TCP/IP MLA od Microchipa oraz FATFS. Znaleziony na GitHubie
    kod do obsługi VS1053 musiałem nieco rozbudować, tworząc maszynę stanów
    skończonych, odpowiedzialną za odtwarzanie pojedynczych plików, całych
    katalogów oraz streamów HTTP/ICY z sieci.

    Odtwarzanie funkcjonuje w ten sposób, że mam dwuczęściowy bufor (w tej
    chwili 2x8 kB). Gdy jednak połówka zasila danymi chip VS1053, druga jest
    wypełniana danymi odczytywanymi z pliku lub przychodzącymi z serwera.
    Gdy dane się skończą, następuje podmiana. Oczywiście do tego dochodzi
    jeszcze bufor odbiorczy gniazda sieciowego (4 kB).

    Kod odpowiedzialny za połączenie posiada pewne zabezpieczenia. Jeśli
    dane przestaną przychodzić zostanie wywołany timeout i połączenie z
    serwerem zostanie zamknięte i zainicjowane ponownie. To samo stanie się
    w przypadku wykrycia utraty połączenia.

    Wszystko to działa dość sprawnie. Tak naprawdę działało nawet na
    mniejszych buforach (2x4 kB). Jakość dźwięku jest dobra, przycięcia
    zdarzają się rzadko. Jednak już kilka razy zauważyłem dziwny objaw,
    który nieco mnie zaintrygował.

    Mianowicie pojawiła się sytuacja, kiedy dźwięk zaczął zrywać w sposób
    przypominający zaciętą płytę gramofonową. Zupełnie jakby nowe dane
    przestały przychodzić, albo przychodziły w zbyt wolnym tempie. Zazwyczaj
    występuje też wtedy zrywanie połączenia albo timeout spowodowany brakiem
    nowych danych. Do tej pory sytuacja wystąpiła kilka razy, zawsze po
    wielu godzinach pracy urządzenia, jednak mógł to być tylko przypadek.
    Co w tym takiego intrygującego?
    - Gdy sytuacja wystąpi, dotyczy wszystkich streamów, nadawanych z
    różnych serwerów
    - Reset płytki nie pomaga, nawet przez chwilowe odłączenie zasilania
    - W tym czasie zupełnie normalnie odtwarzane są pliki z nośników
    lokalnych, więc to nie problem ze sprzętowym dekoderem
    - Po chwili problem mija sam
    - Na komputerze podpiętym do tego samego routera i switcha nie
    doświadczam w tym momencie żadnych problemów z dostępem do Internetu
    - Podczas występowania problemu mogę pingować płytkę i odczytywać dane z
    prostego serwera HTTP, odpalonego na niej. Nie jest więc tak, że traci
    ona połączenie zupełnie. Zresztą kolejne połączenia z serwerami są
    inicjowane poprawnie (200 OK) ale zrywanie występuje nadal.

    Ktoś ma jakiś pomysł co może być nie tak? Fakt, że reset płytki nie
    pomaga wskazywałby na jakiś problem z moją infrastrukturą, chwilowo nie
    mam jednak pomysłów...

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: