AVR, Netzwerk, UDP - ein paar Fragen.

Ditron

Mitglied
11. Dez. 2011
281
6
18
Sprachen
  1. BascomAVR
Moin zusammen!

Seit langer Zeit lese ich bei euch mit, nun möchte ich auch ein, zwei
Fragen stellen.

Vor ein paar Wochen bin ich mit der Programmierung von AVRs (über STK500
und Bascom) angefangen. Am Wochenende kam dann die Idee dieses und ein
anderes Hobby miteinander zu verbinden: Flugsimulatoren! Ich spiele
leidenschaftlich gerne den IL-2 Sturmovik-Simulator. Nun möchte ich
gerne die Anzeiger (es richtige Anzeigen, keine MFD o.ä.) mit Hilfe von
Servos nachbauen und in Betrieb nehmen.

IL-2 bietet für ein solches Vorhaben die Daten: das Spiel stellt einen
UDP-Server, über den die aktuellen Werte der Anzeiger (zB
Geschwindigkeit, Temperaturen, ...) abgerufen werden. Bascom selber
bietet verschiedene UPD-Befehle, mit denen ich die Werte abfragen
könnte.

Fehlt nur noch die Verbindung des Mikrocontrollers mit dem Netzwerk! Am
Wochenende habe ich bereits viel im Netz (und hier im Forum) gesucht und
gelesen, allerdings hatte ich noch nicht so den richtigen Erfolg. Oft
bietet Google die I/O-Karte von Pollin als Suchergebnis. Weiterhin wird
immer davon beschrieben, wie ein Webserver gebaut wird. Und das die
AVR-uC über ein ENC28J60 ins Neztwerk gebracht werden.

So... und nun bin ich von Informationen erschlagen, vielleicht kann
jemand da etwas Klarheit bringen. Ich hätte folgende Fragen:

1. Gibt es mittlerweile AVRs, die über einen eigenen Netzwerk-Anschluss
verfügen?
2. Falls nein, muss der ENC28J60 noch programmiert werden oder
funktioniert er out-of-the-box?
3. Falls er programmiert werden muss: geht das über das STK500?
4. Da ich ja nur einen UDP-Client brauche, sind die Anleitungen für
Webserver für mich etwas überdimensioniert, oder?


Vielen Dank schonmal im voraus!


Gruß,

Ditron
 
Hi,

grad wo ich die Anzeige auffrische flutscht nen Beitrag rein ;)

erstmal herzlich willkommen im Forum :flowers:

Vor ein paar Wochen bin ich mit der Programmierung von AVRs (über STK500
und Bascom) angefangen.
Also Mikrocontroller-Anfänger ?
Programmier-Anfänger ?
Elektronik-Anfänger ?
oder schon Grundkenntnisse / erweiterte Kenntnisse vorhanden ?

1. Gibt es mittlerweile AVRs, die über einen eigenen Netzwerk-Anschluss
verfügen?
die 8Bit-AVRs auf jeden Fall nicht. Mit USB ja aber nicht mit LAN. Das heißt aber nicht das du damit schon sorgenfrei bist wenn er dafür nen Anschluß hätte. :p

2. Falls nein, muss der ENC28J60 noch programmiert werden oder
funktioniert er out-of-the-box?
Das ist ein ganz normaler popeliger Portbaustein mit internen Registern und etwas Speicher für den LAN-Anschluß. Vergleichbar mit nem UART-Chip für die Serielle. Den gesamten TCP/IP-Stack mußt du selber programmieren. Mit allem drum und dran. ... Viel Spaß :p

3. Falls er programmiert werden muss: geht das über das STK500?
Nein. Er wird über den Atmel gesteuert. Als so nach dem Motto ... Mal nachsehen ob was vom LAN gekommen ist, sehen ob das nen Broadcast oder Unicast war, paßt die Checksumme, wie siehts mit den IP-Adressen aus, ist es nen ARP gewesen, ... Ich lese mal 345Byte Ethernetpaket aus dem Ringbuffer des Bausteins und sehe was ich mit anfangen kann ... So etwa ;) Ala Anfänger würde ich sagen ... viel Spaß. Nimm dir schonmal den Wireshark als Protokollanalysator vor (fürs LAN) damit du Programmfehler findest und siehst warum es auf dem LAN nicht funzt wie es soll.

4. Da ich ja nur einen UDP-Client brauche, sind die Anleitungen für
Webserver für mich etwas überdimensioniert, oder?
Nur ist gut :cool: Das ist zwar einfache als wenn man was mit TCP macht aber da ist auch einiges zu bauen. Vor allem kannst du beim Code nicht rumschlampen weil du sonst in Zeitprobleme bei der Verarbeitung der Datenmenge kommst. Dann läuft dir der Datenbuffer des ENC28J60 über und die Daten sind weg.

Ich spiele eher mit dem WIZnet W5100 Network Module with Mag Jack - WIZ811MJ aus Dirk seinem Shop (leider grad nicht lieferbar) weil dort der IP-Stack schon in Hardware gegossen ist. Das spart ne Menge Arbeit. Sehr viel einfacher ist es darum aber trotzdem nicht.

