eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaPIC32MX795F512 + DP83848: Zawieszanie się Ethernetu › PIC32MX795F512 + DP83848: Zawieszanie się Ethernetu
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED.cdl199.neoplus.adsl.tpnet.pl!no
    t-for-mail
    From: Atlantis <m...@w...pl>
    Newsgroups: pl.misc.elektronika
    Subject: PIC32MX795F512 + DP83848: Zawieszanie się Ethernetu
    Date: Mon, 5 Feb 2024 20:34:17 +0100
    Organization: ICM, Uniwersytet Warszawski
    Message-ID: <uprd7p$fh7k$1@news.icm.edu.pl>
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    Injection-Date: Mon, 5 Feb 2024 19:34:17 -0000 (UTC)
    Injection-Info: news.icm.edu.pl;
    posting-host="cdl199.neoplus.adsl.tpnet.pl:83.30.161.199";
    logging-data="509172"; mail-complaints-to="u...@n...icm.edu.pl"
    User-Agent: Mozilla Thunderbird
    Content-Language: en-US, pl-PL
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:788450
    [ ukryj nagłówki ]

    Od jakiegoś czasu rozwijam pewien projekt oparty na PIC32MX795F512,
    który korzysta z wbudowanego w ten mikrokontroler sterownika MAC, z
    zewnętrznym układem PHY (DP83848). W wielkim skrócie jest to stacjonarny
    odtwarzacz plików z audio, z funkcją odbierania streamów po HTTP.

    Firmware napisałem za pomocą bibliotek Harmony3 od Microchipa oraz
    FreeRTOS. O ile sama aplikacja działa całkiem nieźle, to nie mogę sobie
    poradzić z pewną uciążliwą przypadłością - co jakiś czas łączność
    sieciowa zawiesza się. I to w tak dziwny sposób, że zawias wywala
    łączność we wszystkich urządzeniach podłączonych do tego samego switcha.
    Jestem pewien, że przyczyną jest moja płytka, bo prowadziłem testy z
    kilkoma różnymi switchami i za każdym razem wygląda to dokładnie tak samo.

    Objawy są następujące:
    - W pewnym momencie urządzenie traci łączność z siecią. Przestaje
    odpowiadać na pingi, nie można się dostać do prostego serwera HTTP
    (obsługującego webUI), a socket odbierający w danym momencie stream
    audio przestaje otrzymywać dane.
    - Co więcej, w tym samym momencie przestaje działać łączność sieciowa na
    wszystkich urządzeniach podpiętych do tego samego switcha.
    - Dioda ACT na gniazdku ethernetowym mojej płytki świeci ciągle, zamiast
    migać w rytm przesyłanych pakietów.
    - Co ciekawe problem często nie ustępuje po soft-resecie albo nawet
    pełnym power cycle - po ponownym podpięciu zasilania dioda ACT błyśnie
    parę razy, a w chwilę później znów zaczyna świecić. W takiej sytuacji
    trzeba chwilę odczekać przed ponownym podłączeniem zasilania. Takie
    zachowanie nie występuje jednak zawsze. Często zwykły, programowy reset
    wystarcza w zupełności.
    - Częstotliwość występowania problemu jest różna. Czasem występuje raz
    na kilka dni, czasem kilka razy jednego dnia.

    Co sprawdziłem do tej pory:
    - Włączyłem opcję raportowania zajętości tej części sterty, która jest
    wydzielona na użytek stosu TCP/IP. Nie zauważyłem, żeby problem
    korelował z brakami miejsca na stercie. Zwiększenie rozmiaru sterty w
    niczym nie rozwiązuje problem.
    - Próbowałem podnieść rozmiary stosu dla tasków FreeRTOS-a związanych z
    TCP/IP, ale nie przyniosło to żadnego efektu.
    - Próbowałem manipulować rozmiarami rozmaitych buforów wykorzystywanych
    przez TCP/IP, żeby oszczędzić pamięć. W niczym to nie pomogło.

    Dodatkowo: jakiś czas temu opracowałem nową wersję płytki do tego
    urządzenia, z dużo mocniejszym MCU (PIC32MZ2048). Tam nie zauważyłem
    jeszcze nigdy podobnego objawu. Może jest to związane z większą ilością
    zasobów sprzętowych - samo procesor jest znacznie szybszy, mogłem też
    ustawić większe rozmiary sterty oraz jej części przeznaczonej dla zadań
    TCP/IP.

    Można by co prawda próbować zrzucić winę na fakt, że urządzenie jest
    zbudowane na samodzielnie trawionej (dwustronnej) płytce. Jednak poza
    tymi dziwnymi zawiasami nie występują absolutnie żadne problemy z
    łącznością, nie zauważyłem ani jednego zgubionego pakietu podczas
    normalnej pracy. Poza tym zbudowałem jeszcze kilka innych urządzeń z
    DP83848 (w tym również z mikrokontrolerami STM32) na samodzielnie
    trawionych płytkach i nigdy nie miałem z tego tytułu żadnych problemów.

    Ktoś ma jakiś pomysł co do możliwej przyczyny? Szczególnie zastanawia
    mnie to wywalanie łączności na wszystkich urządzeniach podpiętych do
    tego switcha. W wolnej chwili spróbuję podpiąć Wiresharka i zobaczyć co
    tak właściwie się wtedy dzieje, jednak może ktoś z was zetknął się z
    czymś takim, albo przynajmniej ma pomysł jak to dalej debugować? ;)

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: