Bei ebay gibt es einen günstigen ISP Programmer Diamex-ISP für Atmel
Controller. Dieser meldet sich unter Linux als DX-ISP (VendorID 0x16c0,
ProductID 0x2a9b) und ist kompatibel zum STK500v2. Der Name und die IDs
können mittels der Programme lsusb oder
usbview überprüfen werden.
Der Programmer wird als USB-Serial Modem angesprochen. Hierzu muss das
Kernel-Modul cdc_acm geladen werden. Anschließend sollte
der Device Node /dev/ttyACM0 vorhanden sein (udev
vorausgesetzt!). Nun kann mittels der folgenden Programmzeile der
Terminal-Modus zum Mikrocontroller gestartet werden.
|
|
|
Achtung: Die angegebenen Kommandozeilen sind für die Verwendung
mit einem Atmega8. Bei einem anderen Controller muss der Parameter
-p m8 entsprechend angepasst werden.
Für den Zugriff auf den Device Node /dev/ttyACM0 muss
zudem auf die Zugriffsrechte geachtet werden. Unter den meisten
Distributionen ist das Gerät nur für root oder
Mitglieder der Gruppe dialout les- und schreibbar.
avrdude -p m8 -c stk500v2 -P /dev/ttyACM0 -t -F
Hier können und müssen zunächst verschiedene Einstellungen
vorgenommen werden. Sollte die Verbindung erfolgreich aufgebaut worden sein,
meldet sich der Mikrocontroller mit der Signatur 0x1e9307 (ATmega8). Wenn
nicht, dann hilft vielleicht ein erneuter Aufruf des Kommandos. Zumindest
hat das bei mir irgendwann zum Erfolg geführt.
Anschließend sollte man die Clock Rate korrekt einstellen, bei mir
funktionierte der Aufruf sck 41.3 . Auf jeden Fall muss die
Clock Rate geringer als 1/4 der Taktfrequenz des Mikrocontrollers sein. Im
Normalfall ist diese auf 1MHz voreingestellt.
Das Programmieren des Mikrocontrollers erfolgt dann mittels des folgenden
Kommandos.
avrdude -p m8 -c stk500v2 -P /dev/ttyACM0 -e -vv -U flash:w:test.hex
Hierbei ist test.hex das Programm, welches in den Flash des
Mikrocontroller geschrieben wird. Die Datei sollte sich im aktuellen
Verzeichnis befinden. Wenn alles funktioniert hat, sollte
avrdude nicht meckern und das Programm sofort loslaufen.
|