Wenn du noch keine Programmiererfahrung oder Erfahrung mit anderen Controllern hast dann würde ich sagen ... vergiß es. Es wird nur Frust geben. Plug and Play gibt es bei Controllern nicht. Du mußt sozusagen deinen Computer mit BIOS, Betriebssystem, Treibern und Anwendungen/Oberfläche selber programmieren/bauen.

Ich möchte dich aber auf keinen Fall abschrecken. Aber fang erstmal kleiner an. Der Rest kommt dann schon von alleine. Es gibt hier leider im Forum oft genug Neue die meinen das das alles so einfach wie das Clicki-Bunti von Windows ist und die sich dann frustriert (weil es nich wirklich weitergeht) nach nem Monat auf Nimmerwiedersehen sang und klanglos verabschieden.

Gruß
Dino
 
Hallo Dino03,

vielen Dank für das herzliche Willkommen und für die vielen Antworten!

Ich gehe mal der Reihe durch:
Anfänger? Ich bin Elektroniker und habe erweiterte Programmier-Grundkenntnisse. Also ganz unwissend bin ich (zum Glück) nicht. Aber die AVRs sind für mich Neugebiet, auch wenn mir vieles bekannt vorkommt.

Ok, das mit dem "einfachen" Anschluss eines AVRs an LAN vergesse ich dann ganz schnell mal. Knackpunkt wird für mich erstmal die LAN-Verbindung sein, egal ob mit dem ENC28J60 oder WIZ811J. Ich werde da nun erstmal versuchen mich in beide Richtungen zu informieren.

Aber eine Frage vorweg:
Kann ich denn mit einem ENC oder WIZ mehrere AVRs ins Netz bringen? Wenn ich mir überlege, dass ich ca. 10 Instrumente realisieren möchte, wird das (bei Nutzung des WIZ) ja ein teurer Spass. Da wäre zu überlegen, ob ich nicht doch auf den M$ Flugsimulator umsteige... (da soll es schon einiges an Lösungen geben).




Grüße (aus der Nachbarschaft, wenn man deiner Sig glauben darf),

Ditron
 
Hi Ditron,

na da hab ich dich ja zum Glück nicht total abgeschreckt :rolleyes:

Aber eine Frage vorweg:
Kann ich denn mit einem ENC oder WIZ mehrere AVRs ins Netz bringen? Wenn ich mir überlege, dass ich ca. 10 Instrumente realisieren möchte, wird das (bei Nutzung des WIZ) ja ein teurer Spass.
Das kannst du so sehen wie ne Tastatur. Kannst du eine Tastatur gleichzeitig an mehrere Computer anschließen?

Das einzige was geht ist den ENC oder WIZ an einen Atmel dransetzen und den dann die Daten an die anderen zB über nen I2C-Bus verteilen lassen. Oder du nimmst nen dicken Atmel und läßt den alles machen. So ein paar Servos sollte nicht das Problem sein. Wenn man bedenkt wieviele IO-Pins ein Atmel mit 100pin-Gehäuse hat :cool:

Gruß
Dino
 
Grüße dich, Ditron!

Ich möchte auch mal schnell Hallo sagen und dich im AVR-Praxis Forum begrüßen! :ciao:

Dino hat schon Recht....
Deine Idee wäre für einen Anfänger wirklich einige Nummern zu groß!
Mach dich erst einmal in Sachen AVR und Programmierung schlau und wenn du dann Fragen hast, helfen wir dir bestimmt gern.

Irgendwie kommt mir das mit den echten Anzeigen und Flugsimulator aber bekannt vor. :hmmmm:
Wenn ich nur wüsste wo ich eine Webseite gesehen habe, der auch einen "echten" Simulator gebaut hat........ :(
Wenn es mir aber wieder einfällt, dann schreibe ich den Link hier gleich rein.

Nun aber erst mal viel Spaß beim ersten Entwickeln und Testen!

Grüße,
Olli

Ach so.....
Der Signatur von Dino kannst du ruhig glauben schenken!
Tja und wenn es deine "Nachbarschaft" ist, dann sind wir wohl auch nicht so weit auseinander. :wink:
 
Irgendwie kommt mir das mit den echten Anzeigen und Flugsimulator aber bekannt vor. :hmmmm:
Wenn ich nur wüsste wo ich eine Webseite gesehen habe, der auch einen "echten" Simulator gebaut hat........ :(
Wenn es mir aber wieder einfällt, dann schreibe ich den Link hier gleich rein.
wenn ich mich recht erinnere dann ist das einer aus unserem Forum der mit seinem Enkel ab und zu mal zuhaues fliegt.

Ich würde mal im "Willkommen"-Bereich nachsehen. Da ist bestimmt nen Link drin.

EDIT: Hallo, wieder ein neuer!! - Rolf63
http://mitglied.multimania.de/oldtimes/
Da ist es ... ;)

Gruß und gute Nacht ...
Dino
 
Hallo zusammen!

Da war der Dino wieder schneller..... :)

Hatte auch gerade den Link und Beitrag von Rolf63 gefunden. :wink:


Finde den Aufbau schon recht gewaltig!

Grüße,
Cassio
 
Danke für eure Antworten! Hat mir ne Menge weitergeholfen.

Mir kam heut noch eine andere Idee:
Wäre es vielleicht einfacher mit einem zweiten PC (wäre vorhanden) die Daten vom UDP-Server zu lesen und dann seriell an einen uC weiterzugeben, damit der die Servos steuert?

Allerdings hab ich die Befürchtung, dass ich mich dafür mit C beschäftigen müsste...




PS:
zum Cockpit schreib ich gleich was im Willkommen-Thread.
 
Hi,

Mir kam heut noch eine andere Idee:
Wäre es vielleicht einfacher mit einem zweiten PC (wäre vorhanden) die Daten vom UDP-Server zu lesen und dann seriell an einen uC weiterzugeben, damit der die Servos steuert?

Allerdings hab ich die Befürchtung, dass ich mich dafür mit C beschäftigen müsste...
nicht zwingend.
Unter Linux ist die Programmierung in Perl nicht wirklich kompliziert. Es gibt sehr viel Unterstützung für ne Menge Netzwerkkram und alle möglichen Protokolle. Außerdem ist es quasi eine Interpretersprache. Beim Start wird es übersetzt und läuft dann in voller Geschwindigkeit. Es ist auch sehr leicht zu lernen.

Gruß
Dino
 
Jeden Tag neue Gedanken & Ideen...

Mit Hilfe eines User in einem Forum über den Simulator könnte ich wahrscheinlich eine Servo-Ansteuerung über RS232 hinbekommen. Hätte aber den Nachteil, dass man quasie nur einen Ausgang hätte. Weiterhin haben heutzutage ja nicht mehr alle Boards einen RS232-Anschluss. Mit LAN-Anschluss wäre das alles flexibler.

Also heute wieder gegoogelt und gesucht... es geht wohl kein Weg an den ENC28J60 vorbei. Immer wieder stoße ich auf die Seite http://members.home.nl/bzijlstra/software/examples/enc28j60.htm , die oft als "Referenz" in Sachen LAN-Anbindung genannt wird. Aber... die erschlägt mich mit Wissen & Details. Weiterhin habe ich den Verdacht, dass sie gar nicht mehr akutell ist. In Bascom gibt es doch u.a. den Befehl UDPREAD, der ja extra UDP-Daten lesen soll. Dieser wird aber in Bens Anleitung gar nicht erwähnt.

Kennt ihr zufällig einen Link, der mir gezieltere Infos bringen kann?
 
JIn Bascom gibt es doch u.a. den Befehl UDPREAD, der ja extra UDP-Daten lesen soll. Dieser wird aber in Bens Anleitung gar nicht erwähnt.
die Bascom-Bibliotheken für LAN oder zB RFID sind für einen oder wenige kompatible Chips zugeschnitten. Die für RFID läuft mit dem Chip den es bei Pollin gibt (U2770 glaube ich) nach meiner Info wohl auch nur suboptimal. Wenn du also den entsprechenden Chip für die Binliothek nicht bekommst, dann kannst du mit den Befehlen aus der Bibliothek auch nichts anfangen. Dann kannst du nur alles selber zu Fuß programmieren. Bis hinunter zur Ansteuerung der Register in deinem benutzten Chip. Ich kann nur sagen das es eine sehr mühselige Sache werden kann.

Nach meiner Info von Dirk kommen Anfang nächsten Jahres die W5100-LAN-Boards mit dem Hardware-TCPIP-Stack ins Lager (wieder lieferbar). Da werde ich mir auch mal so 2 Stk besorgen. Ich wollte damit dann nen NTP- oder SNTP-Server aufbauen. Könnte aber bei mir mit der Lösung etwas dauern. Aber wenn die Hardware da ist kann man schneller mal nen kurzen Arbeitsanfall dazwischenschieben ;)

Gruß
Dino
 
Hi Dino,

vielen Dank für die Auskünfte! Schade, ich dachte mit den UDP-Befehlen wäre es einfacher.

Es gibt ja auch fertige Boards, wie zB von Pollin das AVR-Net-I/O-Board. Aber das würde mich ja nur die Löterei ersparen, aber nicht das Verwerten der UDP-Daten.

Also wieder einen Schritt zurück in Richtung RS232... stört mich selber auch nicht, da mein Alt-PC noch einen solchen Anschluss hat. Und wer es denn nachbauen möchte, muss sich halt selber drum kümmern.
 
.. stört mich selber auch nicht, da mein Alt-PC noch einen solchen Anschluss hat.
es gibt auch Wandler-Chips von USB auf RS232/UART. Also ist nicht zwingend eine echte Serielle Schnittstelle von Nöten.

Nur beim RS232-Progger (zB bei PonyProg) ist wegen der Ansteuerung der einzelnen IO-Pins der schnittstelle eine echte RS232 notwendig.

Gruß
Dino
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)