-
Data: 2022-09-13 15:03:15
Temat: Re: Radio internetowe DIY - dziwne zrywanie dźwięku
Od: adam13lat <a...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Dnia Tue, 13 Sep 2022 10:38:43 +0200, Atlantis napisał(a):
> 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...
Czy ten projekt na PIC32MX795F512 jest ogólnodostępny? Czy też to Pana
autorski pomysł?
Następne wpisy z tego wątku
- 13.09.22 19:04 Mirek
- 14.09.22 10:38 Atlantis
- 14.09.22 10:58 Atlantis
- 14.09.22 11:09 ptoki (ptoki)
- 14.09.22 16:07 adam13lat
- 15.09.22 09:03 Atlantis
- 15.09.22 09:23 Marek
- 15.09.22 09:35 Atlantis
- 15.09.22 09:58 SW3
- 15.09.22 09:58 Arnold Ziffel
- 15.09.22 10:09 adam13lat
- 15.09.22 15:44 Atlantis
- 15.09.22 18:04 adam13lat
- 15.09.22 18:14 Marek
- 15.09.22 18:22 adam13lat
Najnowsze wątki z tej grupy
- karta parkingowa
- Wl/Wyl (On/Off) bialy/niebieski
- I3C
- Pytanie o transformator do dzwonka
- międzymordzie USB 3.2 jako 2.0
- elektronicy powinni pomysleć o karierze elektryka
- jak szybko plynie prad
- Płytki Milkv-Duo
- Światłowód między budynkami
- POtrzebny bufor 3.3<>5V, jedonkieruowy, trójstanowy, wąski
- retro
- Bezprzewodowe polączenie Windows z projektorem
- rozklejanie obudowy
- Prośba o identyfikację komponentu
- Smart gniazdko straciło na zasięgu wifi?
Najnowsze wątki
- 2024-11-14 Dobra zmiana
- 2024-11-14 Czy prezydent może ułaskawić od zadośćuczynienia? [A. Lepper odszkodowania]
- 2024-11-14 Gliwice => Network Systems Administrator (IT Expert) <=
- 2024-11-14 Gliwice => Administrator Systemów Sieciowych (Ekspert IT) <=
- 2024-11-13 Filtr do pompy ruskiej
- 2024-11-12 Gdzie kosz?
- 2024-11-13 elektrycznie
- 2024-11-12 Jebane kurwa, kurwy.
- 2024-11-13 karta parkingowa
- 2024-11-13 Wl/Wyl (On/Off) bialy/niebieski
- 2024-11-12 I3C
- 2024-11-13 Kraków => DevOps Engineer (Junior or Regular level) <=
- 2024-11-13 Łódź => Senior SAP HANA Developer <=
- 2024-11-13 Zabrze => Senior PHP Symfony Developer <=
- 2024-11-13 Karlino => Konsultant wewnętrzny SAP (FI/CO) <=