eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › PIC32MX795F512 + DP83848: Zawieszanie się Ethernetu
Ilość wypowiedzi w tym wątku: 54

  • 21. Data: 2024-02-10 14:12:33
    Temat: Re: PIC32MX795F512 + DP83848: Zawieszanie się Ethernetu
    Od: Atlantis <m...@w...pl>

    On 10.02.2024 09:16, Marek wrote:

    > Gdzie? Driver Harmony en28j60 używa DMA?

    Tak. To znaczy jest taka opcja. Można wygenerować konfigurację, w której
    ENC28J60 jest podpięty do drivera SPI skonfigurowanego do działania w
    trybie DMA.


    > Ale jaki to ma bezpośredni związek z blokadą switcha? Liczyłem na to, że
    > jednak zrobisz analize ruchu w tym kablu bom był ciekaw jak taka 10Mbit
    > zabawka może takiego DOSa na współczesnym switchu spowodować

    Tutaj mówimy o dwóch osobnych problemach na dwóch podobnych płytkach.

    Blokowanie switcha z objawem ciągłego świecenia ACT występuje (lub
    występowało) na nowszej wersji hardware'u, z PIC32MX795F512 + DP83848 (a
    więc FastEthernet). Na razie w ramach eksperymentu zmieniłem trochę
    konfigurację tasków FreeRTOS-a, obniżając priorytet tego, w którym
    działa mój kod. Jak na razie problem z blokadą nie wystąpił, chociaż
    jeszcze nie mogę tego wykluczyć, bo nieraz zdarzało się kilka dni
    spokoju. Jeśli jednak faktycznie nie powróci to będzie oznaczało, że
    powodem blokady było zagłodzenie któregoś z tasków zaangażowanych w
    łączność TCP/IP.

    Osobny problem miałem na bliźniaczej, starszej wersji płytki z
    PIC32MX795F512L + ENC28J60. Tam dochodziło do crasha łączności sieciowej
    przy próbie wejścia na stronę obsługiwaną przez serwerek HTTP odpalony
    na tej płytce. W tym przypadku nie dochodziło jednak do zablokowania
    łączności na switchu (ani ciągłego świecenia ACT). Problem nie był też
    losowy - można było go dość jasno skojarzyć serwerem HTTP.
    W tym wypadku pomogło właśnie właczenie DMA, nie wiem dlaczego.

    Oczywiście obydwie płytki nadal obserwuję, bo o ile sytuacja się
    poprawiła nie mogę mieć pewności, że wszystkie problemy zostały rozwiązane.


  • 22. Data: 2024-02-10 19:17:13
    Temat: Re: PIC32MX795F512 + DP83848: Zawieszanie się Ethernetu
    Od: Atlantis <m...@w...pl>

    On 10.02.2024 14:12, Atlantis wrote:

    > Blokowanie switcha z objawem ciągłego świecenia ACT występuje (lub
    > występowało) na nowszej wersji hardware'u, z PIC32MX795F512 + DP83848 (a
    > więc FastEthernet). Na razie w ramach eksperymentu zmieniłem trochę
    > konfigurację tasków FreeRTOS-a, obniżając priorytet tego, w którym
    > działa mój kod. Jak na razie problem z blokadą nie wystąpił, chociaż
    > jeszcze nie mogę tego wykluczyć, bo nieraz zdarzało się kilka dni
    > spokoju.

    A jednak byłem w błędzie. Problem powrócił z tymi samymi objawami:
    wywalenie komunikacji na switchu, cały czas świecąca się dioda ACK.
    Czyli wracamy do punktu wyjścia...


  • 23. Data: 2024-02-11 10:17:20
    Temat: Re: PIC32MX795F512 + DP83848: Zawieszanie się Ethernetu
    Od: Marek <f...@f...com>

    On Sat, 10 Feb 2024 19:17:13 +0100, Atlantis <m...@w...pl>
    wrote:
    > A jednak byłem w błędzie. Problem powrócił z tymi samymi objawami:
    > wywalenie komunikacji na switchu, cały czas świecąca się dioda ACK.
    > Czyli wracamy do punktu wyjścia...

    Ciągle czekamy na analizę ruchu w kablu, czemu tego nie zrobisz? Etap
    wróżenia z fusów się już za nami...

    --
    Marek


  • 24. Data: 2024-02-11 15:33:53
    Temat: Re: PIC32MX795F512 + DP83848: Zawieszanie się Ethernetu
    Od: Atlantis <m...@w...pl>

    On 11.02.2024 10:17, Marek wrote:

    > Ciągle czekamy na analizę ruchu w kablu, czemu tego nie zrobisz? Etap
    > wróżenia z fusów się już za nami...

    Chwilowy brak czasu - miałem parę innych spraw na głowie, wiec skupiłem
    się na tych testach, które można wykonać "z doskoku".
    Jak wspominałem, problemu nie można striggerować na żądanie, a niekiedy
    pojawia się on dopiero po kilku dniach pracy urządzenia. Będe musiał
    więc wziąć laptopa, ustawić na nim połączenie bridge i przechwytywać
    cały ruch za pomocą tcpdumpa, być może nawet przez kilka dni.

    Na razie porównałem działanie firmware'u na kilku różnych rewizjach
    płytki. Czas nie był stracony, bo namierzyłem jeszcze jednego buga w
    kodzie obsługującym printowanie dynamicznych zmiennych przez serwer HTTP
    - w pewnej sytuacji dochodziło do zarezerwowania bufora, który nigdy nie
    był zwalniany, przez co cały system printowania tych zmiannych
    przestawał działać. Nie ma to nic wspólnego z głównym problemem
    (komunikacja na płytce z PIC32MX512F512L+DP83848 wywala się nawet wtedy,
    gdy w ogóle zrezygnujemy z serwera HTTP), ale przynajmniej daje mi to
    jedną zmienną mniej, która mogłaby zaciemniać sprawę.


  • 25. Data: 2024-02-11 16:09:07
    Temat: Re: PIC32MX795F512 + DP83848: Zawieszanie się Ethernetu
    Od: Mirek <m...@n...dev>

    On 11.02.2024 15:33, Atlantis wrote:
    .
    > Jak wspominałem, problemu nie można striggerować na żądanie, a niekiedy
    > pojawia się on dopiero po kilku dniach pracy urządzenia. Będe musiał
    > więc wziąć laptopa, ustawić na nim połączenie bridge i przechwytywać
    > cały ruch za pomocą tcpdumpa, być może nawet przez kilka dni.
    >

    Problem ustaje po odpięciu i podpięciu rj-ki czy nie?
    Bo jeśli jest nadal to co za problem odpiąć ją i podpiąć pod laptopa i
    odpalić wiresharka?
    Wystarczy sprawdzić podstawowe rzeczy, czyli jak to urządzenie reaguje
    na arp, ping i czy nie wysyła czegoś głupiego i już coś się rozjaśni.
    Tak samo nie widzę problemu, żeby nie odpinać rj-ki tylko podpiąć się do
    switcha i sprawdzić, ewentualnie przepuścić sobie ruch przez laptopa.

    --
    Mirek.




  • 26. Data: 2024-02-15 20:43:51
    Temat: Re: PIC32MX795F512 + DP83848: Zawieszanie się Ethernetu
    Od: Atlantis <m...@w...pl>

    On 11.02.2024 16:09, Mirek wrote:

    > Problem ustaje po odpięciu i podpięciu rj-ki czy nie?
    > Bo jeśli jest nadal to co za problem odpiąć ją i podpiąć pod laptopa i
    > odpalić wiresharka?

    Racja, można próbować w ten sposób. Mi jednak zależałoby na
    przechwyceniu całej sekwencji zdarzeń, która prowadzi do wystąpienia awarii.

    W każdym razie obecnie mija trzecia doba, jak urządzenie pracuje i do
    tej pory nie zawiesiło jednocześnie wykrzaczając wszystkie urządzenia na
    tym samym switchu. Nie jestem pewien która zmiana za to odpowiada, bo
    zmieniłem kilka rzeczy: usunąłem znalezionego buga w kodzie printującym
    zmienne dynamiczne w plikach HTTP, ograniczyłem trochę użycie pamięci
    oraz zmieniłem ustawienia sterty (teraz zarówno stos TCP/IP jak i
    FreeRTOS korzystają z głównej sterty systemowej, bez wydzielania
    osobnych części).

    Pojawił się za to inny błąd - mniej drastyczny, ale także uciążliwy.
    Mianowicie po jakimś czasie urządzenie z jakiegoś powodu traci możliwość
    nawiązywania połączeń jako klient. Jeśli próbuję połączyć się z jakimś
    stremem, proces pada na poziomie DNS-a (zwrócony zostaje błąd -5,
    oznaczający DNS timeout). Jeśli próbuję połączyć ze stremem, który ma w
    URL-u adres IP widzę następującą sekwencję zdarzeń:

    - Aplikacja uzyskuje socket (a więc problemem nie jest brak dostępnych
    socketów TCP)
    - Aplikacja z powodzeniem rozszerza bufor odbiorczy socketa do 4096
    bajtów (a wiec problemem nie jest brak miejsca na stercie)
    - Po pięciu sekundach socket nie jest jednak w stanie uzyskać połączenia
    i wołany jest timeout (który sam dodałem w swojej aplikacji)

    Serwer HTTP odpalony na płytce w tym czasie działa normalnie, odpowiedzi
    na pingi też przychodzą. Jednak połączenia z serwerem w sieci nie da się
    zainicjować.

    W tym wypadku problem znika po odpięciu na chwilę kabla ethernetowego.
    Nie trzeba nawet resetować urządzenia.

    Nie ma pojęcia czy ten problem jest w jakikolwiek sposób związany z tym
    poprzednim, poważnym, który mi zawieszał kawałek sieci.


  • 27. Data: 2024-02-15 21:37:10
    Temat: Re: PIC32MX795F512 + DP83848: Zawieszanie się Ethernetu
    Od: Mirek <m...@n...dev>

    On 15.02.2024 20:43, Atlantis wrote:

    >
    > Serwer HTTP odpalony na płytce w tym czasie działa normalnie, odpowiedzi
    > na pingi też przychodzą. Jednak połączenia z serwerem w sieci nie da się
    > zainicjować.
    >

    Czekaj co jest serwerem i co gdzie jest?
    Serwer http jest na tej płytce i odpowiada?
    W tym samym czasie chcesz się z płytki połączyć z jakimś serwerem w
    sieci i utyka na dns-ach?
    Strzelam: dostaje adres IPv6 i nie wie co z nim zrobić?
    Ale to strzał całkiem na ślepo i z niewyczyszczonej broni.
    Trzeba zrobić rozpoznanie Wiresharkiem, a jak nie, to musisz zrobić
    rozpoznanie bojem czyli wyrzucić sobie na terminal po kolei co się dzieje.

    --
    Mirek.




  • 28. Data: 2024-02-16 00:46:58
    Temat: Re: PIC32MX795F512 + DP83848: Zawieszanie się Ethernetu
    Od: Atlantis <m...@w...pl>

    On 15.02.2024 21:37, Mirek wrote:

    > Czekaj co jest serwerem i co gdzie jest?
    > Serwer http jest na tej płytce i odpowiada?

    Na płytce jest zarówno serwer, jak i klient HTTP:
    1. Serwer obsługuje prosty webowy interfejs użytkownika, za pomocą
    którego można m.in. sterować odtwarzaniem.
    2. Klient łączy się z serwerami HTTP w sieci, które strumieniują audio
    stacji radiowych. Po połączeniu parsowane są nagłówki, a gdy wszystko
    się zgadza zaczyna ładować dane do bufora cyklicznego, skąd są
    przekazywane do dekodera audio (VS1003).

    W momencie gdy klient przestaje się łączyć ze stacjami internetowymi,
    webUI nadal działa.


    > W tym samym czasie chcesz się z płytki połączyć z jakimś serwerem w
    > sieci i utyka na dns-ach?

    To byłaby dobra hipoteza, gdyby problem nie dotyczył także URL-i z
    adresem IP. Adresy, które wymagają zaangażowania DNS-a faktycznie
    utykają na tym etapie. Stacja do której dostaje się przez IP z
    oczywistego powodu pomija ten etap i wywala timeout nie mogąc się
    doczekać połączenia.


    > Strzelam: dostaje adres IPv6 i nie wie co z nim zrobić?

    Obsługa IPv6 jest w tej chwili zupełnie wyłączona w opcjach klienta DNS.


  • 29. Data: 2024-02-16 01:11:41
    Temat: Re: PIC32MX795F512 + DP83848: Zawieszanie się Ethernetu
    Od: ptoki <p...@e...pl>

    On 2024-02-15 17:46, Atlantis wrote:
    > On 15.02.2024 21:37, Mirek wrote:
    >
    >> Czekaj co jest serwerem i co gdzie jest?
    >> Serwer http jest na tej płytce i odpowiada?
    >
    > Na płytce jest zarówno serwer, jak i klient HTTP:
    > 1. Serwer obsługuje prosty webowy interfejs użytkownika, za pomocą
    > którego można m.in. sterować odtwarzaniem.
    > 2. Klient łączy się z serwerami HTTP w sieci, które strumieniują audio
    > stacji radiowych. Po połączeniu parsowane są nagłówki, a gdy wszystko
    > się zgadza zaczyna ładować dane do bufora cyklicznego, skąd są
    > przekazywane do dekodera audio (VS1003).
    >

    Masz tam slota na karte sd z tym VS-em?
    Nie mialem czasu sie jeszzce zajac tematem ale mam pare modulow z VSami
    z i bez kart i sie zastanawiam czy te karty sa podpiete tak ze mozna je
    czytac i pisac z zewnetrznego kontrolera.

    Nie mailem czasu zajrzec w schematy a te co widzialem to maja dziwnie
    rozmalowane polaczenia i nie do konca wiem czy sdkarta jest dostepna po
    spi/iic

    --
    Lukasz


  • 30. Data: 2024-02-16 09:14:58
    Temat: Re: PIC32MX795F512 + DP83848: Zawieszanie się Ethernetu
    Od: Atlantis <m...@w...pl>

    On 16.02.2024 01:11, ptoki wrote:

    > Masz tam slota na karte sd z tym VS-em?

    Mam na tej płytce kartę gniazdo karty SD, ale jest podpięte do osobnej
    magistrali SPI. W dokumentacji VS1003 była informacja, że możliwe jest
    używanie kodeka na jednej magistrali z innymi urządzeniami, ale nieraz
    wymaga to dodatkowych kroków (np. rekonfiguracji między transmisjami).
    Skoro miałem taką możliwość, wolałem sobie oszczędzić kłopotów. Płytke i
    tak projektowałem od podstaw i nie stosowałem fabrycznych modułów.


    > Nie mialem czasu sie jeszzce zajac tematem ale mam pare modulow z VSami
    > z i bez kart i sie zastanawiam czy te karty sa podpiete tak ze mozna je
    > czytac i pisac z zewnetrznego kontrolera.

    Prawdopodobnie w przypadku tych modułów z kartą SD jest ona po prostu
    podłączona do tej samej magistrali SPI. Powinno się dać korzystać z
    obydwu urządzeń jednocześnie, ale warto najpierw wczytać się w
    dokumentację i zapoznać się z ograniczeniami.


    > Nie mailem czasu zajrzec w schematy a te co widzialem to maja dziwnie
    > rozmalowane polaczenia i nie do konca wiem czy sdkarta jest dostepna po
    > spi/iic

    Najlepiej będzie sprawdzić właśnie na schemacie. Interfejs VS10xx jest
    relatywnie prosty - zwykła magistrala SPI + kilka dodatkowych sygnałów
    sterujących. Jeśli karta współdzieli magistralę z kodekiem, to powinny
    być wspólne piony MISO, MOSI i SCK oraz osobny CS + ewentualnie piny
    charakterystyczne dla kart SD (present i write protect).

strony : 1 . 2 . [ 3 ] . 4 ... 6


Szukaj w grupach

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: