Zum programmieren von AVR-Controller ist nicht gleich ein ausgewachsenes Programmiergerät wie z.B. der USB-Programmer erforderlich. Ein einfaches selbstgelötetes Kabel für den Druckerport genügt auch.
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 - 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)
Folgende Software ist zum programmieren geeignet:
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
Wer unter Windows eine graphischer 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
|
|
Permalink: http://thomaspfeifer.net/einfaches_atmel_programmierkabel.htm © 2010 Thomas Pfeifer |