-
1. Data: 2016-06-10 21:17:49
Temat: ENC28J60 nie działa (a powinien)
Od: Atlantis <m...@w...pl>
Skleciłem sobie ostatnio płytkę do eksperymentów z PIC32. Na pokładzie
siedzi PIC32MX270F256B, ENC28J60, AT45DB641, gniazdko do podłączenia
PenDrive'a i parę innych drobiazgów. Zabrałem się za oprogramowywanie
poszczególnych elementów i problem pojawił się przy sieci.
Użyłem najnowszej dostępnej biblioteki z MLA od Microchipa (ta z 2013
roku). Zmiany jakie wprowadziłem są kosmetyczne - właściwie tylko tyle,
że skopiowałem wyłącznie potrzebne mi pliki i zmodyfikowałem ścieżki w
include'ach, dostosowując je do własnej struktury katalogów. Poza tym
jest to dokładnie ten sam, standardowy kod.
Projekt się skompilował, jednak po wgraniu go do MCU okazało się, że
pingi nie wracają, a w tabeli ARP routera nie pojawia się wybrany przeze
mnie adres MAC układu.
Niemniej komunikacja po SPI działa prawidłowo, a sterownik od ENC
raportuje pomyślne zakończenie inicjalizacji po włączeniu zasilania.
Po wykonaniu paru eksperymentów przekonałem się, że chociaż diody na
gniazdku RJ45 zachowują się prawidłowo, funkcja MACIsLinked() za każdym
razem zwraca false, bez względu na to, czy kabel jest podłączony, czy nie.
A akcie chwilowej desperacji wymieniłem nawet gniazdko RJ45 (standardowy
HanRun z trafem) i ENC28J60 - podejrzewając, że któryś z tych elementów
może być wadliwy. Przy okazji pomierzyłem ścieżki, w razie gdyby gdzieś
było jakieś małe zwarcie, które pominąłem. Niestety, żadna z tych
operacji nie przyniosła rezultatu - układ ciągle nie działa.
Połączenia sprawdzałem już kilkanaście razy, zresztą fragment schematu z
ENC został przekopiowany z innego, działającego układu. Jedyna różnica
jest taka, że tym razem nieco poprawiłem projekt płytki (menadry na
liniach różnicowych RX i TX Ethernetu + lepiej umiejscowione rezystory
na tych liniach).
Ktoś ma jakiś pomysł? Może jednak mimo wszystko problem jest programowy?
-
2. Data: 2016-06-10 22:04:03
Temat: Re: ENC28J60 nie działa (a powinien)
Od: jacek pozniak <j...@f...pl>
Atlantis wrote:
>
> Ktoś ma jakiś pomysł? Może jednak mimo wszystko problem jest programowy?
A skąd to założenie, że biblioteka od microchipa nie jest wadliwa?
jp
-
3. Data: 2016-06-10 22:09:50
Temat: Re: ENC28J60 nie działa (a powinien)
Od: Atlantis <m...@w...pl>
W dniu 2016-06-10 o 22:04, jacek pozniak pisze:
> A skąd to założenie, że biblioteka od microchipa nie jest wadliwa?
Bo całe mnóstwo ludzi używa jej w takiej samej konfiguracji sprzętowej?
-
4. Data: 2016-06-11 11:44:39
Temat: Re: ENC28J60 nie działa (a powinien)
Od: Atlantis <m...@w...pl>
Kilka kolejnych obserwacji:
1) Wymieniłem prawie wszystkie przyległości ENC i gniazdka RJ45. Na
dobrą sprawę z niewymienionych elementów pozostały tylko kondensatory
odsprzęgające na VCC oraz te przy kwarcu.
2) Na próbę podłączyłem płytkę bezpośrednio z pecetem za pomocą
scrossowanego kabla. Na płytce świeci się zielona dioda, a żółta miga.
Na pececie widać miganie żółtej, ale zielona się NIE świeci.
Układ ścieżek wygląda następująco:
https://s33.postimg.org/yeolw1exp/2016_06_11_11_00_3
6.jpg
-
5. Data: 2016-06-11 13:08:50
Temat: Re: ENC28J60 nie działa (a powinien)
Od: Mirek <i...@z...adres>
W dniu 11.06.2016 o 11:44, Atlantis pisze:
> 2) Na próbę podłączyłem płytkę bezpośrednio z pecetem za pomocą
> scrossowanego kabla. Na płytce świeci się zielona dioda, a żółta miga.
> Na pececie widać miganie żółtej, ale zielona się NIE świeci.
Nie wiem jak się zachowuje ENC28j60, ale nie pamiętam już kiedy musiałem
stosować scrossowany kabel.
Podobna konfiguracja diodek kojarzy mi się kiedy miałem zamieniony
zielony z biało-zielonym w jednej wtyczce. Co ciekawe - z jednym
switchem to działało (zrywało co jakiś czas, ale można było tego nie
zauważyć).
--
Mirek.
-
6. Data: 2016-06-11 15:53:05
Temat: Re: ENC28J60 nie działa (a powinien)
Od: Atlantis <m...@w...pl>
W dniu 2016-06-11 o 13:08, Mirek pisze:
> Nie wiem jak się zachowuje ENC28j60, ale nie pamiętam już kiedy musiałem
> stosować scrossowany kabel.
> Podobna konfiguracja diodek kojarzy mi się kiedy miałem zamieniony
> zielony z biało-zielonym w jednej wtyczce. Co ciekawe - z jednym
> switchem to działało (zrywało co jakiś czas, ale można było tego nie
> zauważyć).
Na zwykłem, niecorssowanym (zresztą fabrycznym) kablu układ zachowuje
się dokładnie tak samo.
Zrobiłem już chyba wszystko, co mogłem zrobić:
1) Wymieniłem wszystkie elementy feralnego bloku, za wyjątkiem kilku
odsprzęgających na linii VCC.
2) Zwarłem meandry na liniach różnicowych RX i TX.
3) Wylutowałem układ AT45DB641, współdzielący z ENC magistralę SPI.
4) Upewniłem się, czy kwarc się wzbudza. Zarówno licznik częstotliwości
jak i oscyloskop pokazują sygnał na pinach OSC2 (25MHz) i CLKOUT (6,25MHz).
5) Upewniłem się, że nie ma zwarć ani przerw. Kilkanaście razy
obejrzałem płytkę pod lupą i sprawdziłem miernikiem.
6) W akcie desperacji spróbowałem nawet na szybko przeportować stos
Tuxgraphics, z którego korzystałem na AVR-ach. Po uwzględnieniu rzeczy
specyficznych dla PIC32, kawałki kodu z Atmegi skompilowały się. Efekt
był jednak dokładnie taki sam.
Ktoś ma jakiś pomysł? Może jednak stosowanie meandrów nie było zbyt
dobrym pomysłem? Już rezygnacja z mostków po drugiej stronie płytki
wiązała się z wydłużeniem ścieżek, a celem zapewnienia miejsca na
menadry trzeba było jeszcze bardziej odsunąć ENC od gniazdka. Może
jednak lepiej mieć jak najkrótsze ścieżki, nie martwiąc się brakiem
idealnej linii różnicowej?
Schemat tutaj:
https://s33.postimg.org/afjqt6fvh/enc.png
-
7. Data: 2016-06-11 17:28:24
Temat: Re: ENC28J60 nie działa (a powinien)
Od: platformowe głupki <N...@g...pl>
widzisz, nie pomogłeś mi z USB dla PICów...
ale ja Ci spróbuję pomóc - WIRESHARK!!!
-
8. Data: 2016-06-12 16:37:54
Temat: Re: ENC28J60 nie działa (a powinien)
Od: platformowe głupki <N...@g...pl>
a jakby tak podpiąć gotowy modulik z ENC pod SPI? będzie wiadomo, czy
wina softu czy może układu...
-
9. Data: 2016-06-12 18:01:32
Temat: Re: ENC28J60 nie działa (a powinien)
Od: Atlantis <m...@w...pl>
W dniu 2016-06-12 o 16:37, platformowe głupki pisze:
> a jakby tak podpiąć gotowy modulik z ENC pod SPI? będzie wiadomo, czy
> wina softu czy może układu...
Wczoraj też mi to przyszło do głowy i w ten sposób udało mi się ustalić,
że problem nie jest sprzętowy.
Z pomocą jednego z kolegów z grupy (jeszcze raz dziękuję) udało mi się
ustalić, że biblioteka do obsługi Ethernetu najwyraźniej gryzie się z
biblioteką do USB MSD. Dlaczego? Jeszcze nie mam pojęcia...
-
10. Data: 2016-06-12 18:31:51
Temat: Re: ENC28J60 nie działa (a powinien)
Od: Artur Miller <n...@n...com>
W dniu 2016-06-12 o 18:01, Atlantis pisze:
> W dniu 2016-06-12 o 16:37, platformowe głupki pisze:
>
>> a jakby tak podpiąć gotowy modulik z ENC pod SPI? będzie wiadomo, czy
>> wina softu czy może układu...
>
> Wczoraj też mi to przyszło do głowy i w ten sposób udało mi się ustalić,
> że problem nie jest sprzętowy.
> Z pomocą jednego z kolegów z grupy (jeszcze raz dziękuję) udało mi się
> ustalić, że biblioteka do obsługi Ethernetu najwyraźniej gryzie się z
> biblioteką do USB MSD. Dlaczego? Jeszcze nie mam pojęcia...
>
kiedyś ogólną teorię gryzienia stosowało się do wyjaśniania problemów z
konfliktami IRQ jak do peceta wsadziło się za dużo kart na ISA'ę ;)
a w temacie - są jakieś sekcje krytyczne w tych libach? dobrze obsłużone?
a.