*AVR Programmer (USBasp)

(2007, Update 11.06.2012)
Ein schneller, kompakter AVR-Programmer am USB-Anschluss (für Laptops)

USBasp gewinkelter Wannenstecker, Vorderseite

Diese Projekt ist nicht auf meinem Mist gewachsen, sondern ich möchte ausdrücklich auf die ursprüngliche >>Website von Thomas Fischl<< verweisen, der hier tolle Arbeit geleistet hat. Ich habe lediglich das Layout an meine Bedürfnisse, vorhandenen Bauteile und die (damaligen) Fähigkeiten eine Platine zu anzufertigen, angepasst.

Der hier vorgestellte Programmer ist sehr einfach, extrem schnell und funktioniert vor allem an allen USB-Anschlüssen (wer eine Version ohne Z-Dioden hat, bekommt manchmal Probleme). Einmal unter eClipse konfiguriert muss man nicht mehr beachten an welchem COM-Port der Programmer hängt. Er ist vor allem um einiges schneller als jeder Bootloader oder Programmer am Parallel-Port. Kleine Projekte können sogar direkt aus dem USB-Anschluss versorgt werden.

Leider konnte ich aber mit den auf der o.g. Website bereits gefertigten Layouts nichts anfangen und habe mein eigenes Layout erstellt. Es hat folgende Merkmale (Unterschiede zu den verfügbaren Layouts sind hervorgehoben):

  • AVR ISP-Programmer für alle gängigen Atmel AVR. Auch Zugriff auf Fuse- und Lockbits
  • USB-Programmer mit nur einem IC und ein paar passiven Bauteilen
  • 5V Programmierspannung
  • Zielversorgung per USB über Steckbrücke wählbar
  • Steckbrücke für langsame Zielsysteme (<2MHz), sonst sehr schnelle Programmierung möglich
  • ! Nur unter Verwendung von AVRdude ansprechbar. Aber praktisch alle Alternativen zu AVRStudio haben eine direkte Unterstützung dafür (z.B. eClipse/Codeblocks). Er kann nicht direkt aus dem AVRStudio heraus verwendet werden!
  • ! Benötigt einen bereits programmierten Atmega8/88
  • Extrem schnell und keine COM-Port Konfiguration nötig.
  • Komplett einseitiges Layout ohne Brücken
  • Keine SMD-Komponenten, breite Leiterbahnen. Optimiert für schlechte „Direkt-Toner-Platinen“
  • Z-Dioden für bessere Kompatibilität am USB im Layout berücksichtigt (läuft so bisher erfolgreich an allen Laptops und PCs im Bekanntenkreis: Dell/IBM/HP/Samsung/Lenovo)
  • Gerader ODER gewinkelter 10pol-Stecker verwendbar
  • Vollständige Layoutdaten verfügbar. Inkl. Ätzmaske, Beschriftungsdruck, Gerber/Excellon-Dateien und eagle-Originaldateien

Der Programmer wird praktisch für alle meine AVR Projekte verwendet. Bei der Programmierung von Systemen mit 3,3V wird ein Pegelwandler zwischengeschaltet.

Wer keine USB-Buchse möchte, sondern lieber direkt einen Stecker, der kann ein altes USB-Kabel direkt anlöten und die beiden großen Löcher für eine Zugentlastung nutzen. Ein dünner Kabelbinder oder ein Stück verzwirbelter Draht genügen.

>>Download (ZIP/500k) –  Layout/Board(Eagle), Ätzmaske/Beschriftung(PDF), Gerber/Excellon, POV/gerenderte Ansicht bottom/top(Eagle-3D)<<

Firmware

Die Firmware kann direkt von Thomas Fischls Website bezogen werden. Da sich der Schaltplan in wesentlichen Punkten nicht unterscheidet, werden auch zukünftige Versionen funktionstüchtig sein.

Da ein bereits programmierter AVR nötig ist, kann man im Bekanntenkreis ja mal Fragen, ob man diesen programmiert bekommt. Auf der Homepage von Thomas Fischl wird auch auf Bezugsquellen für Eigenbau-Kits verwiesen – diese beinhalten bereits einen vorprogrammierten AVR.

Errata – known Bugs

Vielen Dank an Hermann M., der als einziger gemerkt hat, dass die rote und grüne LED im  Schaltplan falsch herum beschriftet sind. Die rote LED ist eigentlich grün und umgekehrt.  Erst dann zeigt auch die grüne LED die USB-Verbindung und die rote den Programmiervorgang an.

Der USBasp ist nicht über einen virtuellen COM-Port zu erreichen, sondern ein vollwertiges USB-Gerät. Mit avrdude ist er sowohl unter Linux, als auch unter Windows und MacOS erreichbar.  Das Tool avrdude ist Bestandteil von WinAVR und wenn ihr den AVR in GNU-C programmiert wird das Paket von AVRStudio mitinstalliert.
Aber es gibt keine Möglichkeit ihn direkt als Programmer aus dem AVRStudio heraus zu benutzen. Wenn das AVRStudio die .hex-Datei erzeugt hat, wird diese mit avrdude geflasht. Als GUI für avrdude gibt es zum Beispiel den AVR Burn-O-Mat, dort kann man auch komfortabel die Fusebits einstellen.
Lockbits werden von avrdude und USBasp auch unterstützt, aber nur per Kommandozeile. Mittlerweile gibt es noch andere GUIs für avrdude. So unterstützt der >>Khazama AVR Programmer<< auch Lockbits und mehr Prozessoren als das mittlerweile ein wenig ruhende Burn-O-Mat Projekt.

.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *