Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Moduł łączności Ethernet ENC424J600 (czyli taki lepszy ENC28J60)

p.kaczmarek2 01 Gru 2019 01:32 1419 6
  • Moduł łączności Ethernet ENC424J600 (czyli taki lepszy ENC28J60)
    Witajcie moi drodzy
    Dziś przedstawię moją płytkę-moduł łączności Ethernet opartą na układzie scalonym ENC424J600 wykonaną głównie w technologii SMD. Całość uruchomię i przetestuję z PIC18LF2550, używając protokołu SPI i środowiska mikroC PRO for PIC.

    Motywacja projektu
    Układem scalonym ENC424J600 zainteresowałem się, ponieważ stanowi on lepszą wersję szeroko znanego ENC28J60. Przede wszystkim posiada on o wiele więcej pamięci RAM, co pozwala na wysłanie większych pakietów (bądź ich większej ilości).
    Dokładniejsze porównanie ich parametrów zamieszczam poniżej:
    ENC28J60
    Moduł łączności Ethernet ENC424J600 (czyli taki lepszy ENC28J60)
    Parametry:
    Moduł łączności Ethernet ENC424J600 (czyli taki lepszy ENC28J60)
    ENC424J600
    Moduł łączności Ethernet ENC424J600 (czyli taki lepszy ENC28J60)
    Parametry:
    Moduł łączności Ethernet ENC424J600 (czyli taki lepszy ENC28J60)
    Porównując, w skrócie to oba układy są zasilane z 3.3V, ale ENC28J60 ma tylko 8KB RAM, ENC424J600 ma go aż 24KB.
    ENC424J600 dodatkowo (oprócz SPI) wspiera port PSP (Parallel Slave Port).
    Wszystko odnośnie ENC424J600 wygląda zachęcająco, zasadniczo ten układ ma tylko jedną wadę, która może odstraszać początkujących, a mianowicie nie występuje w obudowie DIP tak jak ENC28J60. Więc jeśli chcemy sami stworzyć z nim płytkę, to musimy być gotowi na lutowanie TQFP.
    Obu układów (ENC424J600 i ENC28J60) można łatwo użyć z większością mikroprocesorów, też oczywiście z AVR i Arduino.

    Dodatkową motywacją projektu był fakt, że nie za bardzo widziałem w sieci takie płytki w sprzedaży, a jak już, to bardzo drogie.
    Przykładowo:
    Moduł łączności Ethernet ENC424J600 (czyli taki lepszy ENC28J60)
    To ponad 100 złotych! A sam układ scalony jest o wiele tańszy:
    Moduł łączności Ethernet ENC424J600 (czyli taki lepszy ENC28J60)
    Więc finansowo to DIY też się opłaca, a przynajmniej opłacało się w momencie, gdy zacząłem projektować PCB (a troszkę czasu od tego momentu minęło).

    Projekt PCB
    Płytkę zaprojektowałem przede wszystkim w montażu powierzchniowym (SMD), jedynie złącze Ethernet (JXD0-0006NL od Pulse) i goldpiny są przewlekane. Projekt PCB bazowałem na podobnym układzie od DangerousPrototypes, ale moja wersja jest nieco łatwiejsza do zlutowania, ma przede wszystkim elementy SMD w obudowach 0805 (w przeciwieństwie do nieco mniejszych 0603) i używa tego złącza JXD0-0006NL Magjack, które akurat miałem jeszcze po poprzednim projekcie.
    Moduł łączności Ethernet ENC424J600 (czyli taki lepszy ENC28J60)
    Przy projektowaniu wziąłem pod uwagę to, że często brakuje mi dodatkowych pinów VDD/GND i umieściłem je na wolnej przestrzeni PCB.

    Wykonanie
    Finalnie płytka miała wymiary jakieś 46mm na 67mm, a producent PCB, u którego zamawiam, przyjmuje w tej samej cenie panele do 100mm na 100mm, więc aż prosiło się, by wykonać z niej panel. Oto dwa razy to samo PCB na jednym panelu:
    Moduł łączności Ethernet ENC424J600 (czyli taki lepszy ENC28J60)

    Akurat chyba była jakaś promocja, że można wybrać kolor PCB, więc wybrałem kolor żółty i po paru tygodniach (ekonomiczna przesyłka) otrzymałem wykonane płytki:
    Moduł łączności Ethernet ENC424J600 (czyli taki lepszy ENC28J60)
    Moduł łączności Ethernet ENC424J600 (czyli taki lepszy ENC28J60)
    Moduł łączności Ethernet ENC424J600 (czyli taki lepszy ENC28J60)
    Całość (łącznie z ENC424J600 w obudowie TQFP44) zlutowałem z pomocą mojego starego zestawu chińska lutownica grotowa+szpulka cienkiej nitki spoiwa+pasta:
    Moduł łączności Ethernet ENC424J600 (czyli taki lepszy ENC28J60)
    Stąd też słaba jakość lutów. Ale grunt, że działa.

    Niestety nie miałem pod ręką dwóch elementów, a mianowicie:
    - L1 - ferrite bead dla filtrowania zasilania 3.3V - zastąpiłem go zworką
    - Q2 - rezonatora kwarcowego 25MHz w obudowie do SMD - ale miałem THT, i takim go zastąpiłem.
    Pozostałe elementy dałem takie jakie trzeba.

    Całość po zlutowaniu:
    Moduł łączności Ethernet ENC424J600 (czyli taki lepszy ENC28J60)
    Na PCB widnieje data 2018, ponieważ w 2018 ją projektowałem. Troszkę się jej lutowanie przedłużyło.

    Testy modułu
    Moduł testowałem w połączeniu z PIC18LF2550 na zasilaniu 3.3V. Do PICa użyłem rezonatora kwarcowego 20MHz i z pomocą PLL ustawiłem jego taktowanie na 40MHz, zgodnie z zaleceniem dokumentacji MikroC:
    Moduł łączności Ethernet ENC424J600 (czyli taki lepszy ENC28J60)
    (Aczkolwiek jak potem testowałem na 20MHz to też działało).
    Od mojej płytki z ENC424J600 podłączyłem tylko piny:
    - VDD - zasilanie
    - GND - masa
    - MOSI - wejście od SPI
    - MISO - wyjście od SPI
    - CLK - zegar od SPI
    - CS - Chip Select od SPI (wybrałem pin RB2)
    Pin INT od ENC424J600, który pozwala na wybór pomiędzy PSP a SPI, był podłączony przez rezystor 100k do VDD już na samej płytce.
    Czyli tak jak w nocie katalogowej ENC424J600 (wersja SPI Selected, za wyjątkiem tego, że do PICa nie podłączałem INT):
    Moduł łączności Ethernet ENC424J600 (czyli taki lepszy ENC28J60)
    Do programowania PICa użyłem mojego klona PICKIT2.
    Tak wyglądała całość w trakcie testowania:
    Moduł łączności Ethernet ENC424J600 (czyli taki lepszy ENC28J60)
    Zdjęcie powyżej przedstawia mój klon programatora PICKIT2 podłączony przez USB do komputera, płytkę stykową z PIC18LF2550 (zasilany z 3.3V z programatora, on na płytce ma TC1264), dodatkowe złącze mikro USB (nieużywane!), i główny obiekt tematu - płytkę ENC424J600. Do tej płytki podłączony jest przewód Ethernet, który idzie do mojego routera.

    Od strony software użyłem gotowych bibliotek od MikroC PRO for PIC do sterowania ENC424J600 przez I2C i sporządziłem prosty, testowy kod na bazie przykładów stąd:
    https://download.mikroe.com/documents/compile...kroc/pic/help/spi_ethernet_24j600_library.htm
    Całość uprościłem do minimum oraz dodałem niezbędne rzeczy dla PIC18F2550 (tj. wyłączenie komparatorów, bez tego całość nie zadziałała).
    Wszystko ruszyło z miejsca.
    Testowy kod wyświetla najprostsza stronę (właściwie: jeden napis) pod adresem IP 192.168.0.60:
    Moduł łączności Ethernet ENC424J600 (czyli taki lepszy ENC28J60)
    Co prawda, nie ma tu dużej interakcji z użytkownikiem, ale całość pokazuje, że płytka niewątpliwie działa.

    Załączniki
    Dla zainteresowanych tematem bądź chcących odwzorować moją konstrukcję załączam tu następujące pliki:
    - datasheet ENC28J60
    ENC28J..pdf Download (1.24 MB)
    - datasheet ENC424J600
    ENC424J...pdf Download (2.38 MB)
    - datasheet PIC18F2550
    PIC18F2...pdf Download (6.96 MB)
    - gerbery PCB (panel dwóch płytek), których użyłem przy zleceniu fabryce płytek
    ENC424J600...nel_v2.zip Download (280.06 kB)Punkty: 3 dla użytkownika
    - schemat w pdf
    ENC424J600...gle_17.pdf Download (44.56 kB)Punkty: 1 dla użytkownika
    - źródła Eagle PCB
    ENC424J600...gle_17.zip Download (85.06 kB)Punkty: 3 dla użytkownika
    - uproszczony, minimalny projekt dla PIC18LF2550 skonfigurowanego z oscylatorem 20MHz (z PLL do 40MHz), z wyłączonymi komparatorami (bez tego płytka nie ruszy), wraz ze skompilowanym hex
    PIC18F2550...24J600.zip Download (124 kB)Punkty: 0.5 dla użytkownika
    Ten hex w załączniku też się pewnie nada dla PIC18F2550 - z tego co wiem to od strony wsadu nie ma różnicy między PIC18LF2550 a PIC18F2550.

    Podsumowanie
    Płytka wyszła całkiem sprawnie. Nie jest aż taka trudna do zlutowania jak się wydaje. Mogłaby być nieco mniejsza, ale nie miałem tego w założeniach, więc w takiej formie jest dla mnie idealna. Będzie służyć jako pole do eksperymentów z ENC424J600, również w przyszłości spróbuję skomunikować się z nią przez interfejs PSP. Mam już w planach kilka zastosowań dla niej. W najbliższym czasie planuję również zrobić praktyczne porównanie jej z ENC28J60 (tzn. pod kątem rozmiaru bufora TX/RX, jakie daje możliwości) i być może je też wrzucę na forum.

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
  • #3
    p.kaczmarek2
    Poziom 24  
    W5500, ciekawa propozycja, dodam ten moduł do mojej listy części które chcę przetestować z PICami.
    ENC424J600 wybrałem m. in. ze względu na to, że oferuje też interfejs PSP, który ma wiele PICów:
    Moduł łączności Ethernet ENC424J600 (czyli taki lepszy ENC28J60)
    Na razie płytkę przetestowałem tylko z SPI ale jestem ciekawy jak sprawdzi się ona przy użyciu PSP. Może też wtedy uda mi się zrobić jakieś sensowne porównanie obu rozwiązań.
  • #4
    szymon122
    Poziom 38  
    p.kaczmarek2 napisał:
    Może też wtedy uda mi się zrobić jakieś sensowne porównanie obu rozwiązań.

    Jakie są zalety i wady tego interfejsu? Rozumiem, że zwiększa prędkość transmisji, ale czy tylko?
  • #5
    p.kaczmarek2
    Poziom 24  
    szymon122 napisał:
    p.kaczmarek2 napisał:
    Może też wtedy uda mi się zrobić jakieś sensowne porównanie obu rozwiązań.

    Jakie są zalety i wady tego interfejsu? Rozumiem, że zwiększa prędkość transmisji, ale czy tylko?


    Tego jakie są szczegółowo wady i zalety PSP to ja się sam z chęcią dowiem i być może podzielę się z Wami w kolejnym moim DIY. :D
    Chociaż tu też można się łatwo powołać na notę katalogową samego ENC424J600, przykładowo ten fragment:
    Moduł łączności Ethernet ENC424J600 (czyli taki lepszy ENC28J60)

    A dla zainteresowanych dodam, że nieco dalej w kolejce mam ogarnięcie układu pokroju LAN8710A - on ma z kolei interfejs MII/RMII i zamierzam go użyć wraz z PIC32MZ.
    Moduł łączności Ethernet ENC424J600 (czyli taki lepszy ENC28J60)
  • #6
    Piottr242
    Poziom 21  
    p.kaczmarek2 napisał:
    Akurat chyba była jakaś promocja, że można wybrać kolor PCB, więc wybrałem kolor żółty i po paru tygodniach (ekonomiczna przesyłka) otrzymałem wykonane płytki:

    Fajny, ciekawy projekt. A ja mam jedno, może trochę przyziemne pytanie:
    U kogo zamawiałeś płytki i jak w przypadku takiej formatki z dwoma użytkami w jednym module cenowym się wskazuje linię podziału między płytkami do zfrezowania w płytkarni?
  • #7
    p.kaczmarek2
    Poziom 24  
    Piottr242 napisał:
    p.kaczmarek2 napisał:
    Akurat chyba była jakaś promocja, że można wybrać kolor PCB, więc wybrałem kolor żółty i po paru tygodniach (ekonomiczna przesyłka) otrzymałem wykonane płytki:

    Fajny, ciekawy projekt. A ja mam jedno, może trochę przyziemne pytanie:
    U kogo zamawiałeś płytki i jak w przypadku takiej formatki z dwoma użytkami w jednym module cenowym się wskazuje linię podziału między płytkami do zfrezowania w płytkarni?


    Wiesz co, nie pamiętam już dokładnie u kogo ten panel zamawiałem, ogólnie zamawiam u kilka firm typu AllPCB, JLCPCB, SeeedStudio i oni na przemian dają różne ciekawe promocje, np. z rok temu przez jakiś okres był Free Shipping (darmowa dostawa) kurierem DHL do Polski, albo była zniżka 5$ na wszystko, itp.
    Z reguły czekam na tego typu promocję i wtedy składam więcej zamówień.

    Po prostu musisz zapoznać z bieżącą ofertą większości płytkarni i wybrać samemu to co jest najlepsze w tej chwili.

    W przypadku tego panelu po prostu użyłem panelize.ulp z Eagle, tak zrobiłem .brd z panelem i potem wyeksportowałem z niego gerbery. Tylko tyle, bez wskazywania ręcznie niczego. Oni w fabryce już wiedzą co dalej zrobić.
    Ale uwaga - przy składaniu zamówienia musisz dokładnie poczytać jakie są standardy wyceniania płytek/panelu, bo niektóre firmy naliczają dodatkowe koszty gdy widzą że dajesz im panel a nie jedną dużą płytkę.

    EDIT: Tak mi się wydaje, że to jednak było z ALLPCB, ale teraz sprawdziłem na ich stronie i widzę że zamiana samego koloru płytki powoduje podrożenie całości o 7$, więc już nie mają tej promocji.