Ethernet do AVR.

Jun 19, 2021 20 Replies

Z tego co pamiętam, na szybko, bez sprawdzania w sieci:

- W5100 ma mniej dostępnych gniazd, bodajże połowę tego, czym dysponuje W5500. Bodajże cztery w przypadku pierwszego, osiem w przypadku drugiego.

- W5100 ma także interfejs równoległy, więc możesz go sonie podpiąć do magistrali systemowej i używać jako urządzenia w przestrzeni adresowej procesora. Fajne rozwiązanie do projektów retro.

- W5500 ma większe piny i jest ich mniej, więc łatwiej się go lutuje. Co nie zmienia faktu, że bez większych problemów używałem W5100 na ręcznie trawionej płytce. ;)

Moim zdaniem bez sensu. Konieczność parsowania komend AT i implementowania komunikacji po interfejsie szeregowym, jakby to był jakiś antyczny modem, to tylko utrapienie. Pamiętam, że gdy pojawiły się moduły ESP8266 początkowo były dostępne właśnie tylko jako urządzenia peryferyjne, z którymi gadało się przez UART i komendy AT. Pamiętam, że zacząłem wtedy pisać parser, który miał umożliwić podpięcie tego do Atmegi. Pierwsze próby były nawet udane, ale zaraz potem Espressif wypuścił SDK i można było pisać kod bezpośrednio na ESP, więc bez najmniejszego żalu porzuciłem ten projekt. ;)

Zależy co chcesz uzyskać. Jak to mają być czysto klienckie operacje, to nawet 4 gniazda są dużą liczbą. Zwłaszcza jeśli się to odpowiednio zaprogramuje. Ja zwykle stosowałem podejście, w którym poszczególne operacje były wykonywane w pętli głównej, co jakiś czas w oparciu o software'owy licznik realizujący pseudowątek. Gdy przychodził czas na wykonanie operacji, program sprawdzał, czy jest dostępne gniazdo - jeśli tak, łączył się i wykonywał operację (a tak naprawdę zaczynał wykonywanie operacji, za którą odpowiadała maszyna stanów, odpalana w tej samej pętli). Jeśli akurat wszystkie gniazda były zajęte przez jakieś inne operacje, zadanie było odkładane na późnej.

Problemy mogą się zacząć, gdy chcesz na tym zrobić serwer udostępniający dane i przychodzące zapytania zużyją dostępny limit gniazd.

Jak chcesz się w to bawić, to jednak postaw na gotowe moduły. W przypadku Ethernetu sposób prowadzeni ścieżek i masy jest ważny. Prawda jest taka, że gdy ja zaczynałem z Ethernetem na AVR-ach też używałem ENC28J60 w DIP-ie i montowałem to na jednostronnej płytce, używając mostków z drutu, a i tak działało stabilnie. Niemniej teraz stosuję już płytki dwustronne, zalewam wszystko masą i daję meandry na liniach różnicowych. Co nie zmienia faktu, że pewnie i tak jest daleko do ideału (zwłaszcza na samodzielnie trawionych płytkach) i badań EMC by to nie przeszło, ale na pewno jest lepiej, niż w przypadku tych pierwszych konstrukcji na elementach THT. Fast Ethernet na płytkach mojej produkcji działa w każdym razie. ;)

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required