Hallo,
ich habe ein Projekt mit einem ATmega328 realisiert. Dieser gibt Daten
an einen UART aus. Um die Flexibilität zu erhöhen wäre es super wenn ich
die Daten von einem x beliebigen PC im Home LAN abfragen könnte.
Man findet im Internet jede Menge LAN Module, welches wäre für mein
Vorhaben geeignet, auf was muß man achten?
WLAN wäre auch cool, muß aber nicht unbedingt sein!
Ich programmiere vorzugsweise in C.
Grüße AVRli...
Was willst du dann über telnet machen?
- Programme aufrufen: wird kaum gehen mangels Programmen
- Dateien auflisten, holen, speichern: wird kaum gehen mangels
Dateisystem
Letztlich musst du einen Socket anbieten und sowohl alle Schichten
darunter schaffen als auch eine Art Kommandointerpreter mit ein paar
internen Kommanos, die du brauchst.
Ich selber setze AVRs zusammen mit dem Wiznet812MJ ein. Das Ding kostet
um die 20 EUR bei Watterott.
AVR-Software (TCP-Verbindung zum AVR als Server) findest Du zum Beispiel
hier:
Remote IRMP
Im Artikel wird zwar ein Arduino-Ethernet-Modul verwendet, aber es wird
keine Arduino-Software benutzt, sondern das Ding klassisch mit dem
ATmel-Studio programmiert. Ich selber war einfach zu faul, das
Wiznet-Modul an den AVR zu löten und habe deshalb das komplette Modul
genommen. Die Software läuft aber genauso mit ATmega328 + Wiznet812MJ in
einer eigenen Schaltung.
Max D. schrieb:> WLAN mit esp8266 wäre mindestens eine Überlegung wert.
Habe es gefunden, allerdings ist mir die Funktion noch nicht klar. Wie
die Verbindung zum PC dann die ser2wlan Daten auswerten/einlesen kann.
Klaus Wachtler schrieb:> Was willst du dann über telnet machen?
Der ATmega sammelt gerade Daten von Sensoren, diese möchte ich gern
flexibel über das Netzwerk abfragen. Telnet erschien mir hier als
geeignet. Gerne auch was, was besser geeignet ist.
Frank M. schrieb:> Ich selber setze AVRs zusammen mit dem Wiznet812MJ ein. Das Ding> kostet um die 20 EUR bei Watterott.
Ja das wäre nicht schlecht! Das wäre dann der Chip ENC28J60?
Weiter habe ich noch das Modul W5100 gesehen, welches ist nun das, mit
dem man den wenigsten Ärger hat.
Die Vor und Nachteile der jeweiligen ist mir noch etwas unklar.
Danke für Eure Hilfe, AVRli...
AVRli schrieb:> Telnet erschien mir hier als geeignet.
UDP dürfte ausreichend und deutlich einfacher zu implementieren sein.
> Ja das wäre nicht schlecht! Das wäre dann der Chip ENC28J60?
Geht auch, Software findest du als Gerüst u.a. unter "Radig Webserver".
> Weiter habe ich noch das Modul W5100 gesehen, welches ist nun das, mit> dem man den wenigsten Ärger hat.
Auch eine gute Wahl, für Dich vermutlich besser, da das IP Protokoll
bereits eingebaut ist. Da Du aber noch ganz am Anfang stehst, wirst Du
dir erst einmal 3 Monate lang die Ohren brechen, so oder so. Viel Spaß!
AVRli schrieb:> Frank M. schrieb:>> Ich selber setze AVRs zusammen mit dem Wiznet812MJ ein. Das Ding>> kostet um die 20 EUR bei Watterott.>> Ja das wäre nicht schlecht! Das wäre dann der Chip ENC28J60?
Nein, der ENC28J60 ist nur ein Physical Transmitter. Du bräuchtest dann
noch einen TCP-Stack auf dem AVR.
> Weiter habe ich noch das Modul W5100 gesehen, welches ist nun das, mit> dem man den wenigsten Ärger hat.
Das Wiznet812MJ-Modul benutzt genau den W5100. Der hat den TCP- und
UDP-Stack im Chip. Daher ist dieses Modul mit extrem wenig AVR-Software
direkt lauffähig.
> Die Vor und Nachteile der jeweiligen ist mir noch etwas unklar.
Siehe oben. Es gibt zwar auch TCP-Stacks für den AVR (z.B.
Radig-Webserver) in Verbindung mit dem ENC28J60, aber ehrlich gesagt,
würde ich mir den nicht antun. Der Stack verbrät natürlich auch noch
eine Menge Flash auf dem ATmega.
Eine simple SPI-Verbindung zum Wiznet812MJ ist da wesentlich einfacher.
Du könntest auch das Wiznet 820io
http://www.watterott.com/de/WIZ820io
nehmen. Der benutzt den W5200-Chip. Die Software für den 5100er ist
leicht auf den 5200er aufzubohren. Der Charme am WIZ820io ist, dass das
Board wesentlich kleiner ist als das Wiz812MJ, welches noch zusätzlich
eine parallele Anschlussmöglichkeit bietet - was man aber nicht braucht.
Die Anpassung der 5100er-AVR-Software (siehe Artikel) auf den 5200er
habe ich auch schon durchgeführt. Müsste ich mal bei Gelegenheit
hochladen....
AVRli schrieb:> ich habe ein Projekt mit einem ATmega328 realisiert. Dieser gibt Daten> an einen UART aus. Um die Flexibilität zu erhöhen wäre es super wenn ich> die Daten von einem x beliebigen PC im Home LAN abfragen könnte.
Ich habe mir solche kleinen Module gebaut. In dem einzigen Chip auf der
Platine ist quasi eine verbesserte Version des ENC28J60 drin, dazu
Flash, RAM und sonstige Peripherie, und ein Prozessor (PIC18). Das ist
mit Abstand die einfachste, kleinste und billigste Möglichkeit, einen
Ethernet-Knoten zu bauen. Der Chip kostet irgendwas um die 3.50€, die
restlichen Bauteile liegen im Cent-Bereich, und das teuerste daran ist
die Ethernet-Buchse mit Übertrager. Software gibt bei Microchip zum
Download.
fchk
Ich habe es geahnt, ihr kennt das sicher, nun kribbelt es hier wie
verrückt in den Fingern, das möchte ich doch gerne umsetzen!
Würde mich nun, nachdem was ihr mir hier geantwortet habt und was ich
darauf hin im Netz gefunden habe, für das W1500 entscheiden.
WLAN ist ganz toll nur ziehe ich Draht erst mal vor. Wichtig ist das die
Daten generell im LAN erreichbar werden.
Habe ich es nun richtig interpretiert?
Im W5100 ist ein Hardware TCP/IP Stack drin und man muß sich nun "nur
noch" um die eigentliche Verbindung kümmern? Es ist maximal eine
Verbindung möglich.
Ist es im Prinzip dann so möglich das der PC eine Verbindung (Was?) zum
ATmega über den W5100 aufbaut. Der ATmega weiß dann ob eine Verbindung
besteht und wenn ja überträgt er die Daten nicht über den UART sondern
über den W5100?
Oder kann man auf das LAN die Daten einfach abschicken, würde aber
unnötigen Traffic erzeugen, wenn man keinen Abnehmer hat. ;-/
Welches ist die "zuverlässigste" lib für den W5100, was würdet ihr mir
hier empfehlen?
ATmega 328 mit C ist derzeit in Benutzung.
Grüße AVRli...
Schau dir das OSI-Modell an.
http://de.wikipedia.org/wiki/OSI-Modell
Der W5100 übernimmt alles bis einschließlich Schicht 4.
Alles drüber gehört zur Anwendung und da must du dich selber drum
kümmern. Gibt aber Bibliotheken für den W5100.
Ein ENC28J60 z. B. hätte nur Schicht 1 und 2 gemacht.
Christian K. schrieb:> Gibt aber Bibliotheken für den W5100.
Das Wort Bibliothek(en) halte ich bei einem Sammelsurium
von Sourcen, die man mühsam an seine eigenen Bedürfnisse
anpassen muss, für stark übertrieben.
Wenn man natürlich konsequent auf der Arduino-Schiene
bleibt dann mag das Wort Bibliothek gerade noch legitim
sein.
Es wird einem also nichts (nicht viel) geschenkt.
Hi
>Das Wort Bibliothek(en) halte ich bei einem Sammelsurium>von Sourcen, die man mühsam an seine eigenen Bedürfnisse>anpassen muss, für stark übertrieben.
Na übertreibe man nicht. W5100 und W5200 benutze ich sogar unter
Assembler. Für den W5100 gibt es von Wiznet Sourcen für AVR. In denen
habe ich mich auch als notorischer Assemblerprogrammierer problemlos
zurecht gefunden. Wer das nicht kann sollte das Hobby wechseln.
MfG Spess
spess53 schrieb:> Na übertreibe man nicht.
Wenn hier der nächste Korinthenkacker kommt und die Definition
von Bibliothek (für AVR etc) herausholt dann habe ich nicht
übertrieben.
Der Wiznet Chip ist (egal ob mit oder ohne Library) ganz sicher viel
einfacher zu programmieren, als ein einfacher Ethernet Controller, wie
der EN28J60.
Noch einfacher sind jedoch die ESP Module (z.B. ESP-01), denn die
funktionieren wie ein Modem. Der Mikrocontroller setzt einfach ein par
AT-Befehle zur Konfiguration ab und wartet dann auf die reinkommenden
Nachrichten.
Sowas müssten die Chinesen mal als verkabelte Variante anbieten, das
fände ich toll.
Stefan Us schrieb:> Noch einfacher sind jedoch die ESP Module (z.B. ESP-01), denn die> funktionieren wie ein Modem. Der Mikrocontroller setzt einfach ein par> AT-Befehle zur Konfiguration ab und wartet dann auf die reinkommenden> Nachrichten.
Wenn sie denn funktionieren. Es gehört schon eine Menge Schweiß dazu,
die ganzen Macken der ESP8266-Firmware per Software auszugleichen. Von
"einfach" kann da keine Rede sein. Es ist ein harter Weg bis zum ersten
Erfolgserlebnis.
> Sowas müssten die Chinesen mal als verkabelte Variante anbieten, das> fände ich toll.
Das einzige, was daran "toll" ist, ist der Preis. Aber was
Zuverlässigkeit (Busy-Problem), Reproduzierbarkeit (Meldungen sind
uneinheitlich), Protokoll-Umsetzung (erhebliche Macken bei UDP),
Versionstreue (ältere Firmware erwartet CR, neuere CRNL als
Befehlstrenner, einige arbeiten mit 115200Bd, andere mit 57600Bd oder
gar 9600Bd) angeht, sind die Module einfach nur Krampf.
Da hilft nur eine Spezialprogrammierung der Dinger (eigene Firmware) und
Verzicht auf Nutzung der von irgendeinem Chinesen eingespielten
Firmware. Von daher kann man das überhaupt nicht mehr als "einfach"
bezeichnen.
Arduinoquäler schrieb:> Beim W5100 sind maximal vier Verbindungen gleichzeitig möglich.
Interessant! Was ist das Stichwort wie man die in der Software
auseinander hält? Oder bekommt man davon nichts mit?
Christian K. schrieb:> Der W5100 übernimmt alles bis einschließlich Schicht 4.> Alles drüber gehört zur Anwendung und da must du dich selber drum> kümmern. Gibt aber Bibliotheken für den W5100.
Danke für den anschaulichen Hinweis! Das ganze ist doch sehr komplex und
ich habe die Ethernetanbindung von einem µC immer für ganz großen Voodoo
Zauber gehalten!
Arduinoquäler schrieb:> Wenn man natürlich konsequent auf der Arduino-Schiene> bleibt dann mag das Wort Bibliothek gerade noch legitim> sein.>> Es wird einem also nichts (nicht viel) geschenkt.
Ich nutze von Anfang an AVR-Studio und nun das ATMEL-Studio. Habe in ASM
angefangen und bin dann auf C gegangen weil ich es übersichtlicher
finde.
Ich möchte nicht's geschenkt haben, copy&paste ist kein "programmieren".
Nur wenn es das Rad schon gibt, reicht es wenn man weiß wie man es
dreht.
spess53 schrieb:> W5100 und W5200 benutze ich sogar unter> Assembler. Für den W5100 gibt es von Wiznet Sourcen für AVR.
Die habe ich mir auch mal angesehen! Auch einige Beispiele was man so
anstellen kann, das war ein guter Hinweis!
> Stefan Us schrieb:> Der Wiznet Chip ist (egal ob mit oder ohne Library) ganz sicher viel> einfacher zu programmieren, als ein einfacher Ethernet Controller,> wie der EN28J60.>> Noch einfacher sind jedoch die ESP Module (z.B. ESP-01), denn die> funktionieren wie ein Modem.
Ja bei Null möchte ich wirklich nicht anfangen, deshalb habe ich mir
auch erlaubt die Frage mal zu stellen, doch ein auf Modem-Basis zur
Verfügung gestellter Chip ist mir wieder zu abhängig von Dritten.
Ich werde mir den WIZnet W5100 ansehen. WLAN brauche ich derzeit nicht,
ist sicher lustig aber in meinem Fall unnötig.
Grüße AVRli...
AVRli schrieb:> Interessant! Was ist das Stichwort wie man die in der Software> auseinander hält? Oder bekommt man davon nichts mit?
Das ist einfach eine Frage der Kapazität des Chips.
Das Ethernet ist geduldig. TCP auch. Beim W5100 hat man sich
auf 4 Sockets geeinigt die gleichzeitig betrieben werden
können, in der einen oder anderen Richtung.
Also auf deine Frage zu kommen: "das Stichwort" heisst Sockets,
und die sind am Chip unabhängig voneinander benutzbar.
Hi
>Interessant! Was ist das Stichwort wie man die in der Software>auseinander hält? Oder bekommt man davon nichts mit?
Der W5100 hat vier (W5200/W5300/W5500 sogar acht) Sockets von denen
jeder eine eigene Verbindung herstellen kann.
>Die habe ich mir auch mal angesehen! Auch einige Beispiele was man so>anstellen kann, das war ein guter Hinweis!
Lies dir erst mal in Ruhe das Datenblatt durch. Da sind zu den einzelnen
Funktionen ausreichend (Pseudo-)C Beispiele drin. Etwas Literatur über
Ethernet kann auch nicht schaden.
MfG Spess
Hi Leute,
ich habe mir das Datenblatt (W5100) angesehen und stolper gerade über
die MAC Adresse. Ist das nicht eine fixe Adresse?
Kann man die auslesen oder ist es eine einstellbare?
Nur was würde man sich da "ausspinnen" ?
Bis hier hin irre interessant!
Grüße AVRli...
AVRli schrieb:> Kann man die auslesen oder ist es eine einstellbare?
ALles les- und schreibbar.
Beim W5100 ist das ein 6-Byte Register das zu zum Betreiben
des Chips mit einer "sinnvollen" Adresse belegen (beschreiben)
musst, sonst bist du nicht netzwerkfähig.
Ziemlich frei wählbar solange du nicht mit anderen MAC
Adressen in deinem Netzwerk kollidierst. Die genaue Syntax
kansst du in Wiki nachlesen, es gibt gewisse Dinge zu beachten.
AVRli schrieb:> ich habe mir das Datenblatt (W5100) angesehen und stolper gerade über> die MAC Adresse. Ist das nicht eine fixe Adresse?>> Kann man die auslesen oder ist es eine einstellbare?> Nur was würde man sich da "ausspinnen" ?
Muttu kaufen. :-)
http://standards.ieee.org/develop/regauth/oui/public.html
Des weiteren solltest Du den IEEE 802.3 Standard kennen:
http://standards.ieee.org/about/get/802/802.3.html
Da findest Du auch mehr über den Aufbau der Mac Adressen, Uni/Multicast,
Globally/Locally Assigned Numbers etc etc. Das ist die Primärquelle,
also das Dokument, von dem alle anderen Leute abschreiben, mal mehr, mal
weniger korrekt.
fchk
Frank K. schrieb:> Muttu kaufen. :-)
Nö. Wenn er in seinem privaten Netz spielen will kann er
machen was er will. Bis uaf ein paar wenige Konventionen.
Erst wenn er Geräte bauen und unter die Leute bringen will
dann wird's offizieller ....
Es gibt eine Regel bei selbst ausgedachten MAC-Adressen, das 2. Bit (von
Links gelesen) muss '1' sein.
Das erste Bit ist immer '0'. Eine '1' an dieser Stelle würde zu einer
Multicast-MAC-Adresse führen.
Alle anderen Bits kannst du frei wählen, die MAC-Adresse darf halt nur
einmal pro Netzwerk vorkommen.
Uwe S. schrieb:> wenn man sich dieses Kits annimmt, dann ist die MAC Adresse nach dem> booten schon eingestellt:
Also einfach alles stehen und liegen lassen und nichts anderes
kaufen als das. Denn da muss man dann einen Augenblick weniger
überlegen. Dass es noch viele andere Randbedingungen gibt spielt
keine Rolle. Hirn sparen, koste es was es wolle.
Hi Leute,
hab ich hier ein Trubel ausgelöst? ;-) Sorry... da alles nur lokal
genutzt wird, es ist MEIN HOBBY, ist das in meinen Augen alles total
egal!
Ich möchte bei der ganzen Aktion einfach was lernen und mich daran
erfreuen wenn mein Projekt ins LAN kommt. Mehr nicht aber auch nicht
weniger. Ist doch super wenn man versteht was da passiert! Die Frage ist
ja auch nur aufgekommen, weil es mich eben interessiert.
Habe eine allte ISA Steckkarte gefunden wo eine MAC Adresse drauf steht,
mein Gott, neheme ich die, die ISA Karte ist ehh Schrott.
Jetzt kommt allerdings das allerbeste! Es geht voran, ich habe die
ersten Sachen übertragen und sehe echt einen Datenaustausch. Coole
Sache!
Unter der Oberfläche der FritzBox sehe ich das Modul zwar nicht, warum
weiß ich noch nicht, spreche ich es mit PING oder dem Browser an, sehe
ich Reaktion, was noch ausprogrammiert werden muss.
Ich danke Euch, der Weg war das Ziel!
Gruß AVRli...
AVRli schrieb:> Es geht voran, ich habe die> ersten Sachen übertragen und sehe echt einen Datenaustausch.
Da hast du aber sehr schnell ein LAN-MOdul bekommen. So schnell
mal von Donnerstag bis Samstag oder heute?
Das hast du uns bis jetzt vorenthalten .....
Oder hast du es schon gehabt bevor du die erste (scheinheilige)
Frage gestellt hast ...
Arduinoquäler schrieb:> Da hast du aber sehr schnell ein LAN-MOdul bekommen. So schnell> mal von Donnerstag bis Samstag oder heute?
Ich habe den Gedanken ansich schon eine ganze Weile, ich habe hier
angefragt was ich nehmen sollte und als ich schrieb "es kribbelt in den
Fingern" wußte ich was ich mir zutraue und was nicht.
Wiznet 5100! -> also Modul Fr. bestellt...
Do. Fr. Datenblatt "studiert", verstanden worum es geht und natürlich
hier nochmal nachgefragt... das hast Du ja verfolgt... ;-)
Sa. Vormittag kam das Teil, seit dem bin ich am tüdeln...
Den ersten Datenaustausch hatte ich vor meinem letzten Post.
Bis nun meine Daten per Telnet zum PC kommen wird es noch etwas dauern,
die Protokollschicht fehlt ganz.
Hast Du eine Idee warum das Modul nicht in der Liste der Fritzbox zu
sehen ist? Muß man dafür ein "Vorstellungspaket" senden oder sowas?
Grüße AVRli...
AVRli schrieb:> Hast Du eine Idee warum das Modul nicht in der Liste der Fritzbox zu> sehen ist? Muß man dafür ein "Vorstellungspaket" senden oder sowas?
Bei mir war es so dass erst ein Socket aktiv Daten ausgetaucht
haben musste bevor ich in meiner Fotzbox was gesehen habe.
Aber Ping sollte schon funktionieren bevor ein Socket aktiv ist.
Nein kann nicht sein, da Ping auch eine IP Adresse braucht. Also
ein Socket muss geöffnet und gültig konfiguriert sein. Dann
hängt es davon ab ob du UDP oder TCP machst. Offener UDP tut
noch nichts auf der Leitung, aber TCP macht ja handshake ...