Flashen des Schachzwerges

aus Schachcomputer.info Wiki, der freien Schachcomputer-Wissensdatenbank

Flashen des Schachzwerges

(Durchführung auf eigene Gefahr, keine Ansprüche auf Schadensersatz)

Mit dieser Anleitung möchte ich allen helfen, die Interesse haben den Schachzwerg zu verbessern bzw. mit der Software zu experimentieren. Der Weg (den Zwerg neu zu flashen) war für mich mühsam, da ich bisher keine Ahnung von der Materie hatte und es keine einfache Anleitung mit allen Informationen gibt. Diese möchte ich hier erstellen.

Alle Infos beziehen sich auf Stand September 2009. Bei der verwendeten Soft/Hardware gibt es natürlich auch Alternativen; ich beschreibe die von mir gewählte Lösung!

Notwendige Hardware

PC

Habt ihr vielleicht schon daheim.

AVR-Max Schachzwerg

Preis: 34,50 Euro http://www.elektor.de/products/pcbs/all-pcbs/avr-max-schachcomputer-(081101-1).950866.lynkx

Ein Selbstbau Bausatz OHNE irgendeine Anleitung oder Bestückungsliste. Deshalb ist es nötig den Artikel dazu zu kaufen. bzw das Heft in dem er vorgestellt wird!

USBprog 3.0

Preis: 39 Euro

http://www.embedded-projects.net/index.php?page_id=135

Das ist ein universeller USB-Microcontroller Programmadapter der "open- source" entwickelt wurde. Er kann selber programmiert werden um andere spezielle Adapter zu emulieren (in diesem Fall dem AVRISKmkII) und ist für fast alle Microcontroller geeignet.

Ich habe die Variante "USBprog programmiert mit AVRISPmkII Klon" bestellt und mir damit das Flashen des USBprog erspart.

Dies ist auch ein vormontierter Bausatz bei dem allerdings nur mehr die Stecker gelötet werden müssen.

ISP Connect Kit 10/6polig

Preis: 3.45 Euro

Um den 10 adrigen Programmieranschluss (ISP) des USBprog mit dem 6 ISP Adapters des Zwerges zu verbinden benötigt man ein Adapterkabel.

Dies kann man selber zusammenlöten (siehe http://www.kreatives-chaos.com/artikel/avr-programmieradapter) oder man bestellt es sich z.Bsp unter http://shop.myavr.de/index.php?sp=artlist_kat.sp.php&katID=5&suchLimit=10&aktPage=2 (ISP Connect Kit 10/6polig)

Und wenn ihr das alles habt dann sollte dies so aussehen:

Notwendige Software

SchachZwerg Source

Das AVR-Max Schachprogramm (kann man von Elektor runterladen; link siehe oben unter Hardware)

WinAVR

Eine Suite von open-source development tols für AVR Microcontroller für Windows. (ich verwende WinAVR-20090313) http://winavr.sourceforge.net/


Wie gehe ich nun vor?

Das Programmcode verzeichnis des Zwerges (von Elektor) entpacken und auf die Platte kopieren.

WinAVR-20090313-install.exe ausführen und die Installation abwarten.

Wenn ihr nun den USB-prog (ohne Zwerg) an den Windows Rechner ansteckt sollte ein Dialog hochkommen der den Treiber für den usbprog verlangt. Auf manuelle Suche gehen und als Pfad "C:\WinAVR-20090313 \utils\libusb\bin" angeben (oder dort wo ihr WinAVR installiert hab). Dann sollte der Treiber installiert werden und der USBprog erkannt sein (grünes Lämpchen am USBprog leuchtet). Er ist bereit.

Ab Besten stellt ihr den USBprog so ein, dass der Zwerg vom USB bus mit Energie versorgt werden soll. Dazu den Switch am Programmer (siehe auf der Seite zum USBprog unter "Einstellbarer Vcc pin") auf "5V per Schottky-Diode über USB" einstellen. Der Zwerg braucht nun KEINE Energieversorgung mehr und nach der Verbindung des Zerges über das Adapterkabel mit dem USBprog sollte der Zwerg nun ganz normal (ohne eigene Stromversorgung)funktionieren (Anzeige leuchtet und man kann Schach spielen). Wenn das nicht geht habt ihr einen Fehler im Kabel.

Jetzt "Programmers Notepad" von WINavr starten.

File->Open projects->chess_computer.pnproj auswählen ( das Projekt des Zwerges kann direkt im Programmers notepad geöffnet werden), dann avrmax_48.c öffnen (doppelklicken). Mittels eines #define kann man im code die Sprache auf Deutsch oder Englisch einstellen!

Tools->Make all (sollte ohne Fehler übersetzen: "Errors: none" am Ende) Damit man erkennt ob das Flashen funktiniert sollte man nun irgendwas am Zwerg ändern. Ich habe statt "Shah" einfach "Heli" nach dem Starten ausgeben lassen. (wenn ihr das nicht hinbekommt solltet ihr sowieso die Finger davon lassen). Nach der Änderung natürlich neu bauen.

Der Zwerg sollte nun mittels USBprog angeschlossen sein und funktionieren.

Tools->Program (die Anzeige am angeschlossenen Zwerg sollte nun dunkel werden; die rote Leuchte am USBprog aufleuchten und der Zwerg neu geflashed werden. Dann müsste er automatisch wieder in den normalen Betriebszustand übergehen und mit der neuen Software verwendbar sein.

Das wars!

Probleme in der Praxis

Theoretisch sollte alles wie oben beschrieben funktionieren; ich hatte jedoch das Problem dass der Zwerg einfach nicht programmiert werden wollte. Ich bekam keine Rückmeldung auf die flash-Komandos und bin dabei ziemlich verzweifelt.

ISP Frequenz

Im Verzeichnis des WINavr findet man unter "C:\WinAVR-20090313\bin" das Programm avrdude das zum Flashen verwendet wird. So kann man per commandline sich mit diversen Parametern "spielen".

Der Aufruf zum Flashen lautet:

avrdude -p atmega88 -P usb -c avrispmkII -U flash:w:avrmax_48.hex

Wichtig ist aber dass die ISP Frequenz(die Geschwindigkeit in der der Zwerg geflashed wird) nicht zu hoch eingestellt ist. Dies war ein Grund warum es bei mir Probleme gab.

Die ISP Geschwindigkeit kann geändert werden wenn man mit dem avrdude in den Terminal mode wechselt

avrdude -p atmega88 -P usb -c avrispmkII -t

und dann mittels "fosc"-Kommande die ISP Frequenz ändert. Siehe http://omegav.ed.ntnu.no/wiki/index.php/AVR/avrdude#fosc Bei mir hat erst eine Frequent von 250 Kilohertz zuverlässig funktioniert.

AVR Studio

Als alternative Entwicklungsumgebun gibt es noch das AVR-Studio direkt vom Hersteller der Microcontroller. Es ist sehr komfortabel; man hat sogar einen Emulator für diverse Microcontroller. Wenn man im Netz sucht findet man es schnell und es ist vielleicht für Anfänger die erste Wahl.

ABER nachdem ihr das AVR-Studio installiert habt funktioniert obige Anleitung zum Flashen NICHT mehr. Dies deshalb da das Studio einen eigenen USB-Treiber installiert der inkompatibel zum WINavr ist!! Dies war ein weiterer Grund warum es bei mir nicht funktionierte und erst die manuelle Entfernung des Treibers vom AVR-Studio brachte mir Erfolg. (ihr könnt sonst auch das Studio zum Flashen und übersetzen benutzen; aber das ist eine andere Lösung.)

So, nun frisch ans Werk und viel Erfolg!

Helmut Hoffmann

Alle Verbesserungen/Änderungen/Ideen des Zwerges sollten/können in der Interessensgemeinschaft AVR-Schachcomputer-Gemeinschaftsprojekt dokumentiert werden.