USBasp - ISP AVR programmer
Home > Elektronik > USBasp ISP AVR programmer  
 

[Nov. 2009] USBasp - USB programmer für Atmel AVR controller

Damit ich meine Atmel Mikrocontroller, besonders das AVR-NET-IO board von Pollin, per USB Port beschreiben kann habe ich folgenden ISP Programmierer gebaut. Es ist eine 1:1 Umsetzung von fischl.de, das Layout der Schaltung ist jedoch auf meinem Mist gewachsen.

top Umsetzung

  Das gefräste Layout. Unterseite ist geräumt (rub-out), sieht schöner aus und mach das Löten der SMD Bauteile noch einfacher. (Waren aber sowieso schon große 1206 Bauform)
So schaut das Ergebnis aus. Der Mega 8 lässt sich mit einem LPT Port Kabel direkt auf dem Programmer flashen.
Einfaches Atmel Programmierkabel für den Parallel Port, von thomaspfeifer.net.

Damit die hex Datei seinen Weg auf dem Programmer findet habe ich AVRdude benutzt, was es für Windows und Linux gibt. (Für Windows ist AVRdude bestandteil von WinAVR, Linux hat es meist in den standard Repositories, so das ein apt-get install avrdude genügen sollte.)

Zum flashen des USBasp den "Self programming" Jumper JP2 setzen und über den oben erwähnten LPT Adapter Anschließen, dann passt dieser avrdude Aufruf:

avrdude -p m8 -c bascom -P lpt1 -u -U flash:w:"usbasp.atmega8.2009-02-28.hex" -U hfuse:w:0xc9:m -U lfuse:w:0xef:m

Mit diesem Aufruf wird die Datei "usbasp.atmega8.2009-02-28.hex" in den flash Speicher des ATMega 8 geschrieben und die Fuses mit C9 und EF (Hexadezimal) gesetzt. Was das bedeutet kann man mit einem fusecalculator erkennen.

Damit man unter Linux als normaler Benutzer (nicht als root) den programmer ansprechen kann, muss man eine kleine ".rules" datei für udev anlegen.

Dateiname 60-objdev.rules, Pfad /etc/udev/rules.d/

SUBSYSTEM!="usb_device", ACTION!="add", GOTO="objdev_rules_end"
# USBasp
SYSFS{idVendor}=="16c0", SYSFS{idProduct}=="05dc", GROUP="users", MODE="666"
LABEL="objdev_rules_end"

(Darauf achten das Vendor und Product ID übereinstimmen. Wenn es nicht läuft, mit dmesg nachsehen ob der programmer eventuell andere IDs verwendet.)

Nun kann man wie gewohnt fuses setzten und den flash Speicher, etc. Schreiben:

avrdude -p m644 -c usbasp -U lfuse:w:0xE7:m -U hfuse:w:0xDC:m -U efuse:w:0xFF:m

avrdude -p m644 -c usbasp -U flash:w:main.hex -v

     

 

top Schaltpläne/Layout

Hier nun die Schaltpläne. Die Bauteile sind meist irgendwo anders ausgebaut worden, ansonsten bekommt man die Sachen bei Reichelt oder dem Elektronikladen um die Ecke.

PCB Layout

 
     

Schaltung