-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erj
e.net!feeder.erje.net!feeder1.feed.usenet.farm!feed.usenet.farm!newsreader4.net
cologne.de!news.netcologne.de!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!pe
er02.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!newsfeed.neostr
ada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostra
da.pl.POSTED!not-for-mail
Date: Tue, 13 Sep 2022 10:38:43 +0200
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
Thunderbird/91.13.0
Newsgroups: pl.misc.elektronika
Content-Language: pl
From: Atlantis <m...@w...pl>
Subject: Radio internetowe DIY - dziwne zrywanie dźwięku
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 64
Message-ID: <63204193$0$544$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 83.27.27.215
X-Trace: 1663058323 unt-rea-b-01.news.neostrada.pl 544 83.27.27.215:45476
X-Complaints-To: a...@n...neostrada.pl
X-Received-Bytes: 4714
Xref: news-archive.icm.edu.pl pl.misc.elektronika:774357
[ ukryj 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...
Następne wpisy z tego wątku
- 13.09.22 15:03 adam13lat
- 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
Najnowsze wątki z tej grupy
- Thunderbird i dysk...
- opornosc falowa
- Bateria 9V 6F22, alkaliczna v cynkowa, samorozładowanie, bateria wysokiej trwałości do miernika
- Tani zakup z ali?
- w czasach LED komary mają ciężko
- walizka z kodami
- Rejestrator temperatur - termopara, siec
- Router LTE z możliwością zmian MTU
- Fajny film widziałem...
- Jaka ładowarka sieciowa do Iphona?
- Taśma izolacyjna do prac elektrycznych
- Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
Najnowsze wątki
- 2025-07-23 Wrocław => Senior Key Account Manager IT <=
- 2025-07-23 Trójmiasto => Head of Social Media <=
- 2025-07-23 Rzeszów => Spedytor Międzynarodowy <=
- 2025-07-23 Lublin => ERP Implementation Consultant (AP Module) <=
- 2025-07-23 Środa Wielkopolska => SAP FI/CO Internal Consultant <=
- 2025-07-23 Warszawa => Inżynier oprogramowania .Net <=
- 2025-07-23 Kraków => Kotlin Developer <=
- 2025-07-23 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-07-23 Warszawa => Java Developer <=
- 2025-07-23 Wrocław => Konsultant wdrożeniowy (systemy controlingowe) <=
- 2025-07-22 Genialna toaleta Urobot, automatycznie badająca mocz i kał z Taiwanu
- 2025-07-22 Thunderbird i dysk...
- 2025-07-22 Warszawa => Programista Full Stack .Net <=
- 2025-07-22 Warszawa => Software .Net Developer <=
- 2025-07-22 Warszawa => Asystent ds. Sprzedaży i Rozwoju Klienta <=