logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

ENC28j60 + ATmega32 + Problem połączenia z siecią

Voncky 04 Sie 2007 12:04 6957 23
REKLAMA
  • #1 4144931
    Voncky
    Poziom 2  
    Posty: 4
    Witam,
    W ostatnich dniach probuje uruchomić urządzenie zbudowane w oparciu o ENC28j60 i ATmega32. Ma ono za zadanie komunikować się z programem uruchomionym na PC poprzez sieć LAN. Od razu przepraszam jeśli użyję złego słowa, dopiero zaczynam zabawę z siecią i trochę gubię się w pojęciach. Urządzenie to jest oparte na projekcie http://tuxgraphics.org/electronics/200606/article06061.shtml

    W moim układzie układ ENC28j60 jest połączony z siecią poprzez gniazdko zintegrowane z transformatorem i diodami firmy Tyco.
    Program, który zapisałem w mikroprocesorze jest ściśle oparty o ten który można ściągnąć ze strony wyżej wymienionego projektu. Dostosowałem tylko parę linijek do własnych potrzeb. Program ten potrafi zbadać, czy ramka danych należy do mojego adresu IP, czy jest to ramka ARP i odpowiedzieć właściwie na pytanie ARP. Potrafi odpowiedzieć na ping i realizuje jakieś funkcje związane z zaświeceniem diody i uruchomieniem ewentualnie podłączonego przekaźnika.

    Wykonałem parę prób podłączenia mojego układu do sieci i jak mogłem się spodziewać - nic z tego. I teraz po kolei.
    1. Najpierw skrosowanym kablem podłączyłem układ do laptopa (jakiś starszy model Fujitsu Siemens z przed około 5 lat - jeśli to ma znaczenie) i nawet nie zaświeciła się żadna dioda.
    2. Następnie przeprowadziłem tę samą próbę z komputerem stacjonarnym (troche młodszym :) ) i tym razem zaświeciła się zielona dioda w gniazdku mojego układu. Co jednak nie zmieniło faktu że ani mój układ ani nic na PC nie wskazywało na współpracę.
    3. Trzecią próbę przeprowadziłem podłączając układ (kablem 1:1) bezpośrednio do modemu szerokopasmowego (modem ten zamienia sygnał z kablówki na sygnał internetowy), z którego mam internet i również żadna dioda się nie zaświeciła.

    W żadnym z wymienionych przypadków, żaden komputer nie pokazywał, że "kabel sieciowy jest podłączony".
    Mój największy problem polega na tym, że nie wiem co się dzieje w momencie gdy włożymy kabelek do komputera. Czy karta sieciowa (może ENC28j60 również) wysyła jakieś dane, które pozwalają na ustanowienie połączenia? Jak zrozumieć działanie diodek w gniazdku LAN? Czy istnieje jakiś sposób na przesyłanie "surowych" ramek do mojego układu, czy też komputer wysyła całe pakiety danych? I chyba najważniejsze pytanie: Co zrobić żeby mój układ dogadał się z PC-tem.

    Jeśli zamieszałem coś w opisie lub gdy jest w nim za mało informacji - proszę zapytać, odpowiem najszybciej jak to możliwe. Jeśli podobne pytanie istnieje już na forum, proszę podrzucić mi link do niego - być może w swoich poszukiwaniach przeoczyłem ten wątek. Również proszę nie pisać żebym "pogooglał", ponieważ fakt iż stworzyłem ten temat świadczy, że nie mogłem znaleźć odpowiedzi na moje pytania przeglądając głównie zasoby Googla.

    Z góry serdecznie dziękuję za pomoc.
  • REKLAMA
  • #2 4544090
    llopacinski
    Poziom 11  
    Posty: 95
    Pomógł: 1
    Ocena: 10
    mam taki sam problem z linkiem na tym urządzeniu... zna ktoś rozwiązanie... po podłączeniu do urządzenia llink nie jest ustanawiany...

    pozdr.
  • REKLAMA
  • #3 4545144
    Voncky
    Poziom 2  
    Posty: 4
    U mnie problem polegał na tym, że zapomniałem wlutować dławika (takiego jak w nocie aplikacyjnej ENC28j60). Znaczyło to, iż napięcie zasilające nie dochodziło do transformatorka w gniazdku LAN i ENC nie mógł nic wysłać na zewnątrz. Jak tylko go wlutowałem układ natychmiast połączył się z komputerem. W efekcie zaświeciła się jedna z diod w gnieździe LAN - zarówno w komputerze jak i w moim układzie. Dodatkowo na komputerze pojawił się standardowy komunikat informujący, że nawiązano połączenie o szybkości 10MB/s. Wraz z nim zaświeciły się "dwa monitorki" na ikonce w tray'u - też standardowy sposób informowania użytkownika kompa, że jest on podłączony do sieci. Ikonka ta świeci się tak długo jak długo kabelek sieciowy łączy ENC z komputerem.
    Gdzieś doczytałem się, że po sieci cały czas krążą specjalne pakiety, których zadaniem jest sprawdzenie obecności urządzeń podłączonych do niej. Tak więc, jeśli Wam się ENC28j60 nie łączą z kompami to znak, że nie pracuje komunikacja do lub z układu. ENC ma zaimplementowany specjalny mechanizm wykrywania tych pakietów i odpowiadania na nie.

    W razie dalszych problemów opiszcie dokładnie jak zachowują się wasze układy - spróbuję pomóc. Pozdrawiam, Piotrek.
  • REKLAMA
  • #4 5277125
    Chyllus
    Poziom 17  
    Posty: 237
    Pomógł: 14
    Ocena: 3
    Właśnie jestem na etapie uruchamiania tego urządzenia. Czy ktoś może mi podpowiedzieć jak należy ustawić fusebits w ATMEGA88?
  • #6 5277559
    Chyllus
    Poziom 17  
    Posty: 237
    Pomógł: 14
    Ocena: 3
    Balu zajrzyj na stronę z linku w pierwszym poście. A jednak nie przesada!
    A tak poza tym to już znalazłem ustawienia.
    low 0x60
    high 0xdf
  • #10 5361821
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #12 6097562
    eros81
    Poziom 14  
    Posty: 175
    Pomógł: 1
    Ocena: 5
    Witam,
    Mam pytanko: Jak się zachowuje ta kość: ENC28j60 tzn: czy są z nią jakieś problemy, czy można łączyć się do komputerów za np dwoma switchami, czy trudno się ją obsługuje od strony programowej itp:?:
  • #13 6100369
    pixel7
    Poziom 24  
    Posty: 656
    Pomógł: 53
    Ocena: 160
    eros:

    Ja próbuje uruchomić enc i natrafiłem na problem z odpowiedzią.
    Zestaw mam następujący: m32+ enc. (dławik faktycznie jest niezbędny - bez niego nie zapala się dioda)
    Piszę w bascomie - na podstawie TEJ STRONY
    Jest tam informacja o bugu w bascomie i stosuję się do niej.

    1. Układ po podłączeniu do sieci reaguje - zapala się dioda
    2. Wysyłam ping - układ mruga drugą diodą - dla sprawdzenia wysyłam przez rs to co dotarło do enc, więc zapytanie ARP dociera
    3. Układ nie wysyła odpowiedzi ARP - nawet gdy ustawiam odpowiedź "z ręki", wysyłam dokładnie taką paczkę jak powinien odpowiedzieć.

    I nie bardzo jestem w stanie poradzić sobie.
    Może ktoś miał podobny problem??
  • #14 6976009
    neo_84
    Poziom 15  
    Posty: 294
    Pomógł: 1
    Ocena: 96
    temat trochę stary ale mnie bardzo interesuje wiec mam pytanie do pana pixel7 czy udało mu się uruchomić ta kartę sieciowa ? Chciałem zbudować sterownik I/O ethernet może dasz mi jakieś cenne wskazówki ?
  • #17 8123260
    piotrva
    VIP Zasłużony dla elektroda
    Posty: 6409
    Pomógł: 625
    Ocena: 735
    mam gotową płytkę z tą kością i będę korzystać ze wskazówek z tej strony: http://members.home.nl/bzijlstra/software/examples/enc28j60.htm

    i wszystko działa bez zarzutów
    w przypadku niektórych programatorów (np. avrprog USB v2) konieczne jest jego odłączenie po zakończeniu programowania i zresetowanie uP - inaczej mogą wyskakiwać różne dziwne błędy (np. zły odczyt wersji układu, nie wspominając już o jakiejkolwiek komunikacji)
    poza tym:
    1. nie zawsze trzeba stosować się do tej wskazówki o bugu - u mnie po jej zastosowaniu cała komunikacja się sypie (bascom 1.11.9.5)
    2. z moich "badań" wynika, że pin cs powinien znajdować się na końcówce /SS procesora, aby komunikacja przebiegała poprawnie
  • #18 10144944
    marekdrobin
    Poziom 13  
    Posty: 71
    Ocena: 2
    Ostatnio też bawię się ENC28j60 ale niestety układ nie ma przypisanego żadnego adresu IP, nie wiem jak sprzawdzić czy układ prawidłowo działa. Mój mikroprocesor to ATmega32 oraz ATmega16A proszę o pomoc.
  • #19 10145336
    piotrva
    VIP Zasłużony dla elektroda
    Posty: 6409
    Pomógł: 625
    Ocena: 735
    Sprawdzić można w statystykach/aktualnym stanie routera oraz za pomocą programu WireShark.
  • #20 10146822
    august_a
    Poziom 21  
    Posty: 572
    Pomógł: 32
    Ocena: 4
    marekdrobin to co ty z tym enc robisz??
  • #21 10146901
    piotrva
    VIP Zasłużony dla elektroda
    Posty: 6409
    Pomógł: 625
    Ocena: 735
    No właśnie, przydałby się Twój program, schemat, itd.
    http://mikrokontrolery.blogspot.com/2011/04/fora-dyskusyjne-sa-bardzo-pomocne.html
  • #22 10171868
    marekdrobin
    Poziom 13  
    Posty: 71
    Ocena: 2
    Jutro umieszczę konkretne dane wraz z schematem i programem.
    >>august_a<<
    Chce pobierać dane z akcelerometru i przesyłać do komputera. Niestety moja wiedza jest zbyt mała abym mógł sam to zrobić i dlatego szukam pomocy.
  • #23 10435119
    jaros85
    Poziom 20  
    Posty: 559
    Pomógł: 6
    Ocena: 37
    Witam
    Może moje pytanie będzie trochę zbyt trywialne ale czym mam kompilować kody z tej stronki
    http://tuxgraphics.org/electronics/

    Przy próbie kompilacji w AVR Studio 4 albo przez samego WinAVR-a wyskakują błędy.
    Proszę o pomoc.
  • #24 10435601
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    jaros85 napisał:
    Witam
    Może moje pytanie będzie trochę zbyt trywialne ale czym mam kompilować kody z tej stronki
    http://tuxgraphics.org/electronics/

    Przy próbie kompilacji w AVR Studio 4 albo przez samego WinAVR-a wyskakują błędy.
    Proszę o pomoc.


    Ja tam kompilowałem kiedyś i w AVR Studio, ale że już dawno go nie używam to teraz kompiluję wszystko pod Eclipse. Śmiga aż miło - a nie wyskakują błędy jako takie, musisz po prostu dopasować projekt do swoich potrzeb.

    Sprawdź jakie to warningi i błędy ;) ... jednym z nich przy pierwszych próbach kompilacji z tuxgraphics jest zwykle to, że chłopaki w folderze projektu umieszczają kilka plików z funkcją main() - a wiadomo że to zaraz będzie błąd ;) - trzeba sobie wybrać jeden do testów. W eclipse po prostu można się posłużyć prostą opcją "Exclude/Include from build" i po kłopocie.

    Tu masz na filmiku pokazane jak to w Eclipse sobie kompiluję i działam z tym - choć troszkę już po moich przeróbkach. Link

Podsumowanie tematu

✨ Dyskusja dotyczy problemów z uruchomieniem komunikacji sieciowej urządzenia opartego na układzie ENC28j60 i mikrokontrolerze ATmega32, bazującego na projekcie z tuxgraphics.org. Głównym problemem było nieustanowienie połączenia sieciowego, co w jednym z przypadków wynikało z braku wlutowanego dławika w linii zasilania transformatorka w gnieździe LAN, co uniemożliwiało prawidłową komunikację ENC28j60 z siecią. Po jego dodaniu diody sygnalizujące połączenie sieciowe zaświeciły się, a komputer wykrył połączenie 10Mb/s. Użytkownicy podkreślali, że ENC28j60 odpowiada na zapytania ARP i ping, jednak zdarzały się problemy z wysyłaniem odpowiedzi ARP, nawet przy ręcznie ustawianych pakietach. Wskazano na konieczność prawidłowego ustawienia fusebitów w mikrokontrolerze (np. low 0x60, high 0xdf dla ATmega88) oraz na znaczenie podłączenia pinu CS do końcówki /SS procesora dla poprawnej komunikacji SPI. Dyskutowano także o kompilacji kodu źródłowego projektu tuxgraphics w środowiskach AVR Studio i Eclipse, zwracając uwagę na konieczność wykluczenia nadmiarowych plików z funkcją main(). Poruszono kwestie testowania komunikacji za pomocą polecenia ping oraz monitorowania ruchu sieciowego programem WireShark. Wspomniano o problemach z obsługą ENC28j60 w BASCOM, a także o możliwości łączenia się przez przełączniki sieciowe. Ogólnie ENC28j60 jest uznawany za układ wymagający starannego podejścia do sprzętu i oprogramowania, ale działający stabilnie po spełnieniu warunków sprzętowych i programowych.
Wygenerowane przez model językowy.
REKLAMA