|
|
AVR Net-IO Bausatz von Pollin[Bearbeiten] EinleitungHier steht eine Beschreibung des Pollin Bausatzes AVR-NET-IO. Best.Nr. 810 058 Eine Liste von Features: Ethernet-Platine mit ATMega32 und Netzwerkcontroller ENC28J60. Die Platine verfügt über 8 digitale Ausgänge, 4 digitale und 4 ADC-Eingänge, welche alle über einen Netzwerkanschluss (TCP/IP) abgerufen bzw. geschaltet werden können. Technische Daten:
Maße (LxBxH): 108x76x22 mm. [Bearbeiten] HardwareDie Schaltung des AVR-NET-IO ist recht einfach:
Fast alle I/O Pins des ATmega32 sind irgendwo auf Anschlüssen herausgeführt. Entweder auf dem SUB-D Stecker, dem EXT oder ISP Wannensteckern oder den blauen Anschlussklemmen. Sie sind nicht(!) besonders geschützt, es finden sich zum Beispiel keine Schutzdioden für die Pins in der Schaltung. Die blauen Anschlussklemmen haben eine Nut und eine Feder mit denen man sie zusammenstecken kann, dadurch ist das Anlöten wesentlich leichter und sie stehen auch sauber in der Reihe (nicht wie auf dem Foto; die Anschlussklemmen lassen sich sauber durch einen Steg zusammenstecken). [Bearbeiten] ErweiterungsplatineSeit Januar 2010 gibt es auch eine Erweiterungsplatine. Add-on für AVR-NET-IO-Board Best.Nr. 810 112 Diese Platine erweitert das NET-IO um:
Ausserdem soll es die 3.3V Versorgung der Hauptplatine verbessern. Dazu sollte man einen 4,7 kOhm Widerstand parallel zu R2 schalten. Sonst beträgt die Ausgangsspannung nur ca. 2,8V. (Tipp aus dem u.g. Thread im Forum) Um bei einem Neuaufbau parallele Widerstände zu vermeiden, sollten folgende Änderungen auf dem Addon-Board gemacht werden:
ISP-Anschluß nicht vollständig durchgeschleift. Keine Verbindung der RESET-Leitung zwischen ISP und ISP1. Erste Erfahrungsberichte im Forum http://www.mikrocontroller.net/topic/161354 [Bearbeiten] Hardware-Umbauten & -Verbesserungen
[Bearbeiten] Inbetriebnahme der Originalsoftware[Bearbeiten] EinleitungDie bei Auslieferung (Stand September 2008) in den ATmega32 gebrannte Firmware stellt sich manchmal recht zickig an. Es scheint dann die Netzwerk-Schnittstelle, ggf. auch die seriell Schnittstelle, nicht zu funktionieren. Falls es Probleme geben sollte, sollte man erst einmal einen Firmwareupdate versuchen. Dies geschieht über die serielle Schnittstelle mittels des Programmes NetServer (aktuelle Version 1.03, Februar 2010), die dem Bausatz beiliegt. Falls die serielle Schnittstelle ebenfalls nicht zugänglich ist, kann mit den im folgenden beschriebenen Schritten die Inbetriebnahme der Software möglich sein. Dazu benötigt man:
[Bearbeiten] Gelieferten ATmega32 richtig einstellenDie Fuses der gelieferten ATmega32s scheinen nicht immer mit den im Handbuch auf Seite 12 als erforderlich angegebenen Fuse-Einstellungen übereinzustimmen. Dies kann man mittels eines Programmers ändern. LFuse = 0xBF, HFuse = 0xD2. Das genaue Vorgehen hängt dabei vom verwendeten Programmer ab. Bei der Gelegenheit kann man ebenfalls eine Sicherheitskopie des ursprünglichen Flash-Inhalts und des EEPROMs anfertigen. Das EEPROM scheint die MAC-Adresse des Ethernet-Ports zu enthalten. Entgegen der Spezifikation im Handbuch von Pollin sollten die HFuses auf 0xC2 gesetzt werden, d. h. CKOPT-Fuse programmiert (dies ist in der Software Version 1.03 bereits vollzogen). Das sorgt für einen stabilen Betrieb des AVR-Oszillators im "full rail-to-rail swing"-Mode bei 16 MHz. Atmel garantiert ansonsten nur stabilen Betrieb bis 8 MHz. Siehe ATmega32-Datenblatt, Kapitel 8.4, Crystal Oscillator. [Bearbeiten] Funktionsfähige Konfiguration - AVR-ProgBenutzer von AVR-Prog können die nachfolgenden Einstellungen für die Lock- und Fuse-Bits verwenden. Hierbei handelt es sich um die ausgelesenen Einstellungen eines funktionsfähigen Controllers. Allerdings sollte, laut Handbuch des AVR-NET-IO-Boards, das Fuse-Bit EESAVE eigentlich gesetzt sein. Alternativ kann auch per avrdude die Einstellung getroffen werden: avrdude -c stk500v2 -pm32 -U lfuse:w:0xBF:m und avrdude -c stk500v2 -pm32 -U hfuse:w:0xC2:m Anschließend muß noch der Bootloader und die Firmware aktualisiert werden (siehe Handbuch AVR-NET-IO-Board Seite 12 Punkt 3). [Bearbeiten] PC Konfiguration[Bearbeiten] PC normalerweise nicht im 192.168.0/24 SubnetzBetreibt man den PC normalerweise nicht im 192.168.0/24 Subnetz, muss er wie folgt umkonfiguriert werden. Den PC vom normalen Netzwerk abstecken. Zur Umkonfiguration dazu bei Windows XP in der Systemsteuerung Netzwerkverbindungen aufrufen und die lokale LAN-Verbindung markieren. Dann in der rechten Leiste Einstellungen dieser Verbindung ändern aufrufen. Es erscheint der Dialog Eigenschaften von <Verbindungsname>. In der Liste im Dialog zu Internetprotokoll (TCP/IP) gehen. Ein Doppelklick auf den Eintrag öffnet den Eigenschaften von Internetprotokoll (TCP/IP) Dialog. In diesem Dialog Folgende IP-Adresse verwenden: auswählen und zum Beispiel IP-Adresse: 192.168.0.100 eingeben. Alle geöffneten Dialoge nacheinander mit OK schließen. Alternativ bietet sich das Umprogrammieren des Boards über die serielle Schnittstelle an. Die Werte für IP-Adresse, Netzmaske und Standard-Gateway werden mit den dokumentierten SETxx-Befehlen geändert, das Board neu gestartet und ans vorhandene Netzwerk gesteckt. Im EEPROM sind folgende Werte vorprogrammiert: [Bearbeiten] PC bereits im 192.168.0/24 SubnetzIn diesem Fall muss man prüfen, ob die IP-Adresse 192.168.0.90 bereits im Subnetz verwendet wird. Ist dies der Fall, muss das verwendete Gerät mit dieser IP vorübergehend aus dem Subnetz entfernt werden. Es sei denn, dabei handelt es sich um den PC. In diesem Fall muss er wie zuvor umkonfiguriert werden. Ansonsten kann der unverändert im Netz verbleiben. Dem AVR-NET-IO gibt man eine neue, zuvor unbenutzte Adresse (siehe unten). Dann kann das abgekoppelte Gerät wieder angeschlossen werden, beziehungsweise der PC zurückkonfiguriert werden. [Bearbeiten] AVR-NET-IO anschließenMusste man den PC umkonfigurieren, so werden jetzt nur der PC und der AVR-NET-IO über Ethernet miteinander verbunden. Je nach Ethernet-Kabel benötigt man dazu einen Switch/Hub oder nicht. Musste man den PC nicht umkonfigurieren, so kann man den AVR-NET-IO wie einen normalen Rechner an das vorhandenen Netz anschließen. Zusätzlich schließt man die serielle Schnittstelle des AVR-NET-IO an den PC an. [Bearbeiten] Firmware 1.03 einspielenLaut Handbuch sollte der AVR-NET-IO jetzt über Ethernet funktionieren. Ebenso sollte er über die serielle Schnittstelle und ein Terminalprogramm konfigurierbar sein. Beides ist offensichtlich im Auslieferungszustand selten der Fall. Auch wenn sich Pollins NetServer Software nicht mit dem AVR-NET-IO verbinden lässt, so ist sie jedoch in der Lage eine neue Firmware 1.03 einzuspielen. Das Vorgehen ist im Handbuch auf Seite 12 beschrieben. NetServer präsentiert dabei ein paar einfache Anweisungen denen man folgen sollte. [Bearbeiten] AbschlussJetzt sollte sich die NetServer Software mit dem AVR-NET-IO über Ethernet verbinden lassen. Dies macht es wiederum möglich, den AVR-NET-IO mit einer anderen IP-Adresse zu versehen. Will man den AVR-NET-IO in einem anderen Subnetz betreiben kann man dies jetzt einstellen. Nachdem man die IP-Adresse neu eingestellt hat, muss man den PC zurückkonfigurieren und kann dann sowohl den AVR-NET-IO und den PC zusammen betreiben. [Bearbeiten] Bekannte FehlerSiehe auch Hardware-Umbauten und Verbesserungen
[Bearbeiten] Andere Software für den Client-PC[Bearbeiten] NetIOLibIn C# geschriebene Bibliothek zur Ansteuerung der Platine im Orginalzustand. Inkl. Beispielsoftware und Quellcode (GNU GPL)
[Bearbeiten] ControlIOEinfache Bibliothek zur Ansteuerung mit Originalfirmware. http://www.mikrocontroller.net/topic/149695 [Bearbeiten] Andere Software statt der Originalsoftware von PollinDie Umrüstung auf einen Webserver durch Austausch der Software (und ev. des ATmega32) bietet sich an. Kleiner Hinweis dabei: wenn zum Flashen ein ISP-Adapter verwendet wird, diesen unbedingt vor dem Start der neuen Software abziehen! Der ISP arbeitet nämlich über dieselbe SPI-Schnittstelle über die auch der ENC28J60 angesteuert wird. Ein eventuell noch angeschlossener, wenn auch passiver ISP-Adapter stört diese Kommunikation, d.h. das Programm an sich scheint zu laufen, aber die Ethernet-Schnittstelle funktioniert nicht. [Bearbeiten] Bascom Version von Hütti(Quelle: http://bascom-forum.de/index.php/topic,1781.45.html ) dort am Ende der Seite. [Bearbeiten] Ben's Bascom Quellcode(Quelle: http://members.home.nl/bzijlstra/software/examples/enc28j60.htm ) Muss aber für Bascom 1.11.9.3 angepasst werden, siehe Code von Hütti ! [Bearbeiten] U. Radigs WebserverAngepasster Sourcecode von U.Radig: http://www.mikrocontroller.net/attachment/40027/Webserver_MEGA32.hex oder selbst anpassen: Ändere im File ENC28J60.H #define ENC28J60_PIN_SS 3 #define ENC28J60_PIN_CS 4 (Quelle: http://www.mikrocontroller.net/topic/109988#988386) Temporären Dateien (*.d, *,lst,*.o) vorher im Verzeichnis löschen make clean, damit neu compiliert wird. IP: 192.168.0.99 Den orginal SourceCode gibt's übrigens hier:http://www.ulrichradig.de/home/index.php/avr/eth_m32_ex Bei den Fuses BOOTRST ausschalten, da die Software keinen Bootloader enthält. Wer gerne als Link-LED die grüne nutzen möchte (U.Radig-Source) enc28j60.c Zeile 150 "enc28j60_write_phy(ENC28J60_PHY_PHLCON, 0x347A) Wert 0x347A in 0x374A ändern (Quelle: http://www.mikrocontroller.net/topic/109988#994943) IP: 192.168.1.90 Weiterentwicklung des Radig-Codes von RoBue: Test: http://avrboard.eluhost.de/ (Quelle: Bei der Ver 1.5 sind die Ports PD2+3 fürs 4bit LCD (Ext.) vertauscht ! Gruß B.P [Bearbeiten] Simon Ks Webserver (uip-Stack)Angepasster Sourcecode von Simon K: http://www.mikrocontroller.net/attachment/39939/uWebSrv.zip
IP: 192.168.0.93:8080 [Bearbeiten] Ethersex Serverhttp://www.ethersex.de - Einfach für atmega32 compilieren und funktioniert. Oder hier ein Firmware Image passend für das Pollin Net-IO mit eingebautem Webserver und Beispieldateien im Flash bauen lassen und flashen (firmware-builder). Einfacher geht´s nimmer. :-) [Bearbeiten] Etherrape Serverhttp://www.lochraster.org/etherrape/ ist in jedem Fall hier auch zu erwähnen zumal es sich beim etherrape um das Ursprungsprojekt von ethersex handelt. Es scheint aber bei der Weiterentwicklung wenig zu passieren. Ausführliche Dokumentation findet sich unter http://wiki.lochraster.org/wiki/Etherrape [Bearbeiten] Mini SRCP Server (kommerziell, Closed-Source)Damit wird die Platine zu einer Modellbahnsteuerung, die über das Netzwerkprotokoll SRCP mit verschiedenen Programmen gesteuert werden kann. Infoseite zur Hardware und das zugrundeliegende Digitalprojekt. [Bearbeiten] AvrArtNodeHiermit kann die Platine zu einem Art-Net Node werden, mit dem sich ein DMX-Universe über Ethernet übertragen lässt. Basiert auf den Quellen von Ulrich Radig. Dokumentation: Art-Net-Node für 25 Euro [Bearbeiten] Webserver von G. MenkeEin Webserver (basierend auf den Sourcen von U. Radig), der so angepasst ist, dass alle Ein- und Ausgänge wie bei der originalen Pollin-Software genutzt werden können (8xDIGOUT, 4xDIGIN, 4xADIN). Der Webserver kann daher direkt auf das Net-IO geladen werden. Im ZIP-File sind ein ReadMe und alle C-Sourcen enthalten. Download: Webserver mit passender IO [Bearbeiten] OpenMCPTolles Projekt, welches viele Features bietet und stabil läuft. Hervorzuheben ist die Übersichtlichkeit der Programmteile/Module und die vielleicht nicht ganz komplette Dokumentation. Man merkt das viel Arbeit und Liebe in diesen Projekt steckt. Herausgekommen ist dabei eine einfach zu handhabende Entwicklungsumgebung. Anfänger können, dank des gut durchdachten CGI-System welches sich um alle wichtigen Sachen kümmert, leicht eigene CGI implementieren. Alle Ausgaben erfolgen nur mit printf über die Standardausgabe und werden automatisch richtig per Netzwerk übertragen, dadurch ist es auch für den Anfänger recht gut geeignet, da man sich nicht mit der Netzwerkprogrammierung auseinander setzen muss. Der Autor stellt zwei über das Internet erreichbare Testboards bereit unter http://www.neo-guerillaz.de:81 und http://www.neo-guerillaz.de:82 die beide unter OpenMCP laufen, je auf einen AVR-NETIO mit einem ATmega644 und dem eigentlichen Board mit einem ATmega2561. Zusätzlich ist gerade eine Version für das myAVR in Arbeit die schon ordentlich Fortschritte macht. [Bearbeiten] ENC28J60 I/O-Webserver von Thomas HeldtEin Modul-Webserver (Softwarekompatibel zum Pollin Webserver), der durch div. Module erweitert werden kann, Software in Bascom basierend auf dem Code von Ben Zijlsta wurde erweitert und angepasst: [Bearbeiten] Siehe auch
|