Wechseln zu: Navigation, Suche

MyAVR Firmware

Zur Zeit gibt es eine Firmware-Version für das myEthernet. Diese Version Unterstützt das myAVR LCD Add-On und das myTWI Add-On Temperatursensor Modul. Ein Aufbau der bei der Portierung Pate stand ist in folgendem Bild zu sehen. Vielen Dank an CNI (aus dem myAVR-Forum) nochmal für die Hilfe und das viele Testen zu teils ungewöhnlichen Zeiten da ich die Add-On Module nicht habe. Meine Spielwiese zum testen sah ein bisschen anders aus :-).


Testaufbau von CNI Myavr sharan.jpg


Aber nun zur Firmware. Vorweg die derzeitige PIN-Belegegung an der Pinleiste des myEthernet. Leider ist hier die Zählweise etwas verwirrend. Aber ein blick in die Doku zu diesen board hilft auch hier weiter.


Pin (myEthernet) Funktion Pin am ATmega
0 LCD RS PA4
1 LCD E PA5
2 LCD DB4 PA6
3 LCD DB5 PA7
4 LCD DB6 PB0
5 LCD DB7 PB1
6 LCD R/W (noch nicht benutzt) PB2
7 LCD Backlight PB3
8 digital Eingang 0 / DCF77 PB4
9 digital Eingang 1 PB5
10 Impulszähler (zu große Teilen implementiert) PB6
11 1-Wire PB7
+5V
GND
12 digtal Ausgang 0 PA0
13 digtal Ausgang 1 PA1
14 digtal Ausgang 2 PA2
15 analog Eingang 0 PA3
16 SDA TWI/I²C PC1
17 SDC TWI/I²C PC0


So, das hätten wir nun geklärt. Jetzt zur eigentlichen Firmware. Diese kann hier ( Rechtsklick und "speichern unter ..." ) in entsprechender Version herunter geladen werden. Nach dem erfolgreichen Flashen der selbigen kann es los gehen. Es sollte nach dem ersten Starten die grüne LED an gehen. Wenn diese Hürde genommen ist versucht OpenMCP schon mal zu starten. Wer das LCD-Display vom myAVR sein eigen nennt sollte jetzt auch die Meldung OpenMCP ... im Display sehen. OpenMCP initialisiert jetzt alle benötigten Treiber und Module und versucht danach eine Netzwerkkonfiguation per DHCP zu holen. Hierbei ist zu beachten das OpenMCP auf eine Netzwerkverbindung wartet, sonst geht es nicht weiter. Die rote LED zeigt dann durch reges flackern und blinken Netzwerkverkahr an. Wenn eine automatische Konfiguration per DHCP fehl schlägt mangels DHCP-Server wird standardmäßig die 192.168.178.44 als IP-Adresse genommen. Danach werden die restliche Software-Module gestartet die vom Netzwerk abhängig sind. Auf dem LCD-Display erscheint nun kurz die IP und es wird in den Infomodus umgeschaltet, in dem weitere Infos zu sehen sind, wie Uhr-Zeit, Themperatur u.s.w. Für Besitzer des myEthernet ohne LCD-Display wird es jetzt interessant die IP-Adresse des myEthernet heraus zu bekommen. Hier bietet sich entweder die UART an, die mit Informationen beim starten nur so prallt und mit 9600 8N1 läuft. Oder man fragt seinen Router welche IP-Adresse denn nun das myEthernet bekommen hat. Hier hilft sicher das Handbuch des Routers weiter. Wenn man die IP-Adresse ermittelt hat, kann ein erster Versuch, ob das myEthernet antwortet, mit Ping gestartet werden. Ist auch dieser Test erfolgreich absolviert ist der Browser an der Reihe. Dort sollte sich in etwa dieses Bild nach der Eingabe der IP-Adresse bieten.

Bildschirmfoto-OpenMCP - NETIO 1.png

Damit Einstellungen dauerhaft gespeichert werden können und zuverlässig arbeiten sollten noch die Fusebits richtig gesetzt werden. Wer sich damit nicht sicher ist sollte damit noch nicht spielen, da hierbei der ATmega unbrauchbar gemacht werden könnte. Ohne diese Fusebits kann es aber zu Problemen mit dem EEprom kommen, da der Inhalt in ungünstigen Situationen zerstört oder nach dem Flashen gelöscht wird.

Low-Fuse = 0xE6
High Fuse = 0xD1
Extended Fuse = 0xFD

Nach dem das auch geschafft ist kann man auf Entdeckungsreise gehen. Im Menüpunkt I/O-Ports sind die Webinterfaces für die digitalen Ein- und Ausgänge zu finden, die analogen Eingänge, der 1-Wire Bus und der TWI (I²C) Bus. Spielen hilft auch hier. Hinter dem Menüpunkt Netzwerk kann man sich Informationen zum Netzwerk anzeigen lassen, sowie das Netzwerk-Einstellungen konfigurieren. Einstellungen die hier getätigt werden werden erst nach einem Reset wirksam. Im Menüpunkt System findet man allgemeine Einstellungen wie z.B. den NTP-Server von dem während des Startes die Uhrzeit geholt werden soll. Hier befindet sich auch der Menüpunkt Reset um das myEthernet neu zu starten. Unter EEmem kann man sich die abgespeicherten Einstellungen im EEprom ansehen. Und sicherlich interessant ist auch der Menupunkt cron. Hier kann man Befehle eintragen die zur entsprechenden Uhrzeit ausgeführt werden. Eine kleine Einführen dazu gibt es hier.

Ein blick ist auch der Telnet-Dienst wert. Dort kann man auf das myEthernet ganz schnöde per Telnet zugreifen. Macht auch Spass.

Zudem ist auch der Zugriff auf die SD-Karte über den Browser möglich. Wer die Orginal SD-Karte eingesteckt hat kann ja mal die IP-Adress + /index.htm eingeben. Dann bekommt er den Inhalt der Karte zu sehen. Hier funktioniert aber nicht die Interaktion mit den IO-Ports des myEthernet wie man es mit der Orginal-Firmware des myEthernet vorgesehen ist. Wenn man beschließt eigenen Inhalt auf die SD-Karte zu packen sollte beachtet werden das der Webserver zuerst im Flash nach passenden Dateien sucht und dann erst auf der SD-Karte nachschaut. Es gibt hier also unweigerlich Überschneidungen.

So, bleibt nur noch zu erwähnen das es vielleicht Probleme mit dem Netzwerk gibt. Da das Hardwaredesign des myEthernet schon ein weilchen her ist, und die Datenblätter des Herstellers für den Ethernetcontroller wechseln wie das Wetter hierzulande, gibt es wohl Probleme das bei einigen myEthernet der Link verloren geht und es so zu Störungen kommt. CNI und ich konnten diesen Fehler erst durch den Austausch eines SMD-Widerstandes von 2k-Ohm auf 2.7k-Ohm beheben. Folgendes Bildchen zeigt nochmal den Ort des Verbrechens. Auch ist schon zu tage getreten das die Stabilitätsprobleme von den verwendeten Netzkomponenten abhängig sind.

Myavr hardware.jpeg

Zwischendurch kann es scheinbar vorkommen das das myEthernet hängt. Hier hilft einfach ein bisschen Geduld. Da wegen des knappen RAM und der vielen Funktionen nur 3 TCP-Verbindungen gleichzeitig geöffnet werden können und nach dem Abbau einer TCP-Verbindung diese erst einen Closetimeout durchlaufen muss.