RTV forum PL | NewsGroups PL

Problem z uruchomieniem stosu TCP/IP na PIC32MZ2048EFM100

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Problem z uruchomieniem stosu TCP/IP na PIC32MZ2048EFM100

Goto page Previous  1, 2

Atlantis
Guest

Fri Jan 20, 2023 8:50 am   



On 20.01.2023 00:09, Marek wrote:

Quote:
Zakładam, że to raczej problem software'owy. Czegoś niedoklikałeś.

Mam właśnie taką nadzieję. Robiłem już wizualną inspekcję okolic DP83848
oraz linii interfejsu RMII, ale nie widzę niczego podejrzanego.
Zastanawiam się jak wyglądałoby zachowanie układu, gdyby był problem na
liniach danych TX0 i TX1 interfejsu RMII, ale wtedy chyba byłby w ogóle
problem z inicjalizacją sterownika i czytaniem zawartości rejestrów PHY.
A to jestem w stanie zrobić.


Quote:
Jest jakiś problem powodujący jednostronną komunikację, jeśli płytka
sugeruje (na podstawie liczników) że wysyła pakiety a nie widać ich u
odbiorcy to albo fizycznie nie wychodzą z interfejsu eth albo
wychodzą ale są popsute, przez to ignorowane lub dropowane po
drodze (mądry switch?).

Żadnego mądrego switcha po drodze nie było. Jeden z pingujących
komputerów jest podłaczony do tego samego prostego switcha od TP-Linka,
co testowana płytka. Drugi był podłączony do innego portu Ethernet
domowego routera. Może router mógłby mieć jakąś funkcję dropowania
uszkodzonych pakietów, ale tego prostego switcha o to nie podejrzewam.


Quote:
Zweryfikuj wpierw czy prawidłowo na pewno
odbiera UDP w warstwie aplikacji, jakiś prosty klient na szybko
dołącz. Możesz też pokazać jak Ci się wygenerował system_config.h
porównam ze swoim.

Ok. Chyba nawet można w systemowej konsoli aktywować komendę do
wysyłania pakietów UDP i TCP. Jest też klient ICMP. Płytka też nie jest
w stanie niczego pingować, za wyjątkiem samej siebie.


Quote:
A możesz zbudować hexa dla 32MZ2064DAH169 + MIIM i wysłać mi na
maila?

Ok, spróbuję z tym poeksperymentować dzisiaj albo przez weekend. Podepnę
też Wiresharka i zobaczę czy coś w ogóle widać.

Adam GĂłrski
Guest

Fri Jan 20, 2023 10:28 am   



W dniu 19.01.2023 o 18:22, Atlantis pisze:
Quote:
Ok. Usunąłem w MHC całą konfigurację wszystkiego związanego z siecią,
zbudowałem ją od nowa i po raz kolejny wygenerowałem kod. Problem
powtarza się w dokładnie taki sam sposób, a objawy są dziwne.

Podsumowując:
- Stos TCP/IP inicjuje się prawidłowo, podobnie jak sterownik MAC/PHY.
- Sterownik MIM jest w stanie czytać rejestry układu PHY (DP83848).
- Pomimo umieszczenia w projekcie serwera ICMP, nie jestem w stanie
pingować płytki. Komputer nie otrzymuje odpowiedzi.
- Nie działa właściwie żadna łączność. Płytka nie otrzymuje adresu z
DHCP (w logach routera nie widać w ogóle, żeby była podejmowana taka
próba). Nie jestem w stanie przeprowadzić kwerendy za pomocą klienta
DNS. Przeglądarka WWW nie widzi serwera HTTP odpalonego na płytce.
- Sterownik MAC rejestruje statystyki odbieranych i wysyłanych pakietów.
Wartości te narastają szybciej, jeśli podejmowana jest próba pingowania
płytki.
- Stos reaguje na odpinanie i podłączanie kabla Ethernet, dostosowując
odpowiednio status połączenia wyświetlany przez narzędzie netinfo.
- Na liście ARP urządzenia widoczne są adresy MAC i IP rzeczywistych
urządzeń z tej sieci, w tym routera oraz komputerów, z których wysyłane
były pingi.

Czyli wygląda na to, że jakaś komunikacja jest. Tylko jakby w jedną
stronę - płytka coś odbiera (a konkretnie pakiety ARP z informacjami na
temat urządzeń w sieci) ale nie jest w stanie wysyłać (nie widać
odpowiedzi na pingi ani prośby o przyznanie konfiguracji przez DHCP).

Zaczynam się zastanawiać czy gdzieś nie ma problemu sprzętowego. Ktoś ma
jakiś pomysł co do możliwej przyczyny, która mogłaby powodować tak
dziwne działanie Ethernetu?

Jeżeli MDIO/MDC komunikacja działa to co zostaje ?

TX_CLK,TX_EN,TXD[3..0]

Czy widać tam cokolwiek ?

Skoro to PCB ręcznej roboty to może sprawdź połączenia i zwarcia.
Zwłaszcza pomiędzy TXD[3..0]

Ewentualnie jeszcze to samo po stronie RJ45

Bywało i tak że się jeden pin z RJ45 nie kontaktował.

Na stronie 81 dataszyta masz wygląd przebiegów na kablu eth.

Poza tym to już tylko kwarc zostaje.

BTW Wygląda to bardziej właśnie na problem sprzętowy niż softwarowy.

Pozdrawiam

Adam Górski

Atlantis
Guest

Fri Jan 20, 2023 8:05 pm   



On 19.01.2023 20:46, heby wrote:

Quote:
PS. Stawiam na przepełnienie stosu Wink W ciemno Wink

A jednak był sprzętowy. Wink Krótko mówiąc - udało się!
W akcie desperacji jeszcze raz zabrałem się za inspekcję wizualną za
pomocą luby, nie znajdując żadnego problemu. Zacząłem więc przedzwaniać
kolejne linie multimetrem, szukając zwarć do masy i sąsiednich ścieżek,
oraz testując ciągłość linii.
W pewnym momencie trafiłem na dziwną sytuację. Ścieżka z stgnałem ETXEN
"cała", a nie przewodzi. Znalazłem miejsce w którym miała być przerwa i
dopiero po chwili przyglądając się ju przez najlepszą lupę znalazłem
przerwę, mniejszą od grubości ludzkiego włosa.
Mostek z cyny i kawałka cienkiego drucika załatwił sprawę. Wszystko
działa. Płytka pobiera adres z DHCP i odpowiada na pingi, nawet serwer
http ruszył z miejsca. Smile

Atlantis
Guest

Sat Jan 21, 2023 9:52 am   



On 21.01.2023 06:38, titanus wrote:

Quote:
Swoją drogą "ręcznie robiona" płytka do komunikacji na 100Mbit?

Jak najbardziej osiągalne. Trzeba tylko nauczyć się robić dwustronne
płytki z przelotkami i relatywnie cienkimi ścieżkami (8-12 milsów).
Najbardziej uciążliwą częścią jest wiercenie otworów w taki sposób, żeby
po obydwu stronach trafić we właściwym miejscu. :)

Generalnie długości linii szczególnie pilnuję w przypadku wejścia i
wyjścia różnicowego PHY. Staram się, żeby układ był tak blisko gniazdka,
jak to tylko możliwe, a do tego stosuję meandrowanie, żeby wyrównać
długości obydwu ścieżek w parze. Do tego oczywiście wszystko zalane masą.

Miałem dylemat w przypadku połączenia pomiędzy ETH i PHY. Tutaj są dwie
opcje - albo interfejs MII (częstotliwość 25 MHz, ale więcej ścieżek do
poprowadzenia) albo RMII (50 MHz, ale mniej ścieżek).

Finalnie wybrałem tę drugą opcję. Niestety z uwagi na ograniczenia
domowej technologii produkcji płytek (np. brak możliwości wykonania
przelotek pod układami albo zrobienia dostatecznie cienkich ścieżek) nie
byłem w stanie sensownie poprowadzić linii tego interfejsu w zgodzie z
najlepszymi zasadami (meandry, izolowanie poszczególnych ścieżek masą),
jednocześnie trzymając obydwa układy blisko siebie. Postanowiłem więc,
że skupię się na tym, żeby połączenia były możliwe jak najkrótsze.
Trochę łatwiej było to zrobić w przypadków STM32 niż PIC32, bo wszystkie
linie interfejsu RMII zgrupowane są po jednej stronie układu.

Testu EMC to oczywiście nie przejdzie, jednak działa. Połączenie jest
stabilne, a na kilkadziesiąt tysięcy wysłanych pingów nie ginie ani
jeden. Generalnie spodziewałem się, że to ma szansę działać, bo
widziałem eksperymenty ludzi podpinających do zestawu testowego PHY w
formie modułu, na kabelkach. ;)

Aha. Oczywiście to, że Ethernet wynegocjuje z infrastrukturą zestawienie
połączenia 100Mbps nie oznacza, że będziemy mieć takie transfery. Wink
Tutaj ograniczeniem będzie wydajność procesora i przepustowość innych
peryferiów.

Marek
Guest

Sat Jan 21, 2023 10:37 am   



On Sat, 21 Jan 2023 06:38:12 +0100 (GMT+01:00), titanus
<titanussiedemsiedem_at_gjemajl.kom> wrote:
Quote:
Wasze posty czyta się jak dobry kryminał Agaty Cristii Wink

To byłby ciekawy wątek, gdyby nie jego autor sprowadził go w wielkim
finale do poziomu problemu klasy "niepodłączony kabelek".

--
Marek

Paweł Pawłowicz
Guest

Sat Jan 21, 2023 12:00 pm   



W dniu 21.01.2023 o 06:38, titanus pisze:
[...]
Quote:
Szapoba.

Wasze posty czyta się jak dobry kryminał Agaty Cristii Wink

Nudny ten kryminał. Wszystkie odcinki takie same: wiele hipotez, a w
końcu okazuje się, że Autor spieprzył jakąś prostą rzecz. Szkoda czasu
na czytanie.

P.P.

Marek
Guest

Sat Jan 21, 2023 12:15 pm   



On Sat, 21 Jan 2023 12:00:05 +0100, Paweł
Pawłowicz<pawel.pawlowicz_at_upwr.eduDOTpl> wrote:
Quote:
Nudny ten kryminał. Wszystkie odcinki takie same: wiele hipotez, a
w
końcu okazuje się, że Autor spieprzył jakąś prostą rzecz. Szkoda
czasu
na czytanie.

We wczesnych latach 90 na bazarze Różyckiego był taki szyld
"Komputery - wyrób, naprawa". Tak mi się skojarzyło Wink.

--
Marek

Adam GĂłrski
Guest

Mon Jan 23, 2023 1:54 pm   



W dniu 20.01.2023 o 10:28, Adam Górski pisze:
Quote:
W dniu 19.01.2023 o 18:22, Atlantis pisze:
Ok. Usunąłem w MHC całą konfigurację wszystkiego związanego z siecią,
zbudowałem ją od nowa i po raz kolejny wygenerowałem kod. Problem
powtarza się w dokładnie taki sam sposób, a objawy są dziwne.

Podsumowując:
- Stos TCP/IP inicjuje się prawidłowo, podobnie jak sterownik MAC/PHY.
- Sterownik MIM jest w stanie czytać rejestry układu PHY (DP83848).
- Pomimo umieszczenia w projekcie serwera ICMP, nie jestem w stanie
pingować płytki. Komputer nie otrzymuje odpowiedzi.
- Nie działa właściwie żadna łączność. Płytka nie otrzymuje adresu z
DHCP (w logach routera nie widać w ogóle, żeby była podejmowana taka
próba). Nie jestem w stanie przeprowadzić kwerendy za pomocą klienta
DNS. Przeglądarka WWW nie widzi serwera HTTP odpalonego na płytce.
- Sterownik MAC rejestruje statystyki odbieranych i wysyłanych
pakietów. Wartości te narastają szybciej, jeśli podejmowana jest próba
pingowania płytki.
- Stos reaguje na odpinanie i podłączanie kabla Ethernet, dostosowując
odpowiednio status połączenia wyświetlany przez narzędzie netinfo.
- Na liście ARP urządzenia widoczne są adresy MAC i IP rzeczywistych
urządzeń z tej sieci, w tym routera oraz komputerów, z których
wysyłane były pingi.

Czyli wygląda na to, że jakaś komunikacja jest. Tylko jakby w jedną
stronę - płytka coś odbiera (a konkretnie pakiety ARP z informacjami
na temat urządzeń w sieci) ale nie jest w stanie wysyłać (nie widać
odpowiedzi na pingi ani prośby o przyznanie konfiguracji przez DHCP).

Zaczynam się zastanawiać czy gdzieś nie ma problemu sprzętowego. Ktoś
ma jakiś pomysł co do możliwej przyczyny, która mogłaby powodować tak
dziwne działanie Ethernetu?

Jeżeli MDIO/MDC komunikacja działa to co zostaje ?

TX_CLK,TX_EN,TXD[3..0]

Czy widać tam cokolwiek ?

Skoro to PCB ręcznej roboty to może sprawdź połączenia i zwarcia.
Zwłaszcza pomiędzy TXD[3..0]

Ewentualnie jeszcze to samo po stronie RJ45

Bywało i tak że się jeden pin z RJ45 nie kontaktował.

Na stronie 81 dataszyta masz wygląd przebiegów na kablu eth.

Poza tym to już tylko kwarc zostaje.

BTW Wygląda to bardziej właśnie na problem sprzętowy niż softwarowy.

Pozdrawiam

Adam Górski

Wygrałem coś ?

Adam Górski

Goto page Previous  1, 2

elektroda NewsGroups Forum Index - Elektronika Polska - Problem z uruchomieniem stosu TCP/IP na PIC32MZ2048EFM100

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map