Beiträge getagged ‘ethersex’

Ethersex auf AVR-NET-IO installieren mittels Pollin Atmel Evaluationsboard 2.0 und Windows

21 Februar 2010

Nachdem ich bereits zuvor auf das Pollin AVR-NET-IO mit der Originalfirmware zugegriffen habe und gezeigt habe, wie man mit PHP auf das AVR-NET-IO zugreift habe ich mich entschlossen, Ethersex darauf zu installieren (zu flashen).

Dazu habe ich mir bei Pollin das ATMEL Evaluationsboard V2.0.1 als Fertigmodul bestellt und am PC angeschlossen. Da ich einen modernen PC besitze verfügt dieser nicht mehr über einen physikalischen COM-Port, weshalb ich einen USB-COM-Adapter bei Amazon bestellt habe (mit Prolific IC), der aber nicht so recht funktionieren wollte. Wie sich später herausstellte, wird bei “einfachen seriellen Programmern” wie dem von Pollin das sogenannte “Bit Banging” benutzt, wofür die Software direkt auf die Hardware-Leitungen des COM-Ports (RS-232) zugreifen muss, was mit den meisten USB-COM-Adaptern aber nicht funktioniert.

Daher habe ich dann einen alten PC mit zwei physikalischen COM-Ports und (nostalgischem) Windows 98 verwendet.
Obwohl ich mit avrdude auf den Programmer zugreifen konnte wollte PonyProg dies nicht, so dass ich im weiteren nur auf die mir mögliche Programmierung mittels avrdude eingehen werde.

Aber alles der Reihe nach.

Anforderungen

Benötigt wird:

  • das Pollin ATMEL Evaluationsboard V2.0.1 (siehe oben, Netzteil nicht vergessen!)
  • ein Windows-PC mit physikalischem COM-Port
  • WinAVR (installiert mit Standard-Optionen)
  • ein serielles Kabel m/w (ich habe dieses verwendet, Roline serielles Kabel DB9 m/w 180cm)
  • ein ATmega32

Im weiteren Verlauf gehe ich davon aus, dass das ATMEL Evaluationsboard von Pollin mit einem Netzteil verbunden ist und für das AVR-NET-IO ebenfalls bereits ein Netzteil sowie ein Netzwerkkabel vorhanden ist.

Für das AVR-NET-IO verwende ich dieses ECO-Netzteil in 9V-Einstellung, was (mit ELV Energie Monitor gemessen) gerade einmal 2,2W an 230V aufnimmt, so dass es bei 24/7-Betrieb pro Monat gerade einmal etwas mehr als 30 Cent an Stromkosten fordert.

Anschluss

Das serielle Kabel mit einem COM-Port und das andere Ende mit dem ISP-Port (oben!) am Evaluationsboard verbinden. Den ATmega 32 mit richtiger Polung in den Sockel stecken (Kerbe oben). Nach genauer Prüfung das Netzteil anschließen und mit dem Stromnetz verbinden.

Wenn alles korrekt war leuchtet jetzt die rote LED auf dem Board.

Verbindungstest

Nach der Installation befindet sich avrdude automatisch im Pfad und kann direkt aufgerufen werden (sofern diese Option nicht im Setup deaktiviert wurde). Im folgenden gehe ich davon aus, dass das Board an COM1 hängt, bei einem anderen Port muss dies jeweils entsprechend angepasst werden.

Eine Kommandozeile öffnen (Start -> Ausführen -> cmd bzw. Start -> Ausführen -> command unter Windows 98) und folgendes eintragen:

avrdude -v -p atmega32 -c ponyser -P COM1

Wenn alles korrekt angeschlossen wurde sollte avrdude jetzt einige Informationen zum Prozessor anzeigen.

Flashen

Hier eine Firmware als HEX-Datei für das AVR-NET-IO erstellen lassen. Dabei aufpassen, denn IP, Gateway, Netmask und MAC-Adresse sind in der URL bereits enthalten und können manuell geändert werden:

http://www.ethersex.de/firmware-builder/build.cgi?profile=avr-net-io&CONF_ENC_MAC=00%3A22%3AF9%3A01%3A53%3AE3&CONF_ENC_IP=192.168.0.110&CONF_ENC_IP4_NETMASK=255.255.255.0&CONF_ETHERRAPE_GATEWAY=192.168.0.1

Anschließend können dann die erzeugte Config-Datei und die ethersex.hex Datei heruntergeladen werden.

Das kann übrigens auf einem anderen PC geschehen als der, der zum programmieren verwendet wird.

Doch zuerst sollten die Fuses ausgelesen werden:

avrdude -v -p atmega32 -c ponyser -P COM1 -U hfuse:r:high.txt:r -U lfuse:r:low.txt:r

Im Auslieferungszustand hat ein ATmega32 die Fuses 0xE1 (low) und 0×99 (high), lt. Pollin-Anleitung des AVR-NET-IO sollte der enthaltene ATmega32, der bereits fertig programmiert ist, die Fusebits 0xBF und 0xCA haben, auslesen konnte ich aber 0xFF und 0xCA.

Nun zur Programmierung des ATmega32. In der Kommandozeile unter Windows in das Verzeichnis wechseln, das die heruntergeladene ethersex.hex Datei enthält und dann folgendes zum programmieren eingeben:

avrdude -p m32 -c ponyser -P COM1 -U flash:w:ethersex.hex -v

Damit wird der Prozessor mit Ethersex geflashed – nach dem Schreiben wird automatisch ein Vergleich durchgeführt, ob das Schreiben funktioniert hat. Wenn alles funktioniert, dann jetzt weiter mit dem Setzen der Fusebits.

ACHTUNG! Mit falsch gesetzten Fusebits kann man sich den uC so verändern, dass man ihn nicht mehr wie hier beschrieben programmieren kann! Das Setzen der Fusebits erfolgt auf eigene Gefahr!

Diese Anleitung verwendet keinen Bootloader, daher habe ich nach gründlichem Studium der Fusebits und unter Verwendung des FuseBit Calculators die Fusebits auf 0xBF und 0xCB gesetzt – diese funktionieren bei mir mit dem Standard AVR-NET-IO Board und der o.a. Ethersex Firmware:

avrdude -p m32 -c ponyser -P COM1 -U lfuse:w:0xBF:m -U hfuse:w:0xCB:m

Controller-Tausch

Wenn alles funktioniert hat kann der im AVR-NET-IO enthaltene ATmega32 nun durch den soeben programmierten ersetzt werden. Dazu ist wie folgt vorzugehen:

  • Netzteil am AVR-NET-IO und am Programmer vom Stromnetz trennen
  • den programmierten ATmega32 aus dem Programmer (Evaluationsboard) entfernen
  • den im AVR-NET-IO enthaltenen ATmega32 vorsichtig entfernen
  • den soeben programmierten ATmega32 im AVR-NET-IO-Board einsetzen – Achtung! Auf korrekte Einkerbung achten und den Controller nicht falsch herum einsetzen
  • Das AVR-NET-IO wieder mit dem Stromnetz verbinden

Wenn alles funktoniert hat leuchtet die POWER-LED am AVR-NET-IO wieder wie zuvor. Nach einiger Zeit müsste dann auch die gelbe LED am RJ45-Anschluss leuchten.

Im Browser nun die gewählte IP aufrufen.

Wenn alles funktioniert hat sieht man die Ethersex-Startseite:

Von hier an empfiehlt es sich auf ethersex.de weiterzulesen :)

http://IP.AD.RE.SSE/ecmd?help