-
Data: 2022-09-29 17:05:58
Temat: Re: lwIP - odbieranie danych przez TCP
Od: Atlantis <m...@w...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Ok, przysiadłem jeszcze do tego projektu i udało mi się ustalić kilka
kolejnych faktów:
1. Byłem w błedzie co do pamięci SPI RAM. Z cała pewnością NIE JEST za
wolna, żeby pełnić funkcję bufora. Przepisałem kod odpowiedzialny za
odtwarzanie plików tak, żeby kierował dane z karty SD przez bufor
cykliczny w tym zewnętrznym RAM-ie. Odtwarzanie jest całkowicie płynne.
Oczywiście w teorii taki duży bufor w tym przypadku nie jest mi do
niczego potrzebny, bo zarówno karta SD jak i pendrive są zupełnie
stabilnymi źródłami danych, ale zostawię to jak jest - dla uproszczenia
projektu.
2. Przeniesienie bufora w całości do pamięci SPI pozwoliło mi odzyskać
trochę wbudowanego RAM-u, którego część przeznaczyłem na powiększenie
buforów lwIP. Robiłem to na wyczucie, wiec nadal nie wiem czy
konfiguracja jest optymalna. Wygląda jednak na to, że sytuacja się
poprawiła. Teraz jestem w stanie w czasie prawie rzeczywistym odtwarzać
stream Radia Kraków w 32 kbps. "Prawie" bo raz na jakiś czas słychać zgrzyt.
3. Natomiast stacje nadające w normalnej jakości (stereo i bitrate
powyżej 100 kbps) są już potwornie poszatkowane.
Ponieważ odtwarzanie z karty SD przez bufor SPI RAM działa normalnie to
wszystko wskazuje na to, że wina leży po stronie wolnej transmisji
danych z Internetu. Nie chce mi się wierzyć, że wbudowany w STM32
FastEthernet MAC z PHY podłączonym przez RMII nie jest w stanie
wyciągnąć tych trochę ponad 100 kbps (i z trudem wyciąga 32kbps).
Zwłaszcza, że właściwie identyczny układ bez żadnych problemów działa na
wcześniejszej konstrukcji z PIC32.
Stawiałbym raczej na konfigurację stosu lwIP. Gdzie się będzie dało
spróbuję jeszcze odzyskać w tym projekcie trochę RAM-u. Tymczasem ktoś
mógłby mi może podpowiedzieć które opcje konfiguracyjne są najbardziej
kluczowe z punktu widzenia odbierania streama audio? Co mogę wyłączyć,
które wartości powinienem poddnieść, a które mogę zmniejszyć?
Jeśli projekt doczeka się kiedyś kolejnej iteracji to chyba już na
jakimś STM32F4xx, o ile kiedyś znów będą dostępne w normalnych cenach. :)
Następne wpisy z tego wątku
- 30.09.22 09:49 J.F
- 30.09.22 11:04 Cezar
- 30.09.22 12:12 JDX
- 30.09.22 12:13 J.F
- 30.09.22 12:21 J.F
- 30.09.22 12:23 J.F
- 02.10.22 07:48 Marek
- 02.10.22 09:39 Atlantis
- 02.10.22 15:05 Marek
- 02.10.22 15:11 Marek
- 02.10.22 21:06 Atlantis
- 02.10.22 21:41 Mateusz Viste
- 04.10.22 09:04 Atlantis
- 05.10.22 17:23 Atlantis
- 05.10.22 18:37 a...@m...uni.wroc.pl
Najnowsze wątki z tej grupy
- Wkrętarki, wiertarki...
- Zasilacz impulsowy 12V 10A, coś godnego uwagi jako zamiennik akumulatora wkrętarki
- Mouser - koszt wysyłki
- [OT] Jak wycinac ksztalt w piance lub styropianie?
- FV--> ciepła woda w kranie
- Szok
- Dziwny schemat wzmacniacza m.cz.
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- CGNAT i ewentualne problemy
- wzmacniacz mocy
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- Propagation velocity v/c dla kabli RF
- Jakie natynkowe podwójne gniazdo z bolcem (2P+PE)
- Czujnik nacisku
- Protoków komunikacyjny do urządzenia pomiarowego
Najnowsze wątki
- 2025-06-24 Gdynia => Przedstawiciel handlowy / KAM (branża TSL) <=
- 2025-06-24 Warszawa => Młodszy Programista SQL / FrontEnd developer <=
- 2025-06-24 Warszawa => Junior C# / FrontEnd developer <=
- 2025-06-24 Warszawa => Sales Executive / KAM <=
- 2025-06-23 Warszawa => MENA New Business Manager <=
- 2025-06-23 Trójmiasto => Head of Social Media <=
- 2025-06-23 Tapeta w Xiaomi
- 2025-06-23 Gdańsk => Programista Kotlin <=
- 2025-06-23 Białystok => Programista Mainframe (z/OS, Assembler) <=
- 2025-06-23 Warszawa => Senior Account Manager <=
- 2025-06-23 Białystok => Mainframe (z/OS, Assembler) Developer <=
- 2025-06-23 Warszawa => Starszy Programista C <=
- 2025-06-23 Warszawa => Tester Automatyzujący <=
- 2025-06-23 Warszawa => Inżynier oprogramowania .Net <=
- 2025-06-23 Warszawa => Programista Full Stack .Net <=