AVR Programmierkabel
Zum Programmieren von AVR-Controller ist nicht gleich ein ausgewachsenes Programmiergerät wie z.B. der USB-Programmer erforderlich. Ein einfaches selbst gelötetes Kabel für den Druckerport genügt auch.
Hardware
Der Schaltplan des Kabels ist in Bild1 zu sehen. Die Signale werden auf eine 5-polige Buchsenleiste geführt. Die Widerstände R1-R3 begrenzen den Strom im Kurschlussfall auf ungefährliche Werte (ja, es geht auch ohne die Widerstände). Wer ganz sicher gehen möchte, sollte eine LPT-Zusatzkarte verwenden .
Bild 1: Schaltplan des Programmierkabels
Der Schaltplan zeigt die Pinbelegung gesehen von der Steckerseite. Pin 1 ist meistens (wenn man genau hinschaut) auf dem Stecker aufgedruckt. Von der Lötseite aus gesehen sollte es so aussehen:
Bild 2: Pinbelegung am Stecker
Die Pinbelegung des ISP-Steckers (JP10 im Schaltplan) wurde so gewählt, dass die Leiterbahnen bei den meisten Controllern (2313 und ATMega) kreuzungsfrei verlegt werden können. Gegenüber dem üblichen 10-poligen Steckerverbinder ist das zudem noch deutlich platzsparender. Falls man schon ein AVR-Evaluation-Board besitzt, kann natürlich auch die Standard-Belegung verwendet werden:
Bild 3: Pinbelegung gemäß Atmel AVR042 (STK 500 bzw. STK200/300)
Anmerkung: Viele aktuelle PCs haben keine parallele Druckerschnittstelle mehr. Mit einer PCI-Zusatzkarte wurde die u.g. Software erfolgreich getestet. Die Port-Adresse ist in der Systemsteuerung zu finden. USB-Parallel-Adapter funktionieren höchstwahrscheinlich nicht, da diese nicht direkt über eine Port-Adresse angesprochen werden können.
Software
Folgende Software ist zum Programmieren geeignet:
Avrdude
Avrdude ist ein Kommandozeilen-Tool, welches als Open-Source für alle gängigen Betriebssysteme (Linux, MacOS, FreeBSD und Windows) verfügbar ist.
Der Aufruf zum Flashen sieht beispielsweise so aus:
avrdude.exe -p M8 -c bascom -e -U flash:w:image.hex
Falls man eine PCI-Parallel-Port Karte verwendet, muss evtl. die Port-Adresse mit angegeben werden. Diese ist in der Systemsteuerung im Gerätemanager zu finden. Für die Adresse 0x8c00 sieht der Aufruf dann so:
avrdude.exe -p M8 -c bascom -P 0x8c00 -e -U flash:w:image.hex
Bascom
Wer unter Windows eine graphische Oberfläche bevorzugt, kann auch die Basic-Entwicklungsumgebung BASCOM von MCS Electronics zum Programmieren benutzen. Dazu muss lediglich "Sample Electronics Programmer" in den Einstellungen ausgewählt werden. Die Port-Adresse einer PCI-Parallel-Karte kann hier ggf. auch angeben werden. Der in Bild3 gezeigte integrierte Programmer unterstützt Hex- und Binary-Dateien ebenso wie das Lesen und Schreiben von EEprom und der Fusebits.
Bild 4: Bascom Screenshot