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 + RTL8019AS: serwer FTP/HTTP, podłączenie, SRAM, rezonator, filtr RJ45

firefox_PL 24 Wrz 2007 19:57 8770 21
REKLAMA
  • #1 4316439
    firefox_PL
    Poziom 17  
    Posty: 235
    Pomógł: 21
    Ocena: 2
    Witam, chcę stworzyć prosty serwer FTP i być może HTTP na ATmega128 z wykorzystaniem RTL8019AS, w związku z tym mam następujące pytania:

    1) Czy RTL8019AS wymaga zewnętrznej pamięci SRAM (ma w końcu wbudowane 16kB)?
    2) Jak najlepiej podłączyć go do ATmega128 (na stronie modułu MMlan2 przykładowe połączenie wykorzystuje mniej pinów niż na stronie projektu Ethernut 1?
    3) Jaki rezonator najlepiej dać do ATmega128 aby najłatwiej było zrealizować komunikację?
    4) Ponieważ układ będzie na większej (dużo większej) płytce prototypowej (jeszcze w trakcie projektowania) do ATmega128, zatem mam pytanie, czy różnice w długościach poszczególnych ścieżek będą miały wpływ na stabilność komunikacji (czy może ATmega128 nie da rady wyciągnąć takiej prędkości transmisji, żeby miało to jakiekolwiek znaczenie)?
    5) Czy filtr pomiędzy RTL8019AS i złączem RJ45 występujący w obu projektach MMlan2 i Ethernut 1, można zastąpić złączem z już wbudowanym filtrem (np. LF1S022)?
    6) Znam trochę assmebler, ale zdecydowanie wolę skupić się na C (CodeVisionAVR, zamierzam zaadaptować uIP-AVR do CodeVisionAVR), dlatego mam pytanie czy problematyczne będzie napisanie softu w C (zależności czasowe i inne możliwe rzeczy), czy w grę wchodzi tylko assembler?

    Póki co to chyba wszystkie pytania, jak coś mi się jeszcze nasunie to na pewno dodam. Z góry dziękuję za wszystkie odpowiedzi.
  • REKLAMA
  • Pomocny post
    #2 4316749
    BoskiDialer
    Poziom 34  
    Posty: 1530
    Pomógł: 353
    Ocena: 42
    ad 1/ Nie, nie wymaga on zewnętrznej pamięci. Wbudowana pamięć wystarcza do buforowania ramek wychodzących i przychodzących. Kontroler może sobie dane z tej pamięci przenosić do dodatkowej pamięci w procesie pobierania pakietów.
    ad 2/ Najlepiej podłączyć pod interfejs zewnętrznej pamięci ram (najlepiej współdzielone z dodatkową pamięcią) - jeśli to ma być serwer ftp lub http, to z pewnością [pkt 4] będzie ci zależało na jak największej prędkości.
    ad 3/ Komunikacja z tym kontrolerem sieciowym jest realizowana w sposób synchronizowany sygnałem odczytu i zapisu. Kontroler może iść z maksymalną dopuszczalną prędkością (atmega128 przy 16MHz)
    ad 4/ Szacuję, że nie powinno być żadnych odczuwalnych różnic i błędów transmisji
    ad 5/ Tak, można zastosować gniazdko z wbudowanym transformatorem separującym. Przykładowy projekt obok mmlan2, to mmnet01, który właśnie ma takie gniazdko
    ad 6/ Prawde powiedziawszy, to stos tcp/ip nie jest krytyczny czasowo, komunikacja z kontrolerem też nie, spokojnie możesz pisać całość w C. Dla przykładu: w moim projekcie jedyne co jest napisane w asemblerze, to funkcja do liczenia sum kontrolnych crc16(silna optymalizacja) i jeszcze jeden moduł, nie znaczący jeśli chodzi o sam stos.
  • REKLAMA
  • Pomocny post
    #3 4316752
    Father
    Poziom 26  
    Posty: 681
    Pomógł: 88
    Ocena: 13
    Ad. 1 Nie, ale zapewne potrzebna będzie pamięć zewn. dla uP
    Ad. 2 Tak jak tu np. http://www.propox.com/products/t_124.html
    Ad. 3 O największej możliwej częstotliwości czyli 16MHz
    Ad. 4 Długości ścieżek nie mają znaczenia
    Ad. 5 Tak, można zastąpić
    Ad. 6 Bez problemu można użyć C, ewentualnie C + assembler
  • #4 4316988
    firefox_PL
    Poziom 17  
    Posty: 235
    Pomógł: 21
    Ocena: 2
    Dzięki bardzo, pomagacze kliknięte :), patrząc na projekt Propoxu chyba jednak dam dodatkową pamięć, jeden układ więcej, a wygląda na to, że może się przydać

    Dodano po 15 [minuty]:

    Mam jeszcze jedno pytanie, tym razem do pamięci AT45DB041 z projektu Propox'u, w datasheet do niej podane jest, że max Vcc to 3.6V, a oni ją zasilają z 5V, jak to rozumieć?
  • #5 4317114
    Father
    Poziom 26  
    Posty: 681
    Pomógł: 88
    Ocena: 13
    Tak, ale AT45DB041 zasilany jest z 5V przez diodę LED, na której spadek napięcia jest rzędu 2V więc na samym układzie napięcie nie przekracza 3.6V
  • #6 4317130
    firefox_PL
    Poziom 17  
    Posty: 235
    Pomógł: 21
    Ocena: 2
    Ok, dzięki za wyjaśnienie

    Dodano po 1 [godziny] 11 [minuty]:

    To mam jeszcze jedno pytanie, skąd wziąć pamięć K6T1008, nie mogę jej nigdzie znaleźć, albo jaką można dać zamiast niej?
  • #8 4318750
    firefox_PL
    Poziom 17  
    Posty: 235
    Pomógł: 21
    Ocena: 2
    hmm... szukałem w TME i tam nie ma pamięci o takiej sygnaturze i tym bardziej nic nie ma pod podanym wyżej linkiem

    Dodano po 52 [sekundy]:

    a co do AT45 to dokładnie tak zrobiłem :)
  • REKLAMA
  • #10 4319330
    firefox_PL
    Poziom 17  
    Posty: 235
    Pomógł: 21
    Ocena: 2
    Dzięki AT45 już znalazłem, chociażby na kamami.pl, szukam K6T1008 albo zamiennika, myślę o 62256 co o tym myślicie?

    Dodano po 1 [minuty]:

    tylko ona ma jedynie 15 bitową szynę adresu, nie wiem czy to nie będzie przeszkodą

    Dodano po 1 [minuty]:

    w sumie w projekcie ethernut 1 też jest tylko do A14 (tam też jest pamięć 32k) więc powinno działać
  • #11 4320371
    zagwizdow
    Poziom 17  
    Posty: 177
    Pomógł: 21
    Ocena: 7
    Cytat:


    moja pomylka bo adres w zostal z szukania a pokazywalo uklad:

    SR611008HSA15J
    ogolnie pamieci lepiej szukac po pojemnosci w katalogu niz po symbolach .

    co do pamieci to nie wiem jak w ethernucie ale np do 'uip' duzo nie potrzeba , ja mam 32k i do tego wiekszosc na swoje dane.
  • #12 4320738
    Jdsoul
    Poziom 23  
    Posty: 501
    Pomógł: 47
    Ocena: 10
    Cześć!!! Mam pytanko co rozumiesz przez serwer FTP ?? .

    Do jego realizacji przydałby się w układzie jeszcze jakiś system plików :) może pamięć SD lub CF, bo 32 kB RAM na FTP to troszkę mało. A z założenia transfer plików wymaga jakiejś formy FAT-u.

    Podobny ciekawy projekt jest na :

    http://www.hw-server.com/default.htm

    Tam też masz wykorzystanie RTL-ka. Na magazyn stron wykorzystano EEPROM 256 kB
  • #13 4322342
    firefox_PL
    Poziom 17  
    Posty: 235
    Pomógł: 21
    Ocena: 2
    generalnie będę miał MMC i będę je chciał wykorzystać, chodzi mi bardziej o sam protokół FTP pod kątem edukacyjnym dla mnie (poza tym czasami się w przemyśle przydaje), niż to żeby tam przechowywać dużo plików itp.
  • #14 4324003
    Jdsoul
    Poziom 23  
    Posty: 501
    Pomógł: 47
    Ocena: 10
    Nie miałem na myśli ani dużo , ani mało :) plików ;)

    Generalnie miałem na myśli więcej niż 1 :)
    A to już generuje potrzebę obsługi jego położenia, długości i fragmentacji, a co za tym idzie jakiegoś zarządzania tą MMC :) FAT, tabela znaczników , czy coś tam.

    Poza tym FTP obsługuje kilka metod np. PWD, CWD etc. i byłoby niegrzecznie , zabronić klientowi ich stosowania :).

    Generalnie gratuluje ambitnego wyzwania !!
  • #15 4325997
    firefox_PL
    Poziom 17  
    Posty: 235
    Pomógł: 21
    Ocena: 2
    Jdsoul napisał:
    Generalnie gratuluje ambitnego wyzwania !!
    dzięki, po prostu jak już wspomniałem gdzieś tam na samym początku projektuję sobie dużą płytkę do rozpracowania przeróżnych interfejsów w AVR, dlatego płytka będzie właśnie miała ATmega128 (żeby starczyło na wszystko co sobie wymyślę), zewnętrzną SRAM i EEPROM (chociażby do TCP/IP), moduł Ethernet, Bluetooth (komunikacja przez UART i/lub SPI), przygotowanie pod programowy USB, RS232 oczywiście, IR (odbiór i nadawanie), slot do MMC (w trybie SPI), I2C, 1-wire, LCD 16x2 znaków oraz LCD graficzny 240x128 (na sterowniku T6963C, nie chcę mi się bawić w generacje znaków od zera :) ), wbudowany programator pod USB (AVR910), i takie standardowe rzeczy jak 8 ledów, matryca 4x4 przycisków, oraz dodatkowy port do podłączania innych płytek w przyszłości (16 albo 32 wyprowadzenia, jeszcze nie jestem pewien), generalnie sądzę, że dużo czasu mi zajmie rozpracowanie wszystkiego (pewnie co najmniej do końca studiów, a jak znam życie to dłużej bo jeszcze się mocno FPGA zajmuje)

    Dodano po 1 [minuty]:

    a co do FAT to pewnie będę się inspirować bibliotekami AVRlib
  • #16 4327402
    Jdsoul
    Poziom 23  
    Posty: 501
    Pomógł: 47
    Ocena: 10
    Generalnie sporo jak na 8 bitowca :) polecam zerknąć na dwa projekty na AVR -

    a) sieciowy system operacyjny Contiki -

    b) FreeRTOS - System czasu "prawie" rzeczywistego :)

    Przy tak szerokim wykorzystaniu Atmegi rozwiązania systemowe mogą się już bardzo przydać :) a na bazie Contiki będzie ci łatwiej zrozumieć problematykę TCP/IP i FTP jako protokołów sieciowych w systemi Embeded
  • #17 4328627
    firefox_PL
    Poziom 17  
    Posty: 235
    Pomógł: 21
    Ocena: 2
    dzięki, nie mam zamiaru oczywiście uruchamiać wszystkiego naraz, raczej opracować poszczególne interfejsu, w takim wypadku ATmega128 będzie nawet nadmiarowa :)
  • #18 4337309
    Jdsoul
    Poziom 23  
    Posty: 501
    Pomógł: 47
    Ocena: 10
    Miałem na myśli złożoność protokołów i "sposoby" jakimi dzięki znacznym uproszczeniom i okrojeniom funkcjonalności protokołów, można wogóle myśleć o zastosowaniu tych protokołów w maszynkach 8-bitowych.

    Naprawde godnym polecenia przykładem jest uIP, który wiele wnosi do dalszego postrzegania "przyszłych" zastosowań sieciowych urządzeń Embeded.

    Sam proces nauki może mieć sens jedynie wtedy,gdy docelowo jest szansa na udaną aplikację.

    Niestety specyfika układów, z mikroprockami, a z drugiej strony złożoność pełnego protokułu sieci IP, umieszczają mikrokontoler w roli interfejsu pomiarowego, urządzenia z możliwościami zdalnej rekunkfiguracji lub małego serwerka :) raczej nie wiele więcej :(

    Aplikacja urządzenia musi być dobrze przemyślana, a funkcje sieciowe traktowane jednak wciąż trochę pomocniczo, ale np. dla poznania samej budowy TCP/IP i metodyki projektowania , to zabawa przednia.

    Co zaś do samej Atmegi 128 :) jeśli naprawdę masz na myśli pracę z "pelnym" serwerem, FTP, obsługą plików ?!? itd itd to na Atmedze tego nie uzyskasz , może warto pomyśleć o ARM, a nawet pokusić się o coś w okolicach x86, z odpowiednią ilością zasobów na pokładzie.
  • REKLAMA
  • #19 4338979
    firefox_PL
    Poziom 17  
    Posty: 235
    Pomógł: 21
    Ocena: 2
    Jdsoul napisał:
    może warto pomyśleć o ARM, a nawet pokusić się o coś w okolicach x86, z odpowiednią ilością zasobów na pokładzie.
    sądzę, że jak wyczerpię AVR'y co przy moich planach ich dogłębnego poznania i wykorzystania zajmie trochę czasu, to na pewno przełożę się na ARM, póki co jedyne co będę na nich robił to pisał hobbystycznie programy w C# na Windows Mobile 5.0 :)
  • #20 4340589
    Jdsoul
    Poziom 23  
    Posty: 501
    Pomógł: 47
    Ocena: 10
    Windows :) programy:) pisał :)

    No cóż tak właśnie trzeba :) skoro jest gotowa platforma systemowa , bardzo bliska "sprzętowi" , może być bardzo fajnie :) :)
  • #21 4485199
    firefox_PL
    Poziom 17  
    Posty: 235
    Pomógł: 21
    Ocena: 2
    muszę odświeżyć trochę temat, mianowicie nie mam pojęcia jak w schemacie podłączyć gniazdo z filtrem LF1S022 z RTL8019AS, mam co prawda schematy od MMnet01 z Propox'u, ale wydaje mi się, że gniazdo LF1S022 ma zupełnie inne wyjścia, a niestety w dokumentacji nie są one opisane tak żebym pojął gdzie są wszystkie TXD i RXD itp. Więc jeśli ktoś byłby w stanie pomóc to byłoby super.
  • #22 5917100
    mag32
    Poziom 19  
    Posty: 450
    Pomógł: 4
    Ocena: 17
    Jak prace projektowe ?

Podsumowanie tematu

✨ Dyskusja dotyczy realizacji prostego serwera FTP i HTTP na mikrokontrolerze ATmega128 z wykorzystaniem kontrolera sieciowego RTL8019AS. Potwierdzono, że RTL8019AS nie wymaga zewnętrznej pamięci SRAM, gdyż posiada wbudowane 16 kB, jednak dla serwera FTP/HTTP zalecane jest podłączenie dodatkowej zewnętrznej pamięci SRAM współdzielonej z mikrokontrolerem dla zwiększenia wydajności. Komunikacja z RTL8019AS odbywa się synchronicznie sygnałami odczytu i zapisu, a do stabilnej pracy zalecany jest rezonator o częstotliwości 16 MHz. Długości ścieżek na większej płytce prototypowej nie mają istotnego wpływu na stabilność transmisji przy prędkościach obsługiwanych przez ATmega128. Filtr pomiędzy RTL8019AS a złączem RJ45 można zastąpić złączem z wbudowanym filtrem, np. LF1S022. W dyskusji poruszono także kwestie doboru pamięci zewnętrznej, gdzie zamiast trudno dostępnej pamięci K6T1008 można zastosować pamięć 62256 o pojemności 32 kB, co jest zgodne z rozwiązaniami stosowanymi w projektach takich jak Ethernut 1. Autor planuje wykorzystanie dodatkowych interfejsów i modułów (MMC, Bluetooth, USB, RS232, IR, LCD) na dużej płytce prototypowej z ATmega128. Wskazano również na przydatność systemów operacyjnych czasu rzeczywistego (FreeRTOS, Contiki) do zarządzania złożonymi aplikacjami sieciowymi na mikrokontrolerach 8-bitowych. Na koniec pojawiło się pytanie o podłączenie gniazda z filtrem LF1S022 do RTL8019AS, ze względu na różnice w wyprowadzeniach i brak jasnej dokumentacji.
Wygenerowane przez model językowy.
REKLAMA