Forum: Mikrocontroller und Digitale Elektronik Ethernet Anbindung


von flying12 (Gast)


Lesenswert?

Hallo liebe Community,

Habe gerade mit einem Schulprojekt gestartet:
Lichtsteuerung über das LAN

Dazu benötigen wir einen µC oder einen µC + einen weiteren Baustein mit 
dem wir folgendes realisieren können:

Ethernet Anbindung
USART / RS232 Schnittstelle
I2C Bus
25 I/O Pins

In der Schule haben wir bis jetzt nur mit dem Atmega16 gearbeitet und 
für diesen auch ein eigenes Board.

Wie realisiert man dies nun am besten?
(Vor allem für Einsteiger wie uns)

Für uns ist auch wichtig, dass wir hier ein eigenes System aufbauen und 
nicht ein fertiges Nutzen (Stichwort Raspberry Pi)

Bis jetzt sind wir auf Ethernet Controller wie den ENC28J60 gestoßen
Atmel µC wie den AT32UC3C164C
und die PIC18F97J60 FAMILY

Freue mich auf eure Inputs
LG flying12

von Timmo H. (masterfx)


Lesenswert?

Vielleicht arduino mit Ethernet Shield. Man könnte anstatt lan auch wlan 
über nen esp8266 machen aber das ist evtl nicht die Aufgabe.
Wenn ihr unbedingt selbst bauen wollt, dann nimmt zumindest gängige 
Ethernet Controller wie z.B. auf den Shields verwendet werden oder vom 
Pollin NetIO.

: Bearbeitet durch User
von Max D. (max_d)


Lesenswert?

Also wenn man (W)LAN machen will, dann braucht man ja auch das ganze 
DHCP und Co. Gedöns. Da tut es verdammt gut wenn das jemand für einen 
selber erledigt hat.
Beim ESP8266 ist das in dem SDK enthalten, beim ENC28J60 müsstet ihr 
halt sehen woher ihr die Implementation nehmt (gibt sicher was für).
Alternativ seid ihr faul und nehmt nen raspi, der bringt für alles 
fertige Treiber mit und hat auch gleich ein OS, das diese korrekt 
verwaltet.

von Dauergast (Gast)


Lesenswert?

Auf Euer Atmega16-Board paßt ein 1284P, der zusammen mit einem ENC28J80 
und µIP/lwIP Euer Schulprojekt durchaus realisierbar erscheinen läßt, 
und auch der Anforderung "eigenes System" einigermaßen nahe kommt.

von Frank K. (fchk)


Angehängte Dateien:

Lesenswert?

Das einfachste für LAN ist das hier:
http://www.lantronix.com/products/xport/
Da kommt am Ende eine serielle Schnittstelle raus, an die Ihr Euch 
ranhängt. Das ganze Web/Netzwerk-Zeug wird im XPort gemacht. Ist also 
was für Dumme oder Eilige, kostet aber auch einiges.

Die mit Abstand billigste Lösung ist der PIC18F67J60. Schaltung gibts 
hier
https://www.olimex.com/Products/PIC/Proto/PIC-P67J60/
Software gibts von Microchip, alles da, wenn auch ein wenig 
unübersichtlich.

Nachteil: Lochraster ist nicht. Das ist ein Chip mit 0.5mm Rastermaß. 
Lässt sich problemlos löten, wenn man das richtige Flussmittel (Gel, 
nichts flüssiges) hat, erfordert aber eine professionell gefertigte 
Leiterplatte. Mit Selberätzen macht Ihr Euch nur unglücklich. Das 
Ergebnis kann dann wie auf den Fotos aussehen.

ARM oder AVR32 ginge auch, hat für Euch aber keine Vorteile, sondern nur 
den Nachteil, dass Ihr neben dem Prozessor mit Ethernet-Controller auch 
noch einen extra PHY (den Analogteil der Ethernet-Anbindung) braucht, 
und schon habt Ihr zwei Chip im 0.5mm Raster, zwei Quarze und noch 
einiges mehr an Schaltungsaufwand. Im PIC ist das alles eingebaut, das 
ist viel weniger Hardware-Aufwand.

Der ENC28J60, der oft mit AVRs verwendet wird, ist im Prinzip das 
gleiche, was als Peripherieeinheit im PIC verbaut ist. Mit dem 
Unterschied, dass der PIC direkt per Speicherzugriff auf die 
Ethernet-Register und das RAM zugreifen kann und nicht durch das 
SPI-Nadelöhr gehen muss, was natürlich sehr umständlich ist und bremst. 
Der Schaltungsaufwand ist auch deutlich höher, vor allem, wenn der AVR 
mit 5V und der ENC mit 3.3V läuft. Der einzige Vorteil liegt daran, dass 
Ihr hier keine geätzte Platine braucht, sondern ein Lochrasteraufbau 
möglich ist.

fchk

: Bearbeitet durch User
von Georg G. (df2au)


Lesenswert?

Solche Projekte laufen meist nicht auf Anhieb. Und dann kommt sofort die 
Frage "Hardware oder Software? Wer hat gepfuscht?". Wenn dann noch 
Routine fehlt, kommt schnell Frust auf.

Ich würde eine fertige Hardware nehmen und eine vorhandene Software nach 
und nach ändern. So hat man schnell ein Erfolgserlebnis und wird 
motiviert. Wenn es dann läuft, kann man immer noch auf die eigene 
Hardware umstellen.

Den ATMega16 vergiss mal schnell wieder, nimm dir einen ATMega1284. Dann 
hast du eine Engstelle weniger.

Als Hardware würde ich den AVR NETIO von Pollin nehmen. Für die Hardware 
gibt es diverse Software als Vorlage (mehr oder weniger komplex). Der 
Radig Webserver ist imho hinreichend fehlerarm und noch überschaubar, 
also eine gute Basis für eigene Entwicklungen.

von Dauergast (Gast)


Lesenswert?

Georg G. schrieb:
> Als Hardware würde ich den AVR NETIO von Pollin nehmen

Für das NETIO fällt mir so gar keine Existenzberechtigung mehr ein ...

http://www.ti.com/tool/EK-TM4C1294XL

- gleicher Preis wie NETIO
- 1M Flash, 256k RAM, Eth 10/100, viel mehr I/O als NETIO
- Programmer/Debugger on Board
- Arduino-like oder "richtige" IDE

von Noch einer (Gast)


Lesenswert?

> ein eigenes System

Das ist heutzutage nicht mehr so einfach. Es gibt ja nur mehr 3 
Möglichkeiten. Ein Chip mit allem drauf. Oder 2 Chips plus eine fertige 
Library. Oder eine Linux-Platine plus ein ausgereiftes Betriebssystem.

Komponenten, mit denen man so ein IO-Teil selbst entwickeln kann, werden 
nicht mehr angeboten.

von Felix A. (madifaxle)


Lesenswert?

Auf dem Arduino Ethernet Shield werkelt ein W5100. Der lässt sich 
einfach über SPI ansteuern, macht aber etwas Programmieraufwand. Für den 
Fall, dass ihr den ATmega16 weiterhin nutzen wollt.
Von diesem Hersteller gibt es ebenfalls fertige UART to LAN Wandler, die 
außerdem mal viel günstiger sind, als der XPort.

: Bearbeitet durch User
von Dauergast (Gast)


Lesenswert?

flying12 schrieb:
> eigenes System

IMO kommen wir hier ohne Erläuterung des Begriffs "eigenes System" und 
Darlegung der Lernziele nicht wirklich weiter :)

von flying12 (Gast)


Lesenswert?

Vielen Dank mal für die ganzen Antworten werde sie mir jetzt mal alle 
durchschauen.

Nochmal ein Paar Details zum Projekt:

Ist ein Schulprojekt mit 2 Wochenstunden zu zweit. (+Freizeit)
Haben das ganze Schuljahr zeit jedoch sollte im Halbjahr (Februar) 1. 
Ergebnisse zu präsentieren sein.

Zum Thema eigenes System:
Projektanforderung ist in erster Linie eher auf Hardware bezogen.
(eigener Print usw. )
Lichtsteuerung soll an einem Modelhaus mit LEDs aufbaut werden.
Dies lässt sich über nen LED Ansteuer Chip sehr leicht realisieren. Wenn 
wir nen Rasberry Pi verwenden, bleibt uns dort an eigener Hardware nur 2 
dieser Chips mit I2C Anbindung und eventuell wenn wir nicht die I/O Pins 
des Rasperrys benutzen noch 2 I/O Chips die dann wahrscheinlich 
ebenfalls am I2C Bus hängen.
An der USART hängt auch nur ein fertiges GSM Modul.

Deshalb wollten wir den µC Controller Teil + LAN Anbindung auch selbst 
realisieren.

LG
flying12

von Georg G. (df2au)


Lesenswert?

flying12 schrieb:
> Projektanforderung ist in erster Linie eher auf Hardware bezogen.
> (eigener Print usw. )

Könnt ihr gute zweiseitige Platinen mit Durchkontaktierung machen? Die 
modernen Chips haben durchweg Minigehäuse mit engen Abständen. Oder 
wollt ihr nur das Layout selbst machen und dann (in China) fertigen 
lassen?
Für THT oder gar Steckbrett ist das Angebot sehr begrenzt.

von Dauergast (Gast)


Lesenswert?

flying12 schrieb:
> Ist ein Schulprojekt mit 2 Wochenstunden zu zweit. (+Freizeit)
> Haben das ganze Schuljahr zeit jedoch sollte im Halbjahr (Februar) 1.
> Ergebnisse zu präsentieren sein.
> Projektanforderung ist in erster Linie eher auf Hardware bezogen.
> (eigener Print usw. )

Realistisch bleibt da wohl nur ein Atmega1284P (wg. Eurer Vorkenntnisse 
mit Atmega16) mit ENC28J80 (wg. 
Steckbrett/Lochraster-Prototyp-Tauglichkeit) und µIP (wg. Steuerung über 
http zur Vermeidung zusätzlichen Aufwandes für spezielle 
Bediensoftware).

von Sebastian W. (wangnick)


Lesenswert?

Hallo Flying12,

flying12 schrieb:
> Dazu benötigen wir einen µC oder einen µC + einen weiteren Baustein mit
> dem wir folgendes realisieren können:
>
> Ethernet Anbindung
> USART / RS232 Schnittstelle
> I2C Bus
> 25 I/O Pins
>
> In der Schule haben wir bis jetzt nur mit dem Atmega16 gearbeitet und
> für diesen auch ein eigenes Board.
>
> Wie realisiert man dies nun am besten?
> (Vor allem für Einsteiger wie uns)

Ich rate euch zu einem WIZ820IO oder WIZ550IO, z.B. von TME oder 
Watterott. Damit liegt ihr vom Schwierigkeitsgrad her zwischen einem 
Arduino-Ethernet-Shield und einem rohen W5500 (der aber für ein 
Hardware-Projekt natürlich auch interessant wäre).

In jedem Fall solltet ihr euch das Gefrickel mit ENC28J60 und AVR NETIO 
und die dabei wirklich aufwendige low-level-Programmierung des 
TCP/IP-Stacks ersparen, die Anwendungsprotokollebene von DHCP und DNS 
ist Aufwand genug.

LG, Sebastian

PS: Vielleicht ist für euch 
http://s.wangnick.de/doku.php?id=iot-basisstation interessant.

: Bearbeitet durch User
von Dauergast (Gast)


Lesenswert?

Sebastian W. schrieb:
> wirklich aufwendige low-level-Programmierung

Der Unterschied zwischen einem IP-Stack in Hardware oder als lib ist 
jetzt nicht sooo signifikant, die

> aufwendige low-level-Programmierung des TCP/IP-Stacks

hat sicherlich niemand ernsthaft in Erwägung gezogen.

von Georg G. (df2au)


Lesenswert?

Sebastian W. schrieb:
> das Gefrickel mit ENC28J60 und AVR NETIO

hat den Vorteil, dass es hier und an vielen anderen Ecken des Netzes 
etliche Leute gibt, die sich damit auskennen und helfen können. Auch das 
Angebot an funktionsfähiger Software für diese Lösung ist gut.

von Pandur S. (jetztnicht)


Lesenswert?

Ethernet Anbindung bedeutet nicht TCP/Ip wenn man einfach etwas sehen 
will. Wenn man sowieso bei Null anfaengt kann man nach ausgibigem 
Studium des Datenblattes irgend ein Packet ausgeben und auf einem 
identischen Device empfangen.

Falls irgend ein Packet dann geht, im Interrupt mode, bastelt man sich 
etwas mit variablem Blocklaengen und einem Buffer fuer mehrere Packete.
Dann schaut man sich mal ein dickes Buch ueber TCP/IP an und sendet ein 
IP Packet, ohne Sinn.

Wenn das dann geht wird die Zeit eh um sein, und man kann nachgaengig 
noch etwas drueber nachdenken was die oberen Schichten des TCP/IP 
Protokolles sollen, weshalb sie so sind usw.

Die oberen Schichten werden nicht mehr so spannend zu implementieren 
sein. Auf IP Ebene kommen dann noch BOOTP, ARP & RARP.

Ohne 32bitter macht's allerdings wenig Sinn. Der 29J60 ist eher sinnlos, 
die Anbindung sollte Parallel sein.

: Bearbeitet durch User
von Dauergast (Gast)


Lesenswert?

Oder D. schrieb:
> Ethernet Anbindung ...
> Wenn man sowieso bei Null anfaengt

Ein eigener Netzwerkstack, auf welchen Level auch immer, ist für ein 
Schulprojekt im gegebenen Zeitrahmen ebenso realistisch wie eine 
bemannte Marsmission in gleichen Zeitrahmen :)

> die Anbindung sollte Parallel sein.

Völlig unnötig für ein paar HTML-Seiten zum Licht Ein-/Ausschalten.

von flying12 (Gast)


Lesenswert?

Unser Lehrer hat uns mal nen Link zum Chip KSZ8851SNL/SNLI in Bezug auf 
den Atmega16 geschickt.

Noch zu den Prints:
Doppelseitig ohne Durchkontaktierung sind an der Schule fertigbar.
Ansonsten über Firmenkontakte sicher auch Prints mir Durchkontaktierung.

von Frank K. (fchk)


Lesenswert?

flying12 schrieb:
> Unser Lehrer hat uns mal nen Link zum Chip KSZ8851SNL/SNLI in Bezug auf
> den Atmega16 geschickt.

Dieser Chip erfordert ein SRAM-artiges Speicherinterface. Klar, man kann 
das in Software auf einem Mega16 nachbilden, aber empfehlenswert ist das 
nicht. Wenn Dir unbedingt bei AVR bleiben müsst, wäre ein 
Mega64/128/1281/2561/640/1280/2560 das Mittel der Wahl, weil der genau 
so ein External Memory Interface in Hardware eingebaut hat (Ports 
A,C,G). Buszugriffe sind über das Hardwareinterface mindestens Faktor 5 
schneller als per Bitfriemel-Software.

Die genannten AVRs sind aber alle im TQFP64 oder TQFP100 Gehäuse, der 
Ethernet-Controller ebenso. Plus: Wenn der AVR mit voller 
Geschwindigkeit laufen soll, braucht er 5V und damit am External Memory 
Interface zwei Pegelwandler wie zB 74LVCC4245. Also nochmals mehr 
Schaltungsaufwand. Gegenüber dem PIC18F67J60, der alles komplett in 
einem einzigen Chip hat, habt Ihr nur Nachteile.

> Noch zu den Prints:
> Doppelseitig ohne Durchkontaktierung sind an der Schule fertigbar.

Vergesst das. Bei TQFP-Chips wollt Ihr 0.3mm Vias haben, galvanisch 
durchkontaktiert, und Ihr wollt Lötstopplack beidseitig haben.

> Ansonsten über Firmenkontakte sicher auch Prints mir Durchkontaktierung.

Genau. Gibt ja genügend Angebote im Netz.

fchk

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
Noch kein Account? Hier anmelden.