Hallo, ich bin im Moment dabei einen ENC28J60 an einem ATmega8 zum laufen zu bringen. Ich hab nun schon viele Stacks gefunden, aber die sind meistens schon einige Jahre alt und mein Compiler ist am meckern oder sie sind zu groß für den kleinen Mega8 oder wenn ich sie flashe funktiniert es nicht. Hat jemand einen kleinen funktionierenden Stack eventuell. Mir reicht zum Anfang ARP und UDP aus. Gruß Mathias
Vergiss es. Wenn überhaupt, bekommst du es nur sehr eingeschränkt zum Laufen. Der Protz hat zu wenig RAM und Flash ist auch mickrig.
Profis suchen sich ihre Hardware nach der Applikation aus. In diesem Fall hast Du schlichtweg die falsche Wahl getroffen. Eine bessere Wahl wäre der pinkompatible Mega328. Die optimale Wahl wäre der PIC18F67J60. Da ist alles in einem einzigen Chip drin: Controller, Ethernet MAC+PHY, Speicher,... Einfacher, kleiner und billiger kann man es nicht haben. fchk
Ich beschäftige mich auch gerade mit dem Thema. Habe allerdings mehr den Mega328 im Auge und auch nur einfache Ethernet Frames um ein Rs485 Protokoll ins Ethernet zu bringen. Dafür würde ein Atmega8 wohl auch genügen. ARP habe ich in AVR-Assembler und denke, dass das auch auf einem Atmega8 ginge. UDP z.B. Nur mit Broadcasts, warum nicht?
Ein sehr schönes Beispielprojekt ist dieses hier: http://www.tuxgraphics.org/electronics/200611/embedded-webserver.shtml UDP und TCP/IP mit Webserver auf nem Mega88. Hab das vorhin kompiliert und auf nen Mega88 mit internen 8Mhz Takt gebrannt. Zum Testen nutze ich ein ENCJ28 Modul aus der Bucht. Der Mega88 sitzt auf dem Steckboard.
Ich hab es auf dem ATMega8A super am laufen, zumindest für geringen Netzwerkverkehr reicht der dicke. Ich hab die Woche bereits ARP, UDP und ICMP implementiert und arbeite gerade an TCP. Hier mal mein Code, ist zu 100% NICHT bugfrei, weder schön, noch gut kommentiert. Die Funktionen sind hauptsächlich zum antworten auf empfangene Pakete, aber schau dir die ControlUnit.cpp an, da ist ein kleines Beispiel drinn. Vielleicht hilft es dir ja weiter. https://docs.google.com/file/d/0B_Jd-LI0kGZeeDNfOUViSDROZ2M/edit?usp=sharing
Benedikt schrieb: > Ich hab es auf dem ATMega8A super am laufen, zumindest für geringen > Netzwerkverkehr reicht der dicke. > > Ich hab die Woche bereits ARP, UDP und ICMP implementiert und arbeite > gerade an TCP. > > Hier mal mein Code, ist zu 100% NICHT bugfrei, weder schön, noch gut > kommentiert. > Die Funktionen sind hauptsächlich zum antworten auf empfangene Pakete, > aber schau dir die ControlUnit.cpp an, da ist ein kleines Beispiel > drinn. > > Vielleicht hilft es dir ja weiter. > > https://docs.google.com/file/d/0B_Jd-LI0kGZeeDNfOUViSDROZ2M/edit?usp=sharing Warum ist der Code im Headerfile? Eine ethernet.cpp wäre doch sinnvoller oder habe ich etwas übersehen?
Was nur alle meckern hier. Der ATmega8 ist ein toller MCU! g Guggst du hier: http://www.pocketmagic.net/2012/07/atmega8-and-enc28j60-for-ethernet-support/#.UZO6R9dCRhE Nach Anpassung der Makefile funktioniert das bei mir super toll.
Danke schonmal für das ganze Feedback. Klar der Mega8 ist ein bisschen zu klein dafür, vorallem weil ich noch nen Modbus-Stack integrieren will. Später soll es ein ATmega644 werden. Den Mega8 hab ich erstmal zum groben testen. Den hatte ich noch rumliegen. @matrixstorm: Die Seite hatte ich auch schon gesehen. Nur irgendwie will er bei mir nix machen. Kannst du mal dein Projekt hochladen bitte?
Hier die patchfile von der originalen ZIP zu einer Version die bei mir funktioniert: http://matrixstorm.com/avr/others/201305152359/webserver_atmega8.patch MfG
@Davis: Ja der Code ist in einem Headerfile. Aus dem einfachen Grund, dass m-obi es mal schnell testen kann. Ich hätte den Code sicher nicht als Beispiel hier reingestellt, jedoch wollte m-obi eine Version die 100% auf dem Mega8 läuft und das tut mein Code :-)
Hi zusammen, ich habe mich etwas am Code vom oben genannten pocketmagic.net-Link orientiert und daraufhin direkt den stack von tuxgraphics verwendet (und minimal angepasst). Funktioniert wunderbar inkl. DHCP und ich habe sogar noch Platz für ausreichedn eigene Logik. Im Augenblick bekomme ich es nur nicht hin, die von meiner Server-Applikation zurückgesendeten UDP-Daten einzulesen und zu verarbeiten. Gibt es da Beispiele oder hat da jemand Erfahrung? Lese ich in buffer[UDP_DATA_P], bekomme ich nur die zuvor gesendeten Daten. Grüße Micha
Hallo, erwähnenswert ist noch die Implementierung unter LunaAVR. http://forum.myluna.de/viewtopic.php?f=3&t=300 http://avr.myluna.de/doku.php?id=de:beispiel-sourcen Die Quelldatei wird beim installieren der IDE/ Compilers gleich mit installiert. Webserver-Änderungen - ftpd-service (rudimentär, keine Schreibfunktionen) - Konfiguration in einer Extradatei includes/config.luna - Optimierte TCP-Verbindungen (Datei-Download nun mit bis zu 50 kb/s) - UDP ~ 30 Pakete/s
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.