MicroWebServer

Aus Wiki

Dies ist eine alte Version. Zeitpunkt der Bearbeitung: 16:12, 22. Mai 2008 durch Sk (Diskussion | Beiträge).
Wechseln zu: Navigation, Suche

Vorlage:Project-features

Inhaltsverzeichnis

Einleitung

Der MicroWebServer ist ein kleiner Webserver auf Basis eines ENC28J60 von Microchip und eines ATMega168 von Atmel.

Der MicroWebServer wurde mit dem Hintergedanken entwickelt, eine möglichst kleine Entwicklungsplattform für ENC28J60-Treiber zu schaffen, die auch danach noch sinnvoll eingesetzt werden kann. Dafür wurden diverse Pins des ATMega168 auf eine Pfostenleiste gelegt, sodass man eine Grundplatine erhält, die um eine externe Platine mit beispielsweise Relais erweitert werden kann. Die Möglichkeiten an dieser Stelle sind sehr vielfältig.

Hardware

Platine

Wie man sieht, ist das Layout also sehr allgemein gehalten, sodass es möglich ist die Platine vielseitig zu verwenden. Trotzdem ist das Layout durch die Verwendung von SMD Bauteilen und geringen Isolate-Werten zur Massefläche kompakt geworden. Die Gesamtfläche der Platine beträgt 38x31mm². Die Platine kann einzeln oder in einem Bausatz von dem IT-WNS Shop bezogen werden. Alternativ lassen sich die Bauteile aber auch von CSD-Electronics beziehen. Die Platine muss dann aber selbst hergestellt werden.

Spannungsregler

Auf der Platine befindet sich auch ein 3,3V Spannungsregler (LM1117). Bei einem durchschnittlichem Gestamtstromverbrauch von etwa 150mA und bei etwa 1,1V Dropout Spannung, die bei diesem Strom entsteht, habe ich die maximale Eingangsspannung auf 7V und die optimale Eingangsspannung auf 5V festgelegt. Die minimale Eingangsspannung wäre in diesem Falle etwa 4,4V.

Achtung
Die 3,3V, die von dem Spannungsregler erzeugt werden, liegen auch am 20-poligen Pfostenstecker an. Über den Pfostenstecker sollte man auf der 3,3V Leitung nicht mehr als etwa 350mA bei einer Eingangsspannung von 5V fließen lassen. Die Verlustleistung des Reglers liegt hier schon bei etwa 0,6W, was angesichts der kleinen Kühlfläche hohe Temperaturen erzeugen kann. Sollte die Eingangsspannung sogar höher als 5V sein, ist dringend davon abzuraten einen Strom in dieser Höhe über den Pfostenstecker zu beziehen.

Ethernet-Buchse

Der IT-WNS Shop liefert mehrere verschiedene Versionen des Bausatzes aus, da es zeitweilig Probleme mit der Beschaffung der vorgesehenen Ethernet-Buchse gab. Da diese neue Buchse unter anderem auch ein anderes Pinout hat, sind mehrere Versionen der MicroWebServer-Platine im Umlauf. Desweiteren ist die Belegung der Leuchtdioden an selbigem nicht immer gleich, sodass man entweder unterschiedliche Farben für die Sende-/Empfangsaktivität bzw. Ethernet Link hat, oder das Initialisierungswort des ENC28J60 so anpasst, dass die Funktion der Leuchtdioden getauscht wird. (Siehe MicroWebServer/FAQ)

Die verwendete(n) Ethernet-Buchse(n) hat/haben einen Ethernet-Übertrager integriert, was das Layout um einiges verkleinert hat. Dieser Übertrager ist nötig um das Potential des MicroWebServers von dem Potential auf den Netzwerkleitungen zu trennen. (Galvanische Trennung). In der ersten Version des MicroWebServers war dies die "Magjack SI-60024-F" Buchse. In den neueren Versionen wird entweder die "Halo FastJack™ HFJ11-2450E-L12RL" oder die "ERNI Modular Jack M3D01-203199" Buchse verwendet.

Pfostenleiste

Der MicroWebServer bietet eine 20-polige Pfostenleiste um die 14 darauf gelegten Ein-/Ausgänge sauber mit externer Peripherie zu verbinden. An diesem 20-poligen Steckverbinder befinden sich neben 2xGND, 2xEingangsspannung und 2x3,3V, wie gesagt, die 14 Pins des ATMega168. Alle dieser 14 Pins können als normale Ein- oder Ausgänge geschaltet werden. Manche dieser Pins besitzen aber auch Spezialfunktionen, wie zum Beispiel ein integriertes I²C Modul (Keine Pull-Ups auf der Platine vorhanden!), 6 analoge Eingänge die auf den internen 10-Bit AD-Konverter gehen (Kondensator an AREF ist auf dem Layout vorgesehen. Typisch: 100nF. Als Referenz können die 3,3V aus dem Spannungsregler, sowie 1,1V intern gewählt werden.), sowie diverse Output-Compare Einheiten um Signalformen wie beispielsweise PWM zu erzeugen. Jeder der 14 Pins ist zudem noch fähig einen Pin-Change-Interrupt auszulösen.

Software

Der UIP-Stack implementiert die Netzwerkfähigkeiten der höherliegenden Schichten. (insgesamt IP, ARP (Echo), ICMP, UDP, TCP). Zur Demonstration des Stacks ist bereits eine kleine Webserver-Applikation aufgesetzt, mit der sich die 14 I/Os an der Pfostenleiste an oder ausschalten lassen.

Zusammenbau

Was wird benötigt

  • Lötkolben
  • Fortgeschrittene Löterfahrung (0805-SMD, TQFP44)
  • Atmel AVR Programmiergerät mit 6poligem Stecker und Kompatibilität für 3,3V Zielspannung
  • Spannungsquelle 5V - 7V DC mit mindestens 150mA.

Inbetriebnahme

Legen sie Nachdem an die 2 polige Stiftleiste eine Spannung von etwa 5V - 7V DC angelegt wurde und ein Netzwerkkabel eingesteckt wurde, sollte eine grüne Leuchtdiode an der Ethernet-Buchse leuchten. Dies bedeutet, dass ein Ethernet Link hergestellt ist. Auf der grünen Leuchtdiode wird außerdem die Empfangsaktivität des Ethernet-Chips, durch ein kurzes Erlischen der Leuchtdiode dargestellt. Die andersfarbige Leuchtdiode an der Buchse leuchtet bei Sendeaktivität.

Als nächstes muss der Mikrocontroller des Der MicroWebServer kann nur konfiguriert werden, wenn eine AVR-GCC (WinAVR für Windows) Compiler-Umgebung existiert. Diese muss installiert werden, falls Modifikationen an der Konfiguration oder an der Stack-Applikation vorgenommen werden sollen. Ansonsten kann auch die beigelegte (bereits kompilierte) HEX-Datei direkt in den Flash-Speicher gebrannt werden. Der MicroWebServer läuft dann auf der Standardkonfiguration (siehe #Konfiguration).

Konfiguration

Falls sie nicht die beigelegte HEX Datei direkt programmiAls nächsten Schritt muss die Konfiguration des MicroWebServers überprüft werden Falls Sie den Sourcecode verwenden, vergessen Sie nicht Anpassungen an der IP-Adresse, Netzmaske und dem Default-Router vorzunehmen. (Main.c) Die MAC Adresse des Gerätes lässt sich im ENC28J60-Treiber ändern (Hardware/Enc28j60.h). Und der Port des Webserver lässt sich in Net/TcpApps/HttpD.h ändern. Standardmäßig sind diese Werte wie folgt eingestellt: MAC-Adresse: 00:03:6F:55:1C:C2 IP-Adresse: 192.168.0.93 Netzmaske: 255.255.255.0 Default-Router: 192.168.0.254 Weberver-Port: 8080

Vergessen Sie beim Programmieren des ATMega168 nicht die Fuse-Bits so anzupassen, dass als Takt-Signal ein externer Oszillator dient. (Dieser ist im ENC28J60 integriert und gibt den Takt an den ATMega168 über den Pin7 (XTAL1) aus. Desweiteren empfehle ich, den Brown-Out-Detector auf 2,7V einzustellen. Alle anderen Fuse-Bits werden auf der Default-Einstellung gelassen. Hexadezimal ausgedrückt (zB für avrdude) entspricht das: LFuse: E0 HFuse: DD


Falls noch Fragen auftauchen ist eine Kontaktaufnahme erwünscht :-)

Zum Schluss noch eine FAQ und ein Bild des Webinterfaces.

Persönliche Werkzeuge
Andere Sprachen