Nun habe ich endlich wieder einen Programmer für meine Mikrocontroller. Nach langem Suchen habe ich mich für den USBprog von Benedikt Sauter ( Embedded Projects ) entschieden. Mit 39 Euro (12/2013: nur 29,90€) ist es sicherlich nicht der billigste Programmer für die Atmel AVR-Familie, aber immer noch billiger als die Programmer aus dem Hause Atmel.
Der Programmer kommt als Bausatz, wobei die schwierigen SMD-Bauteile schon verlötet sind. Nur die Grobmotoriker-sicheren Bauteile, wie Pfostenleisten und USB-Buchse müssen noch angelötet werden, was allerdings schnell erledigt ist. Auf einer Seite steht groß "populate everything from top side", was so viel bedeutet, wie: "Alle Bauteile auf der Oberseite anbringen". Etwas genauer wäre jedoch gewesen, wenn man "populate everything from opposite side" geschrieben hätte, dann hätte ich auch nicht die Bauteile anfangs auf die falsche Seite gelötet :-(( Die Auflösung des Rätsels, welche Seite denn wohl die obere ist, gibt es im Internet. Nun ja, die insgesamt vielleicht etwa Feuerzeug-große Platine hat das Auf- und Ablöten gut überlebt ...
Ein nettes Feature des USBprogs ist, daß er weit mehr als ein reiner Programmer ist. Über ein Software-Tool läßt sich die Firmware auf den Mikrocontroller des USBprog austauschen, und der der USBprog verwandelt sich auf diese Weise bspw. in einen Debugger, einen USB-RS232-Konverter oder eine JTAG-Schnittstelle. das Projekt ist OpenSource, und es kommen gelegentlich neue Firmwares dazu.
Das Software-Tool sollte man sich unbedingt installieren - für
OpenSUSE-Linux gibt es auch ein eigenes Software-Repository. Wie man das
installiert, erfährt man auf der Homepage von Embedded Projects.
Mit dem graphischen Frontend unter Linux habe ich allerdings
schlechte Erfahrungen gemacht: Wenn es überhaupt läd, dann braucht es
schier eine Ewigkeit. Ich arbeite ausschließlich mit der
Kommandozeilen-Version.
Zunächst habe ich ausschließlich mit
dem Kommandozeilen-Tool gearbeitet. Es gibt aber auch ein graphisches
Frontend USBprog, welches mittlerweile (Version 0.1.9) sehr gut
funktioniert.
Out-of-the-Box konnte ich den USBprog nur als root ansprechen - auf die Dauer etwas nervig. Nach langer Puzzelei habe ich herausgefunden, wie ich die Rechte so setzen kann, daß ich auch als stinknormaler User an den Programmer drankomme. Dazu steckt man den Programmer in den USB-Port. Wie der nun im System "aufgehangen" ist, kann man mit dem Befehl "lsusb" ermitteln. Bei mir unter OpenSUSE sieht die Ausgabeso aus:
Damit weiß man schon mal, daß in diesem Fall der
Programmer mit /dev/bus/usb/004/026 erreichbar ist. Nun kann man die
Zugriffsrechte anpassen:
Blöd nur, daß bei einem erneuten Einstecken sich die Device-Nummer und ggf. auch die Bus-Nummer ändert. Dann ist das gleiche Spiel noch einmal zu machen.
Wenn man jetzt wie hier beschrieben eine Regel für die Linux Kernel Geräteverwaltung udev anlegt und udev neu startet, dann kann man den USBprog auch als normaler User ansprechen. Abweichend zur obigen Anleitung würde ich empfehlen, den Dateinamen für die Regel zu 80-usbprog.rules zu wählen und die Rechte auf 0666 zu setzen - so hats bei mir geklappt.
Zum Aufspielen einer neuen Firmware auf den USBprog mit dem Kommandozeilen-Tool geht man nun wie folgt vor:
Jetzt ist der USBprog mit der Firmware verwendbar!