Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 4 mar 2025, o 12:40


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 3 paź 2013, o 19:11 
Offline
Nowy

Dołączył(a): 03 paź 2013
Posty: 3
Pomógł: 0

Witam. Mam problem z połączeniem z modułem ENC28J60. Układ nie odpowiada.

Pozwoliłem sobie wszystko wypunktować:
  • Gotowy moduł sieciowy ENC28J60 kupiony jest na allegro. Tutaj link do producenta: http://www.lctech-inc.com/Hardware/Detail.aspx?id=588fbc2e-ecc1-4013-ac35-69bc83bda1fb
  • ENC28J60 zasilany jest stabilizowanym napięciem 3.3V. Napięcie zgadza się - sprawdzałem miernikiem.
  • Moduł podłączony jest do mikrokontrolera ATmega88PA, który zasilany jest 5V.
  • Linie SO oraz INT poprowadzone są do uC przez bufor 74HC125, który zasilany jest napięciem 5V.
  • Całość próbowałem też zasilać przez 3.3V
  • Korzystam z bibliotek tuxgraphics. Próbowałem z bibliotekami w wersjach 4.x, 5.x, 2.x
  • uC taktowany jest z zewnątrz 12.5MHz bezpośrednio z ENC28J60 (CLKout). Fusebity ustawioen zgodnie z plikiem README biblioteki, low fuse: 0x60 czyli na zewnętrzne źródło. Wiem, że lepiej byłoby podpiąć jeszcze szybszy kwarc, ale w tej chwili nie mam takowego na stanie. Nie wydaje mi się, żeby to było przyczyną, że układ ani razu nie zadziałał poprawnie. Próbowałem też z wewnętrznym clockiem 8MHz.
  • Układ mam zbudowany na płytce stykowej. Wyszedł mi z tego mały pająk, ale wszystko podłączałem kilkukrotnie.
  • Zielona dioda w gniazdku RJ45 cały czas świeci na zielono, żółta mruga, więc chyba jest ok.
  • Moduł podłączony jest z komputerem przez Router. W kodzie programu uC na sztywno przypisany jest adres 192.168.1.3. PC dostaje od DHCP IP z przedziału 192.168.1.100 - 192.168.1.200 oraz maskę 255.255.255.0. Niestety nie mogę sprawdzić w moim routerze podłączonych urządzeń oraz ich MAC.
  • Próbowałem układ podłączyć przez skrosowany kabel bezpośrednio do PC. W PC były oczywiście na sztywno wbite IP i maska.
  • Podczas próby pingowania IP modułu losowo wywalany jest komunikat "Host docelowy jest nieosiągalny." albo "Upłynął limit czasu żądania.".

Nie będę się na razie bardziej rozpisywał. Poproszę jednak kogoś, żeby sprawdził schemat na podstawie którego mam wszystko podłączone. W chwili obecnej wydaje mi się najbardziej prawdopodobne, że właśnie tam jest błąd.
Wzorowałem się na schemacie ze strony tuxgraphics oraz na schematach z niebieskiej książki Mirka. Jak już wspomniałem, posiadam sam moduł (nie scalak), więc ma tylko kilka wyprowadzeń, które poprowadzone są do uC.
Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 paź 2013, o 20:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 paź 2011
Posty: 581
Pomógł: 17

Hej;)
Masz identyczny (po wyglądzie) moduł który ja kupiłem. I również miałem z nim problemy.
Również migała mi dioda pomarańczowa, a zielona świeciła.
Okazało się, że źle podłączam moduł.

Mój moduł musi być zasilany 3V3, ale linie sygnałowe tolerują 5V

Proponuję więc nie stosować żądnych buforów i zasilić moduł napięciem 3v3
A procka napięciem 5V
Proponuję również użyć kwarca 20Mhz i kodu z książki Mirka.
Następnie podłączyć te sygnały z modułu :ENC - SI, CS, INT, SO, SCK do Atmegi
I wszystko będzie grało :)

Aha masz Mege88 więc może będziesz musiał niektóre rejestry zmienić.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 paź 2013, o 23:43 
Offline
Nowy

Dołączył(a): 03 paź 2013
Posty: 3
Pomógł: 0

Cytuj:
Proponuję więc nie stosować żądnych buforów i zasilić moduł napięciem 3v3
A procka napięciem 5V
Takimi napięciami właśnie zasilam te elementy. Bufor służy do tego, żeby na wejściu uC podawać odpowiedni poziom napięcia. Na wejściu bufor dostaje sygnał 3.3V a dalej podaje 5V :)

Jeszcze raz spróbowałem znaleźć przyczynę w bibliotece. Skorzystałem z biblioteki znajdującej się na płycie DVD niebieskiej książki Mirka. Nic nie pomogło.
Moje modyfikacje kodu to:
1. Kompilator zgłaszał błąd, ale tutaj jest przyczyna i rozwiązanie: http://tuxgraphics.org/electronics/201207/prog_char.shtml
2. W pliku enc28j60.c dopisałem obsługę mojego uC (z dopiskiem ...PA):
Kod:
#if defined(__AVR_ATmega88__) || defined(__AVR_ATmega88P__) || defined(__AVR_ATmega88PA__) || defined(__AVR_ATmega168__) || defined(__AVR_ATmega168P__) || defined(__AVR_ATmega328P__)
aby działal z moim mikrokontrolerem.
3. W enc28j60.c odkomentowałem:
Kod:
#define F_CPU 12500000UL
gdyż korzystam z zewnętrznego zegara własnie o takim taktowaniu.

Kupię ten kwarc 20MHz i zobaczę czy coś się zmieni. Zastanawiam się czy moduł nie jest uszkodzony, ale trudno mi jest to stwierdzić. Diody w RJ45 reagują, dioda zasilania się świeci, gdy podłączę ~RESET do GND to układ się resetuje - na routerze dioda sygnalizująca połączenie kablem gaśnie (brak połączenia).

Cytuj:
Okazało się, że źle podłączam moduł.
Co robiłeś źle? Być może też mam złe podłączenie, a właściwie chciałbym, żeby tak było. Wszystko zamieściłem na schemacie, który znajduje się w pierwszym poście.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 paź 2013, o 08:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 paź 2011
Posty: 581
Pomógł: 17

Ja też myślałem, że moduł uszkodzony, i wysłałem jednemu użytkownikowi forum, żeby go przetestował.
Okazało się, że jest sprawny.
Jak chcesz możesz mi go wysłac i sprawdzę czy jest OK/

Źle podłączałem, bo podłączałem do gniazda Kanda na ATB i trochę syganały mi się tam pomyliły.
Potem podpiąłem bezpośrednio do wyprowadzeń Pinów procka i zaczęło działać

------------------------ [ Dodano po: kilkunastu sekundach ]

Podaj może dokładnie gdzie podłączasz te sygnały.
ENC - SI, CS, INT, SO, SCK
Do jakich pinów procka i napisz jaką masz obudowę.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 paź 2013, o 13:34 
Offline
Nowy

Dołączył(a): 03 paź 2013
Posty: 3
Pomógł: 0

Układ działa :-) Problem był z mojej winy i zupełnie gdzie indziej.

GwynBleidD masz oczywiście rację. Lepiej takie wartości ustawić w jednym miejscu dla całego projektu. Dodałem odpowiednie flagi kompilatora.
Dodałem zewnętrzny kwarc 20MHz i działa dobrze, ale dla 12.5MHz z CLKout pociagniętego z ENC28J60 też działa.
Układ działa zarówno z buforem 74hc125 jak i bez niego.

Gdzie był problem?
Otóż programuję mój układ przez USBasp. Mam taką fajną płytkę do której można włożyć uC, albo poprowadzić do niej kabelki. USBasp mam podłączony do tej płytki, ATmege mam włożoną w osobnej płytce stykowej i odpowiednie przewody (SCK, MOSI, MISO, RST) poprowadzone to tej "programming board". Zwykle wystarczyło moje układy zasilać z USB, jednak w tym przypadku byłem zmuszony do podpięcia zewnętrznego zasilania do płytki stykowej, na programatorze odłączyłem zworkę zasilania. Zauważyłem, że układ da się dopiero zaprogramować w momencie, gdy programator i uC mają wspólną masę, więc te także połączyłem. Podczas działania układu odłączałem wtyki MOSI, MISO, SCK, które poprowadzone są do programatora, gdyż z tych pinów także korzysta ENC28J60 i nie chciałem, żeby jakoś kolidowało. Problem w tym, że do programatora podłączony był stale GND i RST co powodowało, że w momencie, gdy programator był dołączony, albo po prostu nie pracował na resecie mojego uC ciągle wymuszany był stan niski, czyli reset uC :roll: Zauważyłem to, gdy odłączałem przypadkiem reset, mrugnęła zielona dioda w gnieździe RJ45, która powinna cały czas świecić. Wtedy było dla mnie wszystko jasne.

Bardzo dziękuję Wam za pomoc w próbie znalezienia problemu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2013, o 00:18 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27361
Lokalizacja: Szczecin
Pomógł: 1042

GwynBleidD napisał(a):
Zaprojektuj sobie płytkę z gniazdem ISP i podłączaj do niego programator. Wszak ISP - In System Programming, czyli programowanie w układzie docelowym!


Dokładnie bo:

Patman napisał(a):
Mam taką fajną płytkę do której można włożyć uC, albo poprowadzić do niej kabelki.


to nie jest niestety żadna fajna płytka, tylko jak potwierdza ten wątek ... zresztą co się dziwić :( .. jest to wręcz cofnięcie się o 10-15 lat wstecz (chodzi o korzystanie z takich płytek) gdy nie było takich możliwości jak ISP. Więc te oferty takich dziwolągowatch programatorów z taflami podstawek to niestety nieporozumienie genetyczno-cyfrowe. Bo sam programator jest oczywiście ok.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 kwi 2014, o 19:13 
Offline
Nowy

Dołączył(a): 20 mar 2014
Posty: 3
Pomógł: 0

Witam,

chciałbym odświeżyć trochę temat, ponieważ od 3 dni próbuję uruchomić serwer HTTP na mikrokontrolerze, ale nie poczyniłem żadnych postępów. Zmiana taktowania procesora na 20 MHz nie pomogła (układ nadal jest niewykrywany przez router). Podłączyłem go tak jak na schemacie użytkownika Patman, mam ten sam moduł ethernetowy. Moje pytanie jest następujące: czy w kodzie z Bluebooka konieczne są jakieś modyfikacje dla ATmegi88 (wydaje mi się, że powinno działać bez modyfikacji)?

Dla pewności, piny z modułu podpiąłem do mikrokontrolera w następujący sposób:
SO ->PB4 (MISO/PCINT4)
SI -> PB3 (MOSI/OC2A/PCINT3)
SCK -> PB5 (SCK/PCINT5)
CS -> PB2 (SS/OC1B/PCINT2)
INT -> (PCINT20/XCK/T0) PD4
RST -> Przez rezystor 10k do 3.3 V

Moduł zasilam 3.3 V, mikrokontroler 5.0 V.

Diody na module - zielona świeci cały czas, pomarańczowa co jakiś czas mruga. Na routerze kontrolka portu świeci się (czyli coś widzi), ale router w ogóle nie dostrzega urządzenia z nadanym IP.

Będę bardzo wdzięczny za jakąkolwiek pomoc.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 kwi 2014, o 19:37 
Offline
Nowy

Dołączył(a): 20 mar 2014
Posty: 3
Pomógł: 0

Ok, działa.

Ale zanim zobaczyłem upragnione "Witaj ! twój serwer www działa znakomicie", pomęczyłem się trochę z ATmega88, a że nie dawało to żadnego rezultatu - kupiłem ATmega32, mając nadzieję, że zadziała ona od ręki. I tak, ustawiłem taktowanie z zewnętrznego rezonatora kwarcowego 20 MHz, wgrałem kod, podłączyłem, najpierw z użyciem bufora, wszystko co trzeba podłączyć, i uruchomiłem. No i nic. Próbuję raz, drugi, trzeci... Nic... No to odłączam i podłączam wszystko od nowa i... nic. No i tak męczyłem się kilka godzin, sprawdzałem komunikację SPI, ciągłość połączeń, wszystko było ok.

Aż tu nagle! Po wpisaniu do przeglądarki ip mikrokontrolera jest! Działa! :) Nie mam pojęcia dlaczego :P (może wcześniej gdzieś robiłem cały czas błąd przy podłączaniu? - nie wiem...)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 kwi 2014, o 21:51 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27361
Lokalizacja: Szczecin
Pomógł: 1042

no tak to bywa czasem - ale jak już zaskoczy to później zawsze daje się uruchamiać ładnie i o to chodzi ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sty 2015, o 12:14 
Offline
Nowy

Dołączył(a): 15 lis 2013
Posty: 12
Pomógł: 0

Witam wszystkich!

Obecnie mam podobny problem z kartą sieciową zakupioną w sklepie Atnel podłączoną bezpośrednio do ATM644PA pracującego na częstotliwości 12MHz. Układ w ogóle nie odpowiada na pingi, pomimo tego, że w pliku enc28j60.c zdefiniowałem swoją ATM644PA, a układ zasilany jest z programatora (5V) poprzez złącze kanda w karcie sieciowej.

Problem jest o tyle dziwny, że jak wymienię mikro kontroler na ATM32 układ działa bez zarzutu, nawet przez wiele dni.
Szukałem w necie, ale nic za bardzo nie znalazłem.

Jak ktoś będzie w stanie mi pomóc, to będę wdzięczny:)

Pozdrawiam!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO