PIC32MX795F512L + Harmony - Ethernet się wykrzacza

Jakiś czas temu złożyłem sobie projekt radia internetowego/odtwarzacza MP3 z wykorzystaniem mikrokontrolera PIC32MX795F512L i układu Ethernet PHY DP83848. Firmware napisałem przy użyciu starych bibliotek MLA. Wszystko działało całkiem sprawnie. Później powstała nowsza wersja hardware'u, wykorzystująca znacznie mocniejszy PIC32MZ2048EFM100 i bibliotekę Harmony. Sprawdzała się ona znacznie lepiej - chociażby z uwagi na domyślne wykorzystanie RTOS-a.

Ostatnio postanowiłem backportować nową wersję softu pod stary hardware. Z czystej ciekawości chciałem się przekonać jak dobrze starszy MCU będzie sobie radził z nowymi bibliotekami. Gdyby eksperyment się udał, to potencjalnie mógłbym wykorzystać w przyszłych projektach tych kilka scalaków leżących w szufladzie. ;)

Oczywiście głównym problemem były mniejsze zasoby sprzętowe. O ile PIC32MZ2048EFM100 miał 2MB flasha i 512kB RAMu, to PIC32MX795F512L ma odpowiednio tylko 512kB i 128kB. Program się zmieścił, zajmując jakieś

75% flasha. Zmniejszając rozmiar kilku statycznych buforów, manipulując rozmiarem sterty i rozmaitymi ustawieniami w konfiguracji udało mi się także (chyba) upchnąć wszystko w RAM-ie.

Pierwsze wrażenie były jak najbardziej pozytywne. Oprogramowanie działało na starym sprzęcie zaskakująco dobrze. Powiedziałbym nawet, że lepiej niż na starych bibliotekach, co zapewne jest zasługą RTOS-a (różne procesy wykonują się równolegle i np. stos TCP/IP nie łapie przestoju, gdy inny proces utyka w jakiejś dłuższej pętli).

Dzisiaj jednak kilkukrotnie zaobserwowałem dziwną awarię: komunikacja po sieci wykrzaczyła się zupełnie. Płytka przestała odpowiadać na pingi, nie mogłem się dostać do webUI, również kod kliencki na MCU przestał otrzymywać dane z internetu. W momencie wystąpienia awarii dioda ACT na gniazdku Ethernetowym zaczęła się świecić cały czas. Co więcej - parę razy awaria spowodowała wykrzaczenie się komunikacji po Ethernecie na wszystkich urządzeniach podpiętych do tego samego routera! Nie był to jednak całkowity zawias - ciągle mogłem wydawać polecenia w konsoli UART i otrzymywałem sensowne odpowiedzi.

Raczej nie jest to wina sprzętu, bo na starym sofcie (biblioteki MLA) płytka była testowana miesiącami i zawsze działała stabilnie. Taki problem nigdy nie wystąpił. Odnoszę też wrażenie, że prawdopodobieństwo wystąpienia awarii jest silne skorelowane z ilością przesyłanych danych

- problem występował zawsze podczas odtwarzania streamu audio z sieci (radio internetowe po HTTP). Chociaż ta hipoteza musi jeszcze zostać przetestowana, to na razie urządzenie działa odtwarzając lokalne pliki i problem jeszcze nie wystąpił.

Ktoś ma jakąś hipotezę? Gdzie szukać potencjalnej przyczyny?

Reply to
Atlantis
Loading thread data ...

Pomysl pierwszy - brak pamieci. Mozesz tam jakąs czujke dodac, która diode zapali czy na konsole napisze, jak zacznie brakowac?

Tylko tak mysle o tym blokowaniu ethernetu ... co by moglo tak zrobic? Radyjko w petle wpadlo i wysyla pakiety za szybko? Czy spowodowało ze za duzo danych zaczelo napływać? A moze jakies felerne pakiety?

Wszystko to moze byc skutkiem braku pamieci ... ale może nowy software nie jest calkiem kompatybilny ze starym hardwarem od Ethernetu?

A moze jakies erraty do pica cos wyjasnią?

J.

Reply to
J.F

niedziela, 9 kwietnia 2023 o 19:29:31 UTC+2 Atlantis napisał(a):

Po co ci takie coś co nazwales radiem a nie napisałeś czy wydaje jakieś dźwięki poza tym że ciągle w nim coś nie działa. Czy czasami ono nie jest z tej samej serii co traktor co ma trzy koła dobre?

Reply to
Zenek Kapelinder

Oczywiście, że wydaje dźwięki. Skąd pomysł, że mogłoby być inaczej? Stream audio odbierany przez HTTP (albo odczytywany z pliku) jest kierowany do bufora cyklicznego, skąd trafia do dekodera VS1003 i na głośniki. :)

Reply to
Atlantis

Jak działa to czy po tym jak roztrajbujesz ferszluz żeby droselklapa mniej o może wcale nie ryksztosowala będą w nim lepsze dla ciebie wiadomości? Albo muzyka symfoniczna przesyłana do głośników kablami że zwykłej miedzi będzie brzmiała jak by była przesyłana kablami z miedzi wytapianiej na międzynarodowej stacji kosmicznej?

Reply to
Zenek Kapelinder

Chcial miec chłop wlasny "odbiornik internetowy", to ma, nie jest juz skazany na sklepowe ... ktore nie wiadomo kiedy przestana dzialac.

J.

Reply to
J.F

Jak do mnie piszesz to przedtem jakieś tabletki na dysleksję bierzesz? Wiesz że z tobą nie gadam to po chuj się wpierdalasz? Uznaj że miły byłem.

Reply to
Zenek Kapelinder

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.