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

[Bascom] Ethernet i Atmega162 - projekt

19 Gru 2009 22:22 4704 17
  • #1 7411396
    Konto nie istnieje
    Konto nie istnieje  
  • #2 7412135
    wdogli
    Poziom 18  
    Hej
    Też zaczynam zabawę z Ethernetem. Tyle ze postanowiłem że nie będę wydawał niepotrzebnie pieniędzy. Więc kupiłem sobie na allegro starą kartę sieciową ze złączem typu ISA i kontrolerem sieci RTL8019A. za całe 5,0 PLN do tego płyta uruchomieniowa z mikrokontrolerem.
    A tutaj link do bardzo pomocnego dokumentu Link

    A gdybyś się jednak uparł kupować gotowca to może coś takiego Link
    Pozdrawiam
  • #3 7412502
    Konto nie istnieje
    Konto nie istnieje  
  • #4 7412810
    wdogli
    Poziom 18  
    Hej
    Dokładny opis tego układu masz w Elektronice Praktycznej 1/07 w artykule jak mniemam Ethernet i AVR-y. Ethernut od podstaw, część 1 - 7.
    Tutaj możesz sobie je ściągnąć oczywiście jak wyślesz sms. Link
    Co do podziału internetu to ja za pomocą router.
    Pozdrawiam
  • #5 7414343
    sylwunia35
    Poziom 18  
    WITAM
    Ja też zaczynam z Ethernetem i mam pytanko do kolegi (wdogli) jak idzie praca czy karta dobrze się nadaje do tych celów na jakim jesteś etapie.
  • #7 7424745
    wdogli
    Poziom 18  
    Hej.
    Sylwunia35 :arrow: Jeśli chodzi o to do czego chcę wykorzystać kartę sieciową ze sterownikiem RTL8019A to mam zamiar na jej bazie wykonać mini serwer na którym będzie zamieszczona strona www pokazująca wyniki pomiarów temperatury i ciśnienia atmosferycznego. Tego typu projektów w sieci jest dość sporo.
    Jeśli chodzi o część sprzętową. To jak na razie wykonałem układ łączący kartę sieciową oraz Atmegę32.
    Poza tym napisałem kawałek kodu który ma za zadanie wstępnie skonfigurować kontroler sieci.
    W obecnej chwili staram się przegryźć przez implementację protokołu TCP/IP.
    Niestety ze względu na ograniczenia czasowe idzie mi to dość opornie. Liczę na to że po sylwestrze będę miał pierwsze wyniki.
    Pozdrawiam
  • #8 7425439
    sylwunia35
    Poziom 18  
    Dzięki za odpowiedz właśnie ja również o takim układzie myślę. Czy taką kartę trzeba wcześniej jakoś skonfigurować pytam bo czytam projekt z EP5/2002 AVT-5062 i tam jest projekt właśnie wykorzystujący kontroler RTL8019 i tam pisze że trzeba wprowadzić kartę w bezzworkowy tryb pracy i ustawić adres na 300H. Pytam o to bo jeszcze jestem zielony w tych sprawach. Ja do analizy kodu i stosu jako przykład używam AVT-5166 tylko tam jest moduł NM7010A firmy Wiznet.
    Serdecznie pozdrawiam i życzę WESOŁYCH ŚWIĄT.
  • #9 7425552
    wdogli
    Poziom 18  
    Hej.
    Tak jak pisałem wyżej. Najpierw trzeba wstępnie skonfigurować w/w kartę a co za tym idzie skonfigurować właśnie kontroler RTL8019A. Jeśli chcesz dokładnie wiedzieć co i w jakiej kolejności trzeba zrobić wszystko masz opisane w dokumencie do którego dałem link kilka postów wyżej. Masz tam zarówno konfigurację i implementację całego protokołu TCP/IP opisy poszczególnych nagłówków i tak dalej. Warto się z nim zapoznać. Nie wiem w czym piszesz program do Atmegi ale ja piszę w C i dla mnie jest on idealny.
    Poniżej kilka zdjęć mojego mikro serwera :)

    [Bascom] Ethernet i Atmega162 - projekt [Bascom] Ethernet i Atmega162 - projekt [Bascom] Ethernet i Atmega162 - projekt [Bascom] Ethernet i Atmega162 - projekt [Bascom] Ethernet i Atmega162 - projekt
    [Bascom] Ethernet i Atmega162 - projekt [Bascom] Ethernet i Atmega162 - projekt [Bascom] Ethernet i Atmega162 - projekt [Bascom] Ethernet i Atmega162 - projekt
    Pozdrawiam i Wesołych Świąt i Szczęśliwego Nowego Roku :)
  • #12 7788477
    Konto nie istnieje
    Konto nie istnieje  
  • #13 7789129
    wdogli
    Poziom 18  
    Myślę że to nie o to tu chodzi :)
    Może zacznij od prostszych rzeczy na przykład skorzystaj z protokołu ARP i zapytaj mikrokontrolerem kompa jaki jest numer Mac karty sieciowej zamontowanej w nim.
  • #14 7789322
    Konto nie istnieje
    Konto nie istnieje  
  • #16 7790002
    Konto nie istnieje
    Konto nie istnieje  
  • #17 7790044
    wdogli
    Poziom 18  
    trzeba przeprowadzić tak zwaną inicjalizację w C wygląda ona tak




    void rtl_init (void)
    {
     rtl_config_ports();                      // konfiguracja linii komunikacyjnych 
     rtl_reset();                             // reset RTL8019A 
     rtl_write(RSTPORT, 0x00);                // wpisz wartość 0 do komurki Reset Port
     dlms(30);                                // czekaj 30 milisekundy
     rtl_write(CR, 0x41);                     // wybieram pierwszą stronę rejestru 
     dlms(2);                                 // czekaj 2 milisekundy
     rtl_write(CURR, RXSTART_INIT);           // ustaw suwak bufora odbioru na zero czyli środek 0x46
     rtl_write(PAR0+0, MAC0);                 // zapis adresu MAC=>.0x23
     rtl_write(PAR0+1, MAC1);                 // zapis adresu MAC=>.0x24
     rtl_write(PAR0+2, MAC2);                 // zapis adresu MAC=>.0xDD
     rtl_write(PAR0+3, MAC3);                 // zapis adresu MAC=>.0xFC
     rtl_write(PAR0+4, MAC4);                 // zapis adresu MAC=>.0x1B
     rtl_write(PAR0+5, MAC5);                 // zapis adresu MAC=>.0x00
     
     rtl_write(CR, 0x21);                     // zerowa strona rejestru
     dlms(2);                                 // czekaj na ustalenie
     rtl_write(DCR, 0x58);                    // ## ustawiam 8 byte szynę danych ##
     rtl_write(RCR, 0x04);                    // akceptuj pakiety: rozgłoszeniowe, z MAC adresem 
     rtl_write(TCR, 0x02);                    // ustaw kontroler w tryb testowy
     rtl_write(RBCR0, 0x00);                  // zerowanie rejestrów określających długość danych do wysłania
     rtl_write(RBCR1, 0x00);                  // zerowanie rejestrów określających długość danych do wysłania
     rtl_write(TPSR, TXSTART_INIT);           // ustawiany jest początkowy adres bufora do wysyłania danych
     rtl_write(PSTART, RXSTART_INIT);         // ustawiany jest początkowy adres bufora do odbioru danych
     rtl_write(BNRY, RXSTART_INIT);           // ustawiana jest początkowa wartość wskaźnika odczytu danych,
     rtl_write(PSTOP, RXSTOP_INIT);           // ustawiany jest końcowy adres bufora odbioru danych,
     rtl_write(ISR, 0xFF);                    // zerowanie przerwań,
     rtl_write(IMR, 0x11);                    // zezwolenie na przerwanie od pakietu przychodzącego
     rtl_write(TCR, 0x00);                    // normalny tryb wysyłania, generowana jest suma kontrolna ramki oraz dodawane są początkowe bity synchronizacyjne
     rtl_write(CR, 0x22);                     // uruchomienie kontrolera sieci RTL8019AS, konfiguracja jest zakończona,
    }
  • #18 7790167
    Konto nie istnieje
    Konto nie istnieje  
REKLAMA