AVRs mit Linux programmieren

"AVR-Programmer PROG-S" unter Linux

Da mein neuer PC keine RS232-Schnittstelle mehr hat, habe ich mir zum Flashen von AVR-Mikrocontrollern einen USB-Programmer angeschafft.

Meine Wahl fiel auf den "AVR-Programmer PROG-S" von avr-programmer.com.

Zum Flashen benutze ich AVR-Dude + Burn-O-Mat. AVR-Dude ist ein Kommandozeilenprogramm zum Flashen von AVR-Mikrocontrollern, Burn-O-Mat ist eine grafische Oberfläche für AVR-Dude.

AVR-Dude ist in den Debian-Paketquellen enthalten. Man kann es einfach mit Apt installieren:

root@client:~/# apt-get install avrdude

Burn-O-Mat ist eine Java-Anwendung, die händisch installiert werden muss. Man kann es als Debian-Paket hier herunterladen. Anschließend lässt es sich mit dpkg installieren:

root@client:~/# dpkg -i Downloads/avr8-burn-o-mat-2.1.2-all.deb

Natürlich muss Java installiert sein. OpenJava ist ausreichend.

Um als Benutzer Zugriff auf den Programmer zu bekommen, muss eine Datei mit einer entsprechenden Regel erstellt werden:

root@client:~/# vi /etc/udev/rules.d/99_usbprog.rules

Die Datei füllt man mit folgendem Inhalt:

# Diese Datei nach "/etc/udev/rules.d/99_usbprog.rules" kopieren,
# um als Benutzer Zugriff auf den Programmer "AVR-Programmer PROG-S" zu haben.
# Benutzer muss in Gruppe "plugdev" sein.
ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="2a98", GROUP="plugdev", MODE="0660"

Die IDs bekommt man mit dem Kommando

lsusb

Dieses listet alle USB-Geräte auf. Man muss sich nur den Programmer heraussuchen.

Damit die Regel verwendet wird, anschließend den Programmer abstecken, und wieder anschließen.

Es werden keine zusätzlichen Treiber benötigt!

Burn-O-Mat starten.

In Burn-O-Mat als Programmer "STK500v2" auswählen.

Als Schnittstelle "/dev/ttyACM0" manuell eingeben (ist nicht in der Liste enthalten).

Verwendeten Mikrocontroller auswählen. Dieser sollte jetzt ansprechbar sein :-).

Oder direkt mit avrdude:

user@client:~$ avrdude -c stk500v2 -P /dev/ttyACM0 -c m32
                            |              |           |
Programmer -----------------               |           |
Schnittstelle -----------------------------            |
Mikrocontroller (ATmega32) ----------------------------

Siehe auch wiki.ubuntuusers.de/AVR.