|
|
AVR Net-IO Bausatz von PollinHier steht eine Beschreibung des Pollin Bausatzes AVR-NET-IO. Best.Nr. 810 058, oder als aufgebautes Fertigmodul, Best.Nr. 810 073. Einige 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. AVR-NET-IO (links) mit zusätzlicher SUB-D Anschlussplatine (rechts, nicht im Lieferumfang)und Add-On-Board (oben, mit aufgelötetem RFM12-433-Modul, beides nicht im Lieferumfang). Ebenso ist zusätzlich ein nicht im Lieferumfang enthaltener kleiner Kühlkörper auf einem der Spannungsregler montiert und die Schraubklemmen zur Stromversorgung wurden durch Buchsen ersetzt. [Bearbeiten] Technische Daten
Maße (L×B×H): 108×76×22 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. Eine Schutzbeschaltung gibt es nicht. 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. [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:
Stand Feb. 2011: R2 wird mit 2,2kΩ und R3 wird mit 3,6kΩ ausgeliefert. Somit werden die 3,3 V richtig erzeugt. R19 hat 470Ω. Der ISP-Anschluß ist nicht vollständig durchgeschleift, es besteht keine Verbindung der RESET-Leitung zwischen ISP und ISP1 (Abhilfe: Drahtbrücke einlöten, Quelle). Stand Nov. 2011: bei mir ist die RESET-Leitung korrekt zw. ISP und ISP1 verbunden. Es gibt jetzt auch einen R24 (470Ohm) und R11 (1KOhm), der in der bei mir mitgelieferten Bauanleitung fehlt, in der zum Download (V1.1) angebotenen aber drin steht. Es wird immer noch der falsche Q1 BC548C (NPN) mitgeliefert. Das Schaltsymbol für einen PNP ist richtig im Schaltplan gezeichnet. Stand Dez. 2011: R24 (470Ohm) sollte mit 0 Ohm ersetzt
und R11 (1KOhm) völlig weggelassen werden! 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.0/24 SubnetzBetreibt man den PC nicht im 192.168.0.0/24 Subnetz, muss er wie folgt umkonfiguriert werden, oder die IP Adresse des Boards wird entsprechend angepasst. ( Siehe Handbuch Seite 14ff. Das ist meist sinnvoller und auch einfacher. ) Den PC vom normalen Netzwerk abstecken[1]. 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. Anmerkung von bitman: [1] Dies ist spätestens ab Windows XP nicht mehr notwendig, wenn das Netz 192.168.0.0/24 noch frei ist. Dann kann man einfach den Client zusätzlich in diesem Netzwerk zusätzlich einbinden über Einstellungen/Netzwerkverbindungen/Lanverbindung/Eigenschaften/TCP-IP/Eigenschaften/Erweitert/IP-Adresse hinzufügen. Es werden dann eben mehrere IP-Adressen an den NIC gebunden.
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.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. Wenn sich nach dem scheinbar erfolgreichem Einspielen der Firmware, später nichts tut, so sollte die Firmware mit gesetztem "FailSafe" in der mitgelieferten NetServer-Software nochmals Eingespielt werden. [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) Links gehen nicht: DLL: Download-Link Source: Download-Link [Bearbeiten] ControlIOEinfache Bibliothek zur Ansteuerung mit Originalfirmware. http://www.mikrocontroller.net/topic/149695 [Bearbeiten] JAVA LibEinfache Java-Bibliothek zur Ansteuerung mit Originalfirmware. http://son.ffdf-clan.de/?path=forumsthread&threadid=611 [Bearbeiten] App NetIOFrei verfügbare App für Windows Mobile zur Ansteuerung mit der Orginalsoftware. Das HTC HD2 wird damit zur Fernsteuerung für das AVR Net-IO Board. http://www.heesch.net/netio.aspx [Bearbeiten] PHPPHP Klasse zur Ansteuerung mit der Originalfirmware. (Opensource Lizenz) http://blog.coldtobi.de/1_coldtobis_blog/archive/298_pollin_net-io_php_library.html PHP Funktionen zum Ansteuern der Originalfirmware. (Free for All Lizenz) http://defcon-cc.dyndns.org/projects/mikrocontroller/netio.php [Bearbeiten] NET-IO ControlEine Application für das Android Betriebssystem zur Steuerung des AVR Net-IO Boards Team: E2000-Team [Bearbeiten] iPhone[Bearbeiten] NetIOSchöne iPhone Fernbedienung für das Board. Konfigurierbar über eine JSON Datei. (Senden, Auslesen, Makros) Hinweis:
[Bearbeiten] AVR Net IOUpdate 15.12.2011: Die Neue Version 1.3 ist seit gestern im AppStore. Fehlerkorrekturen und ein robusteres Handling machen die App nun zur universellen AVR-Net-IO-Steuerung. Mit der iPhone App AVR-Net-IO kann das Board ferngesteuert werden. Die Fernsteuerung umfasst in der Version 1.1 folgende Funktionen:
[Bearbeiten] E2000 - LogikAnwenderfreundliche Logik-Software vom Elektronik2000.de zur Steuerung des AVR-NET-IO über den Computer oder durch ein Firmware-Update auch autark. Version 2.0a6 beinhaltet eine Firmware, durch die das NET-IO mit einem Firmwareupdate in einen autarken Betrieb versetzt werden kann. Dazu ist ein ATMega644 notwendig. Durch diese Erweiterung ist es möglich, eine Logikschaltung in das Board zu schreiben, welche das Board dann simuliert. Es unterstützt außerdem ein Webinterface, eine TelNet-Schnittstelle und eine Live-View-Ansicht mit der es möglich ist, live zu sehen, wie der Status des Boards zu einem bestimmten Zeitpunkt ist. Die aktuelle Systemzeit wird aus dem Internet ermittelt. Durch ein Erweiterungsboard von Elektronik2000.de ist es in Zukunft möglich, das Board ohne Internet laufen zu lassen durch eine RTC (RealTimeClock). Auf dieser Erweiterung wird auch ein EEPROM integriert sein, um Firmware-Updates über Netzwerk einzuspielen, damit kein direkter Eingriff in die Hardware notwendig ist. Diese Erweiterung bietet außerdem die Anbindung an das E2000-Bus-System. Das Designen von Schaltaufgaben wird in diesem Programm grafisch dargestellt. Außerdem besitzt die Software (in der Version für die Pollin Firmware) einen Kennlinienschreiber und ein Webinterface. Team: E2000-Team [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. Die Software belegt im Moment (Stand Juli 2010) ca. 55 Kb im Flash, so dass man das Board mit einem grösseren µC (z.B. ATMega644) aufrüsten 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 |