Poszukuję jakiegoś schematu + kodu do zrobienia prostego serwera WWW na atmedze(32 lub 644p z enc28j60) ale musi on czytać strony www z karty sd / mmc.
Na sieci znalazłem wiele schematów na atmegę ale bez obsługi kart sd / mmc, a strony www są zapisane w pamięci mikrokontrolera.
Co do schematu to fakt znalazłem aż 3 i wszystkie są bardzo podobne Kodu szukam i szukam i znaleźć nie mogę.
Posiadam w domu płytkę testową z atmega 664p i kit avt1528(enc28j60). Zmontowałem ze strony ulrichradig.de serwer www i działa ale czyta strony z procka.
dir3ctor: na tej stronie nie ma kodu albo ja znaleźć nie mogę
scsi - jak byś czytał w myślach bo dokładnie na takich elementach (m644, sd, enc28j60) zrobiłem sobie już całą płytkę, jestem w trakcie pisania kodu - masakra Obawiam się że nie znajdziesz nigdzie takiego projektu, na pewno nie z kodami źródłowymi Rozumiem że interesuje Cię tylko C? Bo ja skrobie w "B" (bascom).
Tak naprawdę to jak potrafisz wygenerować stronę zapisaną w pamięci programu, to z karty sd też nie powinno być większego problemu. By zrobić to w sposób taki aby wcześniej można było zapisać taką stronę na kartę za pomocą czytnika trzeba wprowadzić obsługę fata na atmega i to może na początku sprawić trochę kłopotu, ale są gotowe opracowania więc nie trzeba zaczynać od zera. Jak masz FAT to reszta sprowadza się tylko do odczytu plików ze stronami HTML z karty.
Mam zrobiony taki serwer. Zrobiony na ATmega32, karta SD, zewnętrzny bufor SRAM 32kB.
Nie mam zrobionego schematu ani płytki drukowanej (zmontowane było toto na płytce testowej AndTech EvB 4.3). Mogę jedynie zrobić jakiś schemat blokowy.
Wszystko jest konfigurowalne w kodzie źródłowym.
Serwer odczytuje strony z katalogu "WWW" na karcie SD. W głównym katalogu jest plik binarny z ustawieniami (jeżeli nie ma to zostanie stworzony automatycznie).
Dodam jeszcze, że kod kompilowany jest w Eclipse z pluginem AVR. Aby włączyć DEBUG trzeba wstawić '#define DEBUG' w pliku który ma zostać zdebugwany.
Na porcie COM powinny się pojawić ładnie opisane komunikaty.
Witam . Czy któryś z WW serwerów może pracować jako dysk sieciowy .
Chodzi mi o takie coś żeby był do niego dostęp z Mojego miejsca sieciowego w Windowsie , albo przez mapowanie dysku sieciowego , czyli żeby można było do niego odnosić się jak do folderu i zapisywać oraz odczytywać pliki .
Chodzi mi o coś takiego co bym mógł podpiąć pod ruter jako dysk sieciowy (pojemność powiedzmy 512 mb karta sd ) co by mogło chodzić bez przerwy abym zawsze miał dostep do niego w sieci lokalnej . Posiadam komputer stacjonarny i laptopa . Na kompie zapisuję wszystkie moje projekty elektroniczne , ale gdy chce się przesiąść na laptopa albo muszę całość przekopiować na niego ( bo co chwile coś się zmienia w tym folderze , albo zostawić włączonego kompa ) . A tak to miał bym to zapisane na karcie która cały czas chodzi , i tylko co jakiś czas odczytywał bym plik , potem działał na kompie , a na koniec zapisywał z powrotem do karty .
Pomyśl o routerze z funkcją NAS np. Fritz box czy inne. Pchanie się w Atmegi jest skazane na ślimaczą prędkość, a co za tym idzie podwójnie wyrzucone pieniądze bo i tak kupisz router.
Pomyśl o routerze z funkcją NAS np. Fritz box czy inne. Pchanie się w Atmegi jest skazane na ślimaczą prędkość, a co za tym idzie podwójnie wyrzucone pieniądze bo i tak kupisz router.
Wystarczy dowolny router ze złączem USB 100-200 zł np Edimax
pendrive USB to tez niewielki wydatek. Chyba że chodzi o połączenie
funkcji serwera www i serwera plików. to łatwiej będzie chyba zaimplementować
jakiś najprostszy TFTP serwer tak jak opisywane tu:
To co tu wrzuciłem można użyć jako dysk sieciowy. Zbudowałem to urządzenie i działa z kartami na fat16 i fat32. Jeśli ktoś by chciał to mogę odsprzedać bo w sumie mam 2 takie urządzenia. Obydwa działają OK. Transfer na WWW - do 12KB co do transferu plików po FTP od 5kb minimum - 12 - 16KB przeważnie - maks 30KB. Nic lepszego już z atmegi nie wyciągniemy. Próbowałem przerabiać kod zajęło mi to ponad 3 miesiące i efekty mizerne.
Ogólnie ATmega jako serwer sieciowy plików to zły pomysł.
Moje urządzenie loguje dane do pliku na karcie SD. Transfer po HTTP jest na poziomie maksymalnie 200kB/s. Dane buforowane są w pamięci SRAM 32kB.
Oczywiście transfery równoległe są już znacznie wolniejsze. Dwa równoległe to około 50kB/s na każdy slot.
Bawiłem się również w komunikację 4 modułów, które wymieniają się informacjami. Każdy z każdym.
Dane na poziomie do 20kB. Działało dobrze nawet gdy do jednego modułu podłączały się 3 pozostałe w tym samym czasie.
Podbijam stary temat bo widzę, że często zabierano głos w sprawie webserwerka z http://www.ulrichradig.de a mój problem może przyczynić się do rozwiązania innych problemów z tym projektem.
Zrobiłem ten w wersji Atmega128 plus RTL8019AS (Single Side Webservers 26.10.04) , no i mam problem bo nie mogę go odpalić. Połączenia sprawdziłem chyba z 10 razy. Dziwne jest to, że po skompilowaniu kodu ze strony autora i załadowaniu do atmegi , serwer nie daje w ogóle znaku życia. Świeci ciągle tylko jedna dioda na RTL8019AS , podłączenie ethernetu nie daje żadnej reakcji. Co więcej nie ma komunikacji przez RS232 (nawet śmieci terminal nie wysypuje)
Moje pytanie do osób mających doświadczenie:
1. czy powodem tego może być brak eepromu 24AA256 (wydaje mi się , że bez eepromu powinno wstać)? Nie mam go i dlatego próbuje odpalić bez niego,
2. Co do komunikacji po rs to czy prawidłowo zastąpiłem układ MAX202 układem MAX232 zmieniając jednocześnie kondensatory z 0,1uf na 2,2uf? (wydaje mi się , że tak można)
3. Czy fusbity w atmedze128 powinny być ustawione: lfuse:w:0xff:m -U hfuse:w:0xcf:m czy jakoś inaczej?
4. czy kwarc przy RTL ma być 20MHz (w projekcie nie ma tej informacji, ale z noty aplikacyjnej wychodzi mi, że tak.
5. jakieś inne sugestie jak ustalić co stanowi problem?
Przepraszam za może oczywiste dla niektórych pytania, ale nie mam za bardzo doświadczenia w uruchamianiu tego typu układów i brak mi pomysłu, gdzie szukać przyczyny. Dodam tylko, że projekt z tej samej strony na atmeg644 plus ENC28j60 ruszył mi od kopa.
Jest pewien postęp. Jestem niemal pewien, że to kwestia fusebitów. Znalazłem wskazówkę na forum autora projektu. Zgodnie z nią wyłączyłem zgodność z atmega 103, zmieniłem wpis w clock.c z TIMSK1 na TIMSK i terminal ruszył. Wysypuje komunikat:
--=== AVR-Server V1.40 ===---
MMC : not included
.........
ERR: Init RTL8019: (255) ERROR !!! --
Niestety nie bardzo rozumiem dalszą treść postu , więc może przetłumaczy mi ktoś co powinienem zaznaczyć w konfiguracji bitów (w burn-o-mat) i ewentualnie kodzie.
Podaje treść oryginalnej wiadomości:
1) Im Makefile die cpu auf atmega128 stellen
2) Nun compilierts nicht mehr 2 Register sind da "falsch" benannt, einmal in UART und nochmal in clock
In Clock.c kann das TIMSK1 in TIMSK umbenannt werden..
Nun sollte alles übersetzten und kann programmiert werden... Die Bits für das ext. Quartz richtig setzen und den M103 Modus deaktivieren, sonst läuft die ser. Schnittstelle 0 nicht...