-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erj
e.net!feeder.erje.net!usenet.goja.nl.eu.org!aioe.org!IYrPA35arMPnxaTyf3akVw.use
r.46.165.242.75.POSTED!not-for-mail
From: adam13lat <a...@g...com>
Newsgroups: pl.misc.elektronika
Subject: Re: Radio internetowe DIY - dziwne zrywanie dźwięku
Date: Tue, 13 Sep 2022 15:03:15 +0200
Organization: Aioe.org NNTP Server
Message-ID: <tfpuua$dj5$1@gioia.aioe.org>
References: <63204193$0$544$65785112@news.neostrada.pl>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
Injection-Info: gioia.aioe.org; logging-data="13925";
posting-host="IYrPA35arMPnxaTyf3akVw.user.gioia.aioe.org";
mail-complaints-to="a...@a...org";
X-Notice: Filtered by postfilter v. 0.9.2
Xref: news-archive.icm.edu.pl pl.misc.elektronika:774368
[ ukryj 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
- przeźroczyste koszulki
- Re: Win 10/11 nie lubi OKI
- Programator czasowy TUYA.
- Dlaczego energia elektryczna jest droga i cały czas drożeje
- twardy dysk stuka
- Oclenie alkalicznych akumulatorów
- Powerbank jednonapieciowy, a trzynapieciowy
- Lustra w maszynie ASML
- DC blocker i buczące toroidy
- Problemy TSMC cd
- Detektor
- Może tutaj się uda: [NTG] Elewacja / dziurawa Churka
- Falownik jednofazowy a żarówka
- Agregat i "legalność" instalacji
- Uziom
Najnowsze wątki
- 2024-05-06 Fotowoltaika do c.w.u.
- 2024-05-06 Warszawa => Senior IT Recruiter <=
- 2024-05-06 Kraków => Lider Serwisu/Programista PLC z językiem niemieckim <=
- 2024-05-06 Berlin => Solution Architect (secure communication and IoT solutions)
- 2024-05-06 Czy szpital przekazuje dokumentację medyczną do Starosty powiatu?
- 2024-05-06 naprawa zamka
- 2024-05-06 Kraków => Mid/Senior QA Engineer <=
- 2024-05-06 Warszawa => Java Developer <=
- 2024-05-06 Re: Prawo móżdżek...
- 2024-05-06 Toruń => UX/UI Designer <=
- 2024-05-06 Wrocław => UX/UI Designer <=
- 2024-05-06 Warszawa => Senior PHP Developer (Symfony) <=
- 2024-05-06 Białystok => Senior Software Engineer PHP (BillPro) Kontraktor <=
- 2024-05-06 Warszawa => AI Specialist <=
- 2024-05-05 Taki dinks do drzwi