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

[ATmega128] Brak inicjalizacji RTL8019AS w kopii MMnet01

Koniu1982 01 Lut 2009 00:19 1701 2
REKLAMA
  • #1 6084489
    Koniu1982
    Poziom 2  
    Witam,
    Po pierwszych pozytywnych wrażeniach z korzystania z gotowych modułów MMnet03 firmy PROPOX postanowiłem zbudować własne urządzenie wykorzystujące NUT/OS.

    Jako że potrzebowałem prostsze rozwiązanie niż MMnet03 swoją konstrukcję oparłem o schemat MMnet01. Po wykonaniu płytek i zmontowaniu urządzenia zaczęły się "schody". Z mniejszymi problemami się uporałem, ale teraz utknąłem na inicjalizacji kontrolera RTL8019AS. Funkcja NutRegisterDevice nie daje oczekiwanych rezultatów.

    
    NutRegisterDevice(&DEV_ETHER, 0, 0)
    


    Kod który sprawdzam na moim urządzeniu to zarówno gotowe binarki dostarczane z modułem MMnet01 jak i moje programy.
    Te same programy skompilowane z bibliotekami dla MMnet03 chodzą na tym module bez zarzutów. Wersja Nut/os - 4.7.3

    W związku z tym mam pytanie czy na schemacie udostępnianych przez producenta tych zestawów nie ma przypadkiem jakiegoś błędu?
    Po porównaniu schematu MMnet01 z Ethernutem 1.3 zauważyłem, że linia danych są podłączone odwrotnie. Tzn. w MMnet01 D0 jest łączone z D0 i analogicznie dalej, natomiast w Ethernucie D7 jest łączone z DQ0 (RAM) i 1D (74HC5730). Czy to może być przyczyną problemów z inicjalizacją RTL'a.

    Proszę o pomysły co mógłbym jeszcze sprawdzić, ew. gdzie szukać przyczyny problemu.

    W załączniku przesyłam fragment mojego schematu.
  • REKLAMA
  • #2 6191445
    Kalvis
    Poziom 13  
    witam. Chyba mam podobny problem. Próbuje zapoznać się z tą platformą korzystając z kursu zamieszczonego w ep i także mam problem z inicjalizacją RTLa. Dysponuje modułem MMnet01 ale do niego nie mam pliku config (jest tylko do mmnet02). W kursie użyli innego modułu i jak porównuje configi to rzeczywiście jest różnica w linijce RTL_BASE_ADDR = "0xC000" - tak jest dla mmnet01
    a tak RTL_BASE_ADDR = "0x8300" dla ethernut13f z kursu. Dodatkowo jest jeszcze linijka RTL_SIGNAL_IRQ = "INT5". Pewnie dlatego nie chce inicjalizować tego urządzenia bo jet inaczej podlączone do procesora.»
  • #3 6195080
    Koniu1982
    Poziom 2  
    Problem został rozwiązany. Pomogła kolejna (chyba już -nasta) kompilacja Nut/Os za pomocą nutconf.exe.

    Poniżej zamieszczam config'a dla klonów mmnet01.

    
    PLATFORM = "MMNET01"
    AVR_GCC = ""
    MCU_ATMEGA128 = ""
    RTL_BASE_ADDR = "0xFF00"
    NUTMEM_START = "0x100"
    NUTMEM_RESERVED = "64"
    NUTXMEM_SIZE = "60928"
    NUTXMEM_START = "0x1100"
    NUT_CPU_FREQ = "16000000"
    


    W razie pytań chętnie pomogę bo szkoda marnować czasu na coś co zostało już rozgryzione.

    Pozdrawiam.
REKLAMA