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

Wybór modułu Ethernet do AVR - PmodNIC, NM7010A czy ZL1ETH? Opinie i C.

jaros85 12 Wrz 2011 22:16 5445 15
REKLAMA
  • #1 9921270
    jaros85
    Poziom 20  
    Posty: 559
    Pomógł: 6
    Ocena: 37
    Witam
    Chciałbym stworzyć prosty serwer DHCP oparty o jakiegoś AVR-ka.
    Zastanawiam się nad wyborem modułu Ethernet.

    Znalazłem w internecie coś takiego
    PmodNIC
    NM7010A
    ZL1ETH

    Mnie osobiście najbardziej pasuje ten pierwszy moduł ma magistralę SPI.
    Czy ktoś oprogramowywał jeden z tych modułów :?:
    Jak to wygląda od strony programowania w języku C :?:

    Proszę o jakieś opinie.
  • REKLAMA
  • #2 9921596
    tmf
    VIP Zasłużony dla elektroda
    Posty: 14318
    Pomógł: 2090
    Ocena: 2206
    Wybór dobry, też bym wybrał pierwszy, ten ostatni na stareńkim RTLu to nezły zabytek.
    Co do programowania, są gotowce - google: ENC28J60 avr.
    Oczywiście po stosie TCP/IP na AVR nie ma się co za wiele spodziewać.
  • #3 9924413
    jaros85
    Poziom 20  
    Posty: 559
    Pomógł: 6
    Ocena: 37
    A jakim zegarem musi być taktowany uC żeby to wszystko płynnie funkcjonowało :?:
  • #4 9924438
    michalko12
    Specjalista - Mikrokontrolery
    Posty: 3394
    Pomógł: 462
    Ocena: 321
    W jaki celu zadałeś to pytanie? Chcesz oszczędzać na MHz? Przyjmij że 12MHZ to minimum, a im więcej tym lepiej z uwagą na maksymalna prędkość na SPI.
  • REKLAMA
  • #5 9924527
    Konto nie istnieje
    Konto nie istnieje  
  • #6 9924610
    jaros85
    Poziom 20  
    Posty: 559
    Pomógł: 6
    Ocena: 37
    michalko12 napisał:
    W jaki celu zadałeś to pytanie? Chcesz oszczędzać na MHz? Przyjmij że 12MHZ to minimum, a im więcej tym lepiej z uwagą na maksymalna prędkość na SPI.

    Mam ATmega8 i zastanawiam się czy się nada ale chyba jest za słaby jeżeli chodzi o ilość RAM.

    Planowałem samemu zrobić moduł LAN na ENC28J60.
    Jak wygląda połączenie transformatorów w gnieździe LAN bo widziałem że jest kilka gniazd z różnymi połączeniami tych transformatorów :?:
  • REKLAMA
  • Pomocny post
    #7 9924640
    Konto nie istnieje
    Konto nie istnieje  
  • #8 9927568
    jaros85
    Poziom 20  
    Posty: 559
    Pomógł: 6
    Ocena: 37
    Mam jeszcze jedno pytanie czy ten układ ENC28J60 można przełączyć w tryb promiscuous aby odbierać cały ruch z sieci :?:
  • #9 9928374
    michalko12
    Specjalista - Mikrokontrolery
    Posty: 3394
    Pomógł: 462
    Ocena: 321
    Można, ale jeśli sieć jest na switchach to całego ruchu nie odbierzesz. Po drugie ten kontroler nie ma za dużo pamięci, więc nie wszystkie pakiety mogą dać się zbuforować przy wiekszym obciażeniu sieci.
  • #10 9931124
    jaros85
    Poziom 20  
    Posty: 559
    Pomógł: 6
    Ocena: 37
    Wiem że do przechwytywania pakietów z sieci potrzebny w sieci jest hub albo zarządzalny switch w którym można ustawić pracę portu aby kierowała cały ruch do nas.
    Osobiście wydaje mi się że ten mój mini serwer mógł obsługiwać ruch z max 10 komputerów.
  • #11 9931944
    upanie
    Poziom 22  
    Posty: 434
    Pomógł: 33
    Ocena: 7
    A cóż za ruch sobie poobserwujesz na ATmega8?
    Ten procek mam mniej pamięci niż wielkość dużej części ramek w necie.
  • #12 9931975
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    upanie napisał:
    A cóż za ruch sobie poobserwujesz na ATmega8?
    Ten procek mam mniej pamięci niż wielkość dużej części ramek w necie.


    Powiem nawet więcej, ten procek posiada nawet dużo mniej pamięci RAM bo tylko 1/8 tej, którą ma do dyspozycji sam ENC. Zatem pomysły o obserwowaniu całego ruchu w sieci odpadną nawet na dużo większych procesorach AVR. Tu już trzeba byłoby się pokusić o jakiegoś ARM'a, który zresztą można znaleźć zdaje się od razu z wbudowaną obsługą stosu i ethernetu. Gdzie pamięci RAM przede wszystkim byłoby pod dostatkiem.
  • #13 9932371
    tmf
    VIP Zasłużony dla elektroda
    Posty: 14318
    Pomógł: 2090
    Ocena: 2206
    Dokładnie tak jak pisze Mirek - problemem nie jest prędkość AVR, lecz ilość dostępnej pamięci RAM. To wymusza wszystko inne, m.in. kulawy stos TCP/IP. Pomysł aby nasłuchiwać ruch w sieci jest kiepski, nie tylko AVR, ale nawet ten układ się nie wyrobi - co wynika z ograniczeń interfejsu SPI. Znaczy układ odbierze i się zapcha, bo żaden procesor nie nadąży ściągać z ENC dane.
    Kolejna sprawa - przy switchu też da się nasłuchiwać całą sieć - trzeba mu tylko zatruć tabelę arp, wtedy się przełączy w tryb huba. Oczywiście sens tego jest wątpliwy, bo traci się całą korzyść z posiadania switcha.
  • #14 9934328
    jaros85
    Poziom 20  
    Posty: 559
    Pomógł: 6
    Ocena: 37
    Z ATmegą8 i z trybem promiscuous dajmy sobie spokój bo widzę że to na tym procesorze nie da rady.

    Ale czy ATmega328 obsłuży prosty serwer DHCP bez żadnych udziwnień :?:
  • REKLAMA
  • #15 9934365
    tmf
    VIP Zasłużony dla elektroda
    Posty: 14318
    Pomógł: 2090
    Ocena: 2206
    DHCP to przecież prosta sprawa. Problemem nie są proste protokoły typu DHCP, tftp itd. Problemem może być np. odebranie ramki o maksymalnej długości - jedna taka ramka ci zapcha cały SRAM. A co jeśli na raz będziesz miał nawiązanych kilka połączeń? Tu właśnie są ograniczenia. Pojedyncze ramki łatwo transmitować, ale obsłużyć na raz pare sesji to już przekracza możliwości AVR bez dodatkowej pamięci. Potrzebujesz serwera to kup jakiś dedykowany procesor do tego z dostępnym profesjonalnym stosem TCP, bo te do AVR to tylko zabawki są.
  • #16 9965789
    jaros85
    Poziom 20  
    Posty: 559
    Pomógł: 6
    Ocena: 37
    W nocie katalogowej ENC28J60 wyczytałem że jeżeli chce się połączyć ten układ z uC zasilanym napięciem 5V należy zastosować układ 74ACT125.

    Jakim napięciem mam zasilać te bramki 74ACT125 5V czy 3,3V :?:

Podsumowanie tematu

LABEL_AI_GENERATED
W dyskusji poruszono wybór modułu Ethernet do mikrokontrolera AVR, z naciskiem na PmodNIC, NM7010A oraz ZL1ETH. Użytkownicy wskazali, że PmodNIC, korzystający z magistrali SPI, jest najlepszym wyborem. Podano, że do programowania modułów, takich jak ENC28J60, dostępne są gotowe rozwiązania w języku C, jednak ograniczenia pamięci RAM w mikrokontrolerach AVR, takich jak ATmega8, mogą stanowić problem przy obsłudze protokołów, takich jak DHCP. Użytkownicy zauważyli, że ATmega328 może obsłużyć prosty serwer DHCP, ale z ograniczeniami związanymi z pamięcią. Wskazano również na potrzebę zastosowania układu 74ACT125 do połączenia ENC28J60 z mikrokontrolerem zasilanym napięciem 5V.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA