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

[Ethernut][ATMEGA128] Współpraca z zewnętrzną pamięcią

Skyttop 15 Gru 2009 17:50 2532 6
  • #1 7393135
    Skyttop
    Poziom 11  
    Witam wszystkich Forumowiczów

    Zakupiłem zestaw ZL9AVR z ATmega128 i próbowałem przez długi czas uruchomić Nut/OS na tej płytce. Nie udawało się, ale znalazłem na elektrodzie post, w którym ktoś pisał, że w konfiguratorze Ethernut znalazł opcję wylkuczenia zewnętrznej pamięci 32KB, gdyż nie posiadał takowej i dopiero wtedy wszystko mu zadziałało. W końcu ja też zrobiłem ten patent i u mnie również wszystko zadziałało, problem jednak w tym, że ja mam na płytce ZL9AVR pamięć 32KB. Czy w związku z tym trzeba "zmusić" mikrokontroler do współpracy z tą pamięcią za pomocą FuseBitów? Jeśli tak, to jakich?
  • #2 7424649
    lordadam
    Poziom 10  
    Powinno Ci działać z zaznaczoną pamięcią . Fajne artykuły o ethernucie pisał Tomasz Włostowski na łamach EP . Bodajże tytuł to " Ethernet i Avr-y" . Tu masz link do jego strony:http://wlostowski.ep.com.pl/?p=epmat . Znajdziesz tam skompilowane już biblioteki oraz programy do kursu . Mi na początku sporo one pomogły .
  • #3 7428900
    Skyttop
    Poziom 11  
    Też korzystałem z tego kursu i z tych bibliotek, ale efekt był taki, że nic nie działało. Mógłbyś mi podać swoją konfigurację FuseBitów?
  • #4 7645797
    Przemek_100
    Poziom 11  
    Miałem ten zestaw od kamami i wszystko działa, nalzezy pamietac o:
    1 ustawieniu jumpera na plytce CPU do pracy z ethernutem
    2. wgraniu odpowiedniego pliku konfiguracyjnego z odpowiednio w nim skonfigurowanym obszarze pamieci zewnetrznej
    3 Pewnych problemach z LCD . LCD trzeba skonfigurowac w pliku konfiguracyjnym jako praca bez bitu RW dla szyny 4 bitowej poniewaz ethernut w wersji 4.4.1 ma blad w driverze i jesli sie poda ten bit to nie bedzie dzialac.
    Takze jesli wezmiemy przyklad z EP obslugi tego wyswietlaczanie nie bedzie dzialac dla wersji 4.4.1 poniewaz opoznienie wyswietlacza jest realizowane poprzez taka petle i w nowszych wersjach kopilator ja optymalizuje uwazajac ze skoro skacze sama na siebieto jej nie ma :), trzeba wstawic tam (a=0;for a<250.a++) _NOP(); i po problemie.

    Bawie sie tym ethernutem od jakiegos czasu swietny system.

    Dodano po 1 [minuty]:

    A i jeszcze jak pamietam trzeba jumperem zalozyc przerwanie od INT5 dla ralteka
  • #5 7646234
    Skyttop
    Poziom 11  
    Problem już jakiś czas temu rozwiązałem, ale nie do końca. Tzn. nie wiem, czy na pewno jest to dobre rozwiązanie. Po skompilowaniu systemu bez obsługi zewnętrznej pamięci nie można było uruchomić kontrolera Ethernet, ale spróbowałem jeszcze raz skompilować system (za pomocą konfiguratora graficznego) ustawiając zewnętrzną pamięć na 65536 (64*1024), tak zupełnie przypadkowo - i kontroler się w końcu odezwał, działa nawet komunikacja przez RS232. Nie wiem czemu, skoro pamięci mam 2 razy mniej. Ale próbowałem ustawiać 32768 i to nic nie dało. Próbowałem ustawiać większe wartości od 32768 ale nieco mniejsze od 65536 i to również nie zadziałało. Dopiero ta wartość 65536 pomogła. Załadowałem co prawda program z przykładowym serwerem http, podłączyłem kabel sieciowy i komputer wykrył sieć, lecz na razie nie udało mi się wyświetlić strony. Może wina kabla? Mam skrosowany, może potrzebny prosty (którego na razie nie mam).
  • #6 7685390
    Przemek_100
    Poziom 11  
    Nie mogles uruchomic ethernetu bez zewnetrznej pamieci i slusznie. Ethernet lezy w obszarze zewnetrznej pamieci o ile pamietam 0x8300 dla plytki kamami. wpisane przez ciebie wartosci sa zle bo dla tego zestawu nie masz tyle ramu (tam chyba jest 32 kb). Uzyj konfiguratora graficznego zaladuj plik ethernut13f wejdz do sekcji RTOS kernel->Memory management i zobacz co tam jest [extendent memory size 28416], extendent memory start 0x1100 dziesietnie 4352, czyli poprzednie 28416 + 4352 = 32768 ! czyli cala kostka jaka masz ramu :), tak skonfigurowany obsza jest dla tej plytki. Ethernet jest powyzej tego obszaru luknij w schemat. zobacz takze sekcje konfiguratora Architektóre->AVR->RTL8019AS Driver tam powinienes miec 0x8300 adres ethernata oraz przerwanie INT5, dlatego musi byc odpowiednia zwora na plycie ustawiona.


    Obecnie zrobilem radio internetowe na tym systemie i biega super :)
  • #7 7698959
    Skyttop
    Poziom 11  
    Do tego wszystkiego już doszedłem, przeglądając dokumentację na stronie www.ethernut.de. Problem był całkowicie w innym miejscu. Najnowsze biblioteki ethernuta nie współpracują prawidłowo z najnowszym kompilatorem avr-gcc, po kompilacji wychodzą bzdury. Proszę porównać sobie mój inny post: https://www.elektroda.pl/rtvforum/topic1569343.html#7660527#7660527
REKLAMA