Um Atmel Mikrocontroller (AVR-Serie) programmieren zu können, bedarf es eines sogenannten ISP-Programmers. Selbst Arduino-Programmierer kommen auf Dauer selten lange ohne ISP-Programmer aus. Aber welchen nehmen? Das Angebot ins riesig und die Preisspanne liegt zwischen 5 und 500 Euro. Zudem hört man immer wieder von erheblichen Treiber-Problemen bei den neueren Betriebsystemen wie beispielsweise Windows 10.
Aus diesem Grund bin ich der Sache mal nachgegangen und habe einige interessante ISP-Programmer mit gutem Preis-Leistungsverhältnis unter Windows 10 getestet.
Treiber Probleme bei ISP-Programmern sind nicht selten
Wenn man Google bemüht oder in den Elektronik-Foren schaut, dann gehören Probleme und Fragen zu ISP-Programmern zu den häufigsten Themen überhaupt. Vor allem gibt es Probleme, wenn einmal das Betriebsystem wechselt, insbesondere seit Windows 7 und insbesondere seit Windows 10 gibt es verstärkt Probleme mit den notwendigen Treibern zu verschiedenen Programmern. Treiber die unter Windows 7 noch gut funktioniert haben, machen plötzlich unter Windows 10 Probleme. Das führt zum Beispiel dazu, dass manche Entwicklungsumgebung den Programmer plötzlich nicht mehr erkennt.
Wenn man dann im Internet recherchiert wird man von den Elektronik-Gurus zahlreiche Tricks lesen, mit denen man dann, wenn man etwas Glück hat und sich traut an den Windows-Treibern herumzuspielen, doch noch den Treiber für die jeweilige IDE zum Laufen bekommt. Da wird dann gerne auch mal schnell mit Bezeichnungen wie Jungo-Treiber, LIBUSB oder Zadig-Tool herumgeworfen, so als seien das Alltagsdinge die jeder kennt.
Pech für den reinen Anwender, der sich eigentlich gar nicht mit den Windows Interna beschäftigen wollte, sondern eigentlich nur einem Mikrocontroller programmieren will. Selbst Atmel hat zeitweise für seinen Programmer Patches veröffentlicht, die eigentlich nur für experimentierfreudige Insider praktikabel waren.
Wenn dann beim Experimentieren an den Treibern irgendetwas schief läuft und ein Fehler gemacht wird, soll es schon vermehrt zu erheblichen Problemen gekommen sein. Einige Anwender berichten sogar, dass sie ihr Betriebssystem völlig neu aufsetzen mussten.
Es mag sein, dass sich letztere vielleicht besonders dumm angestellt haben, dennoch halte ich es für unzumutbar was hier einige Anbieter von ISP-Programmern ihren Kunden zumuten. Es wird doch wohl ein Programmer machbar sein, der nicht bei jedem Betriebssystem Wechsel Probleme macht! Zumindest sollten zeitnah neue Treiber bereitstehen, damit den Elektronik-Einsteigern nicht schon am Anfang der Spaß beim Programmieren vergeht.
Aus dem Grunde will ich in diesem Beitrag zumindest für Windows 10 aufzeigen, welche Programmer hier besonders empfehlenswert sind und welche Probleme machen. Es gibt nämlich auch problemlose ISP-Programmer!
Dabei erspare ich mir und euch bewusst die umständlichen Treiber-Experimente und Basteleien, denn hier ist Vorsicht angeraten. Während des Tests bin auch bei Ebay Angeboten durchaus auch auf einen Treiber gestoßen der laut Anti-Virenprogramm mehrere Viren beinhaltete! Der entsprechende Anbieter hat inzwischen die Treiber auf meinen Hinweis hin entfernt!
ISP-Programmer für Arduino Programmierer
Ein Grund warum die Arduino-Serie so beliebt ist, ist sicher die Tatsache dass die dort verwendeten AVR-Controller vorprogrammiert sind. Das bedeutet, es ist ein sogenannter Bootloader installiert, welcher die Kommunikation per USB-Kabel erlaubt. Die Programme können somit ganz einfach ohne einen ISP-Programmer auf den Controller übertragen werden. Eine sehr gute Lösung, Nachteil ist lediglich, dass ein wenig Speicherplatz dafür drauf geht.
Allerdings funktioniert dies nur solange wie man vorprogrammierte Controller oder Arduino-Boards einsetzt. Ist beim Experimentieren mal ein Atmel-Chip kaputt gegangen und man setzt einen neuen ein, dann kann man diesen nicht mehr so leicht programmieren. Man braucht auch dann einen ISP-Programmer um zunächst einmal den Bootloader zu installieren.
Auch kann es durch einen Fehler passieren dass man die sogenannten Fusebits falsch einstellt oder den Bootloader überschreibt, auch dann wäre ein ISP-Programmer notwendig. In der Praxis kommen daher auch Arduino-Programmierer nur ein Weile ohne ISP-Programmer aus, irgendwann werden auch sie einen echten ISP-Programmer brauchen. Die Entwicklungsumgebung (IDE) ist daher schon so geschrieben, dass sie auch einige ISP-Programmer direkt unterstützt. Auch hier habe ich getestet welche der Programmer besonders gut mit der IDE zusammenarbeiten.
ISP-Programmer Test mit Arduino IDE, Bascom und dem Atmel Studio
Die beliebtesten Entwicklungsumgebungen für Atmel AVR Mikrocontroller und Arduino-Boards sind die schon genannte Arduino IDE, der Basic Compiler Bascom und das Atmel Studio. Alle drei werden sehr häufig eingesetzt, jede hat ihre Vor- und Nachteile, aber das soll hier nicht unser Thema sein. Ich habe mir die Mühe gemacht und einige beliebte Programmer auf allen drei Entwicklungsumgebungen zu testen. Dabei findet Ihr auch den ein oder anderen Tipp welche Einstellungen Ihr wählen müsst damit es unter Windows läuft.
Getestet wurden in diesem Beitrag folgende Programmer:
- USB ISP-Programmer für ATMEL von Tremex
Hersteller/Anbieter: Firma Tremex (wird auch von Diamex angeboten)
Preis ca. 21 Euro / Bezug Amazon - ATMEL AVR Programmer USB AVRISP MK2
Hersteller/Anbieter: Firma Atmel
Preis ca. 50 bis 60 Euro / Bezug Amazon - KamPROG for AVR
Hersteller/Anbieter: Kamami (Polen) Auch über MCS (Bascom Hersteller) erhältlich
Preis ca. 35 Euro / Bezug MCS oder KAMAMI - Pololu USB AVR Programmer v2
Hersteller: Pololu (USA)
Preis USA ca. 12$ / Bezug USA Pololu oder mal bei Ebay* bzw. Amazon suchen* - USBASP
Hersteller/Anbieter: Lydia Vogler / Ebay
Preis ca. 6,49 Euro / Bezugsquelle hier bei Ebay* - USB Tiny ISP Programmer
Hersteller/Anbieter: Eckstein GmbH
Preis ca. 9,25 Euro / Bezugsquelle hier bei Ebay*
USB ISP-Programmer der Firma Tremex (auch von Diamex angeboten)
Dieser Programmer im ungewöhnlichen Plexiglas-Gehäuse gibt es schon eine ganze Weile, aber erst seit Windows 10 ist er für mich besonders empfehlenswert! Er benötigt nämlich seit Windows 10 keinerlei Treiber mehr. Er wird einfach mit dem USB-Port verbunden und automatisch wird ein virtueller COM-Port bereitgestellt. Er ist zwar auch für älteren Betriebsysteme ab Windows XP verwendbar, jedoch dort muss man dann einen mitgelieferten Treiber installieren, was unter Umständen auch mal Probleme bereiten kann.
Ein weiterer Vorteil dieses Programmers besteht darin, dass er sowohl unter Bascom, der Arduino-IDE und dem Atmel Studio 7 verwendet werden kann. Unter Bascom muss als Programmer lediglich bei der Programmer-Einstellung „STK 500 native driver“ gewählt werden und der entsprechende COM-Port angegeben werden. Den Com-port kann man über den Gerätemanager von Windows einsehen.
In der Arduino IDE muss im Menü Werkzeuge unter Programmer die Einstellung „Atmel STK500 developement board“ gewählt und ebenfalls über Menüpunkt Port der Com-Port eingestellt werden.
Im Atmel-Studio 7 muss im Menü Tools über „Add target“ ebenfalls „STK500“ ausgewählt und anschließend der COM-Port ausgewählt werden.
Unter allen drei Entwicklungsumgebungen funktioniert der Programmer unter Windows 10 völlig problemlos und das ohne einen Treiber zu installieren!
Die Leistungsmerkmale und Eigenschaften dieses Programmers:
- unterstützt alle gängigen Atmel Controller die über ein SPI-Interface verfügen (also unter anderem die Serien ATmega xx, AT90S xxxx, Attiny xx und weitere)
- unterstützt alle Arduino Boards mit ISP und Atmel Controller
- USB 1.1 und USB2.0 kompatibel
- STK500 kompatibel
- kann 3V Controller mit Spannung versorgen (max 120mA)
- kann 5,0V Controller mit Spannung versorgen (max. 150 bis 500mA, abhängig vom USB-Port)
- Spannungsanpassung manuell über Jumper
- kann Spannung für Controller deaktivieren (wenn Controller oder Board eigene Spannung hat)
- eigener Strombedarf nur ca. 15 mA
- unterstützt Taktraten 1 Mhz, 250 kHz, 62,5 kHz, 28,2 kHz, 4 kHz, 779 Hz
- Programmierkabel mit 10 poligen Stecker im Lieferumfang
- Programmierung von Boards mit 6 poliger Buchse über optionalen Adapter
- USB-Kabel im Lieferumfang
- funktioniert unter Windows 10 in Bascom, Arduino IDE und Atmel Studio 7 problemlos
Fazit zum Tremex Plexiglas Programmer
Sehr empfehlenswerter Programmer ab Windows 10, da er erst ab dieser Version ohne optionalen Treiber arbeitet und noch recht preiswert ist. Aufgrund seines Aufbaus ist zu erwarten, dass er auch in nachfolgenden Windows Versionen ohne Treiber problemlos arbeitet.
Letzte Aktualisierung am 2024-11-20 / * Affiliate Links
ATMEL AVR Programmer USB AVRISP MK2
Der Atmel AVR Programmer MK2 ist wohl einer der bekanntesten und am häufigsten eingesetzten ISP-Programmer überhaupt. Kein Wunder, denn zum einen gibt es ihn schon recht lange und zum anderen hat man großes Vertrauen in ihn, schließlich stammt er von Atmel selbst.
Unter Windows 10 funktioniert der Programmer auch sehr gut mit dem Atmel Studio zusammen, wenn man die aktuelle Version nutzt. Dennoch gehört dieser Programmer nicht zu meinen Lieblingsprogrammern, das Problem ist, dass er oft nicht unter Bascom oder der Arduino IDE genutzt werden kann. Zwar besitzt Bascom eine entsprechende Einstellung für den Programmer, jedoch funktioniert diese nur wenn man zusätzlich einen Treiber im Internet herunterlädt und installiert (LibUSB). Und gerade diesen Treiber-Hickhack wollte ich ja den Lesern dieses Beitrags ersparen.
Zumal dieser Treiber nicht signiert ist und unter Umständen recht kompliziert installiert werden muss. Zudem ersetzt dieser Treiber eventuell einen sogenannten Jungo-Treiber des Atmel Studios. Sollte es somit unter Bascom funktionieren, ist durchaus möglich dass dann das Atmel Studio nicht mehr geht. Das gleiche Wirrwarr gilt auch für die Arduino IDE. Auch die Arduino IDE hat extra einen Menüpunkt für diesen MK2 Programmer, aber auch dieser funktioniert nicht wenn man das Atmel Studio mit dem Jungo-Treiber installiert hat. Es ist also äußerst schwierig bis unmöglich diesen Programmer problemlos in allen drei Entwicklungsumgebungen zu nutzen.
Aber auch wenn man nur beim AVR Studio bleibt und es irgendwann eine neue Windows Version gibt, so kann es schon mal Treiber Probleme geben. Als Windows 10 heraus kam, gab es anfangs auch Probleme mit diesem Programmer. Zwar lieferte Atmel bald eine Erläuterung wie man den Programmer wieder zum Laufen bringen konnte, aber auch da wurde einem das Wurschteln an den Treiberdateien nicht erspart. Erst wesentlich später wurden die Probleme in einer neuen Atmel Studio Version behoben, heute funktioniert er dort wieder problemlos auch unter Windows 10, wie man den Fotos entnehmen kann.
Die Leistungsmerkmale und Eigenschaften dieses Programmers:
- unterstützt alle gängigen Atmel Controller die über ein SPI- oder PDI-Interface verfügen (also unter anderem die Serien ATmega xx, AT90S xxxx, Attiny xx und weitere)
- unterstützt alle Arduino Boards mit ISP und Atmel Controller
- USB 1.1 und USB2.0 kompatibel
- kann Controller oder Boards nicht mit Spannung versorgen (externe Spannung nötig)
- Controller mit externer Spannung von 2.7V bis 5.5V programmieren
- externe Spannung wird gemessen (ohne externe Spannung am ISP nicht programmierbar)
- Unterstützt Taktraten 8 Mhz, 4 Mhz, 2 Mhz, 1 Mhz, 500 Khz, 250 kHz, 125 kHz, 64 kHz, 32.65 Khz, 16.1 kHz, 8.239 Khz, 4.209 kHz, 2.152 kHz
- Programmierkabel mit 6 poligen Stecker im Lieferumfang
- Programmierung von Boards mit 10 poliger Buchse über optionalen Adapter
- USB-Kabel im Lieferumfang
- funktioniert unter Windows 10 und Atmel Studio 7 problemlos (Verwendung unter Aduino IDE oder Bascom schwierig).
Fazit zum ATMEL AVR Programmer
Dieser Programmer ist vornehmlich Programmierern zu empfehlen, die ausschließlich mit dem Atmel Studio arbeiten. In anderen IDE´s ist die Einbindung oft schwierig und Treiberkonflikte sind nicht auszuschließen. Wer aber ohnehin nur mit dem Atmel Studio arbeiten möchte, bekommt hier einen Programmer der besonders viele Atmel Mikrocontrollertypen programmieren kann. Atmel versorgt den Programmer über das Atmel Studio auch immer automatisch mit neuesten Updates.
Letzte Aktualisierung am 2024-11-21 / * Affiliate Links
KamPROG for AVR
Besonders große Erwartungen habe ich vor dem Test auch in den Programmer der polnischen Firma Kamami gesetzt. Dieser wird nämlich auch von der niederländischen Firma MCS (Bascom Hersteller) vertrieben und soll ganz ohne Treiber auskommen.
Der Hersteller liefert für diesen Programmer eine eigene Software mit, mit welchem Mikrocontroller programmiert, ausgelesen oder Fusebits programmiert werden können. Man ist also nicht mehr abhängig von der Zusammenarbeit mit einer IDE, man kann damit recht zügig die generierten Hex-Dateien übernehmen und übertragen. Der einseitige Dialog ist sehr übersichtlich (siehe Bild), man kann schnell erkennen wie man Dateien auslesen oder schreiben kann. Auch der Überblick über programmierbare Controller und Fusebits ist sehr gut. Es gibt sogar interessante Zusatzoptionen wie eine programmierbare Seriennummer die man automatisch an eine bestimmte Position im Mikrocontroller schreiben kann. Auch ist der Programmer und die Software automatisch in der Lage den Mikrocontroller zu identifizieren.
Die Installation ist im Grunde einfach, man lädt die Software von der Herstellerseite (oder MCS) und ruft das SETUP-Programm auf. Das Programm ist recht schlank und schnell installiert. Zudem sollte man noch die aktuelle Firmware für den Programmer herunterladen. Auch diese ist ganz einfach zu installieren, nur ZIP-Datei entpacken und das Programm „FirmwareUpgrade.exe“ aufrufen, ein Button klicken und alles ist passiert!
Obwohl ich dies gemacht hatte, gab es bei mir gleich das Problem dass die Software den Programmer nicht richtig erkannte und als Fehlermeldungen ausspuckte. Als Ursache stellte sich nach einer Weile heraus, dass die Software auf der englischen Seite des polnischen Anbieters offenbar veraltet ist. Ich habe die Software und Firmware dann bei MCS heruntergeladen und siehe da, alles hat wie beschrieben funktioniert.
In der Bascom IDE kann man den Programmer unter Optionen/Programmer einfach auswählen. Danach meldet sich der Dialog des Programmers automatisch, sobald in Bascom der interne Programmer aufgerufen wird. Die entsprechenden Einstellungen wie Pfad der Hex-Datei etc. werden dabei bereits korrekt vorgegeben, so dass ein Klick zum Übertragen genügt. Auf diese Weise kann man unter Bascom sehr komfortabel mit diesem Programmer arbeiten.
Für Atmel Studio 4 wird offenbar auch ein Plugin mitgeliefert, so dass der KamPROG-Programmer auch dort sehr bequem aus dem Atmel Studio aufgerufen und verwendet werden kann. Offenbar funktioniert das aber nicht automatisch mit Atmel Studio 7, man sollte dennoch per AVRDUDE den Programmer in die IDE einbinden können. Aber natürlich kann er auch als separates Programm relativ einfach neben dem Atmel Studio benutzt werden, um die generierten Hex-Dateien zu übertragen.
Gleiches gilt für die Arduino IDE. Auch hier wird der KamPROG-Programmer standardmäßig nicht direkt unterstützt. Aber natürlich kann auch hier die eigenständige Software des KamPROG-Programmers immer nebenher genutzt werden um generierte Hex-Dateien zu übertragen. Da dem Programmer beim Aufruf auch Parameter übergeben werden können, sollte es in der Arduino IDE aber auch möglich sein diesen direkt in die IDE einzubinden, dies habe ich aber nicht ausprobiert.
Die Leistungsmerkmale und Eigenschaften dieses Programmers:
- unterstützt alle gängigen Atmel Controller (laut Hersteller folgende ATmega128, ATmega1280, ATmega1281, ATmega1284P, ATmega16, ATmega162, ATmega164P, ATmega168, ATmega169P, ATmega2560, ATmega2561, ATmega32, ATmega324P, ATmega325, ATmega3250P, ATmega325P, ATmega328P, ATmega329, ATmega3290P, ATmega329P, ATmega48, ATmega64, ATmega644P, ATmega645, ATmega8, ATmega8515, ATmega8535, ATmega88, ATmega88P
ATtiny13, ATtiny2313, ATtiny24, ATtiny25, ATtiny26, ATtiny261, ATtiny44, ATtiny45, ATtiny461, ATtiny48, ATtiny84, ATtiny85, ATtiny861
AT90CAN128, AT90CAN64, AT90CAN32
AT90USB1286, AT90USB1287, AT90USB646, AT90USB647
AT90S2313 (aktuelle Liste auf der Herstellerseite) - USB 1.1 und USB2.0 kompatibel
- kann Controller oder Boards nicht mit Spannung versorgen (externe Spannung nötig)
- Controller mit externer Spannung von 3 bis 5V programmieren
- externe Spannung muss am ISP Stecker anliegen (ohne externe Spannung am ISP nicht programmierbar)
- unterstützt Taktraten 1,12 Mhz, 560 kHz, 280 kHz, 100 kHz, 50 kHz, 1 kHz
- Programmierkabel mit 10 poligen Stecker im Lieferumfang
- Programmierung von Boards mit 6 poliger Buchse über optionalen Adapter
- USB-Kabel im Lieferumfang
- inkl. eigenständiger komfortabler Software zum Programmieren/Auslesen etc.
- funktioniert unter Windows 10
- In Bascom IDE integrierbar
- in Atmel Studio 4 integrierbar (bei anderen Versionen nur als externes Programm nebenher verwendbar)
- standardmäßig nicht aus der Arduino IDE aufrufbar (lässt sich aber eventuell konfigurieren). Extern natürlich nebenher verwendbar um generierte HEX-Dateien zu übertragen.
Fazit zum Programmer KamPROG
Anfangs hat mich das Problem mit der veralteten Software etwas geärgert, daher empfehle ich die Software am besten gleich bei MCS herunterzuladen. Dann war ich jedoch sehr zufrieden mit diesem Programmer. Da er schnell installiert und auch völlig unabhängig von den IDE´s aller Anbieter arbeitet, ist er flexibel und schnell einsetzbar. Die Oberfläche ist übersichtlich und einfach zu bedienen. Somit kann ich auch diesen Programmer empfehlen, er ist nur in Deutschland etwas schwieriger erhältlich, aber die genannten Firmen liefern auch nach Deutschland.
Pololu USB AVR Programmer v2
Der Pololu USB AVR Programmer v2 der gleichnamigen amerikanischen Firma ist brandneu auf dem Markt. Es handelt sich um einen recht preiswerten Programmer, der allerdings ohne Gehäuse und ohne USB-Kabel geliefert wird.
Durch Verwendung einer Mikro-USB-Buchse ist er mit ca 4,5 x 1,5 cm ein echter Winzling den man schnell mal übersieht. Allerdings in Bezug auf Leistung und Handhabung gehört dieser Programmer zu den wirklich guten Programmern. Auch er unterstützt alle gängigen Atmel Controller mit SPI-Interface und natürlich entsprechende Arduino und Pololu-Boards.
Besonders angenehm ist, dass auch er unter Windows 10 keine zusätzlichen Treiber oder Software benötigt. Er wird einfach angesteckt und stellt dann automatisch gleich zwei virtuelle COM-Ports zur Verfügung. Welche COM-Ports das sind, kann man wieder dem Gerätemanager entnehmen. Bei mir im Test waren es die Ports COM8 und COM9. Der Hersteller stellt aber auch noch eine zusätzliche Software auf seiner Webseite bereit. Unter Windows 10 muss man diese aber nicht unbedingt installieren. Allerdings liefert diese ein Tool mit, mit der man bestimmte Verhalten und Signalleitungen des Programmers noch weitergehend konfigurieren kann. Sogar die genauen Spannungsgrenzen können eingestellt werden. Dieses Tool zeigt auch die Belegung der COM-Ports an und erspart einem den Blick in den Gerätemanager.
Im Lieferzustand ist der Programmer im AUTO-Modus und verhält sich ähnlich wie der „USB ISP-Programmer der Firma Tremex“.
Also auch der Pololu AVR Programmer emuliert das STK500 Protokoll, von daher kann er quasi mit einfachen Einstellungen sowohl im Atmel-Studio, der Arduino IDE und in Bascom genutzt werden. Die Konfigurierung erfolgt wie bereits beschrieben und auf den Bildern zu sehen ist. Unter Bascom muss als Programmer lediglich bei der Programmer-Einstellung „STK 500 native driver“ gewählt werden und der entsprechende COM-Port (in unserem Fall COM9) angegeben werden. Den Com-Port kann man über den Gerätemanager von Windows einsehen.
In der Arduino IDE muss im Menü Werkzeuge unter Programmer die Einstellung „Atmel STK500 developement board“ gewählt und ebenfalls über Menüpunkt Port der Com-Port eingestellt werden.
Im Atmel-Studio 7 muss im Menü Tools über „Add target“ ebenfalls „STK500“ ausgewählt und anschließend der COM-Port ausgewählt werden.
Der Programmer kann sowohl Mikrocontroller mit 3 oder mit 5V programmieren. Die Spannung ermittelt der Programmer über den VCC-Pin, sie muss somit normalerweise extern anliegen. Über das Konfigurationstool kann der Programmer aber auch so eingestellt werden, dass eine externe Spannung bereitgestellt wird. Diese darf maximal nur mit 80mA belastet werden. In der Regel ist es sicher empfehlenswert nach Möglichkeit immer mit externer Spannung zu arbeiten.
Eine Besonderheit dieses Programmers ist der schon erwähnte zweite COM-Port, der bereitgestellt wird. Der Pololu-Programmer ist nämlich nicht nur ein Programmer, sondern gleichzeitig ist es ein USB-TTL Seriell-Adapter. Das heißt, der Programmer stellt auch einen RX/TX Pin (weitere zwei Handshake Leitungen sind über Konfigurationstool aktivierbar) bereit. Diese Signale werden über eine zusätzliche Buchsenleiste mit der Spannung ausgegeben. Sie können genutzt werden um mit dem Terminalprogramm (zum Beispiel aus der Arduino IDE oder Bascom) mit dem Mikrocontroller Daten oder Debug-Informationen auszutauschen. Eine sehr nützliche Sache, die man eigentlich sowieso fast immer braucht!
Die Leistungsmerkmale und Eigenschaften dieses Programmers:
- unterstützt alle gängigen Atmel Controller die über ein SPI-Interface verfügen (also unter anderem die Serien ATmega xx, AT90S xxxx, Attiny xx und weitere)
- unterstützt alle Arduino, Pololu und andere Boards mit ISP und Atmel Controller
- USB 1.1 und USB2.0 kompatibel
- STK500 kompatibel
- kann 3V Controller mit Spannung versorgen (max 80mA)
- kann 5,0V Controller mit Spannung versorgen (max. 80mA)
- kann Spannung für Controller deaktivieren (wenn Controller oder Board eigene Spannung hat)
- alle Pin´s mit 470 Ohm Schutzwiderstand
- Unterstützt Taktraten 3 Mhz, 2.4 Mhz, 2 Mhz, 1.714 Mhz, 1,5 Mhz, 1,2 Mhz, 1Mhz, 750 KHz, 444 Khz, 114 Khz, 28,3 Khz, 14 Khz, 6,98 Khz, 3,47 Khz, 1,744 Khz, 1.465 Khz
- Programmierkabel mit 6 poligen Stecker im Lieferumfang
- Programmierung von Boards mit 10 poliger Buchse über optionalen Adapter
- USB-Kabel nicht im Lieferumfang
- kein Gehäuse
- stellt zusätzlich ein USB-TTL-Wandler für Datenaustausch bereit
- eigenes Konfigurationstool wahlweise installierbar
- unter Windows 10 kein zusätzlicher Treiber nötig
- funktioniert unter Windows 10 in Bascom, Arduino IDE und Atmel Studio 7 problemlos
Fazit zum Pololu USB AVR Programmer v2
Dieser Winzling hat mich wirklich überrascht. Ein wirklich guter Programmer der alle genannten Entwicklungsumgebungen unterstützt, keine Probleme mit Treibern macht und sogar noch ein TTL->USB Adapter beinhaltet. Einziges Manko ist, dass er kein Gehäuse besitzt, aber wenn man darauf verzichten kann ist er in jedem Fall zu empfehlen und mein Favorit.
USBasp
Der USBasp Programmer, den ich getestet habe, stammt von Ebay und wird über Lydia Vogler für ca. 7 Euro angeboten. Es gibt aber auch noch zahlreiche andere Anbieter die kompatible Programmer anbieten, jedoch oft etwas teurer. Es ist also der günstigste Programmer den ich ausprobiert habe. Auch er wird ohne Gehäuse angeboten und beinhaltet nur ein 10 poliges ISP-Kabel. Ein USB-Kabel ist nicht nötig, da der Programmer direkt in die USB-Buchse des PC eingesteckt werden kann.
Auch er kann alle gängigen Microcontroller der Atmel Mega und Classic Serie programmieren (genaue Liste findet man im Ebay-Angebot).
Leider gehört keine Beschreibung zum Lieferumfang, so dass man entweder nachfragen oder im Internet recherchieren muss, für was die Jumper sind bzw. welchen Treiber man braucht.
Jumper 2 erlaubt die Wahl zwischen 3V und 5V. Wird Jumper 1 gesteckt, dann kann der Programmer selbst neu programmiert werden. J3 könnte man auch noch brücken um einen niedrigen ISP-Takt zu erzeugen. Welche Taktraten benutzt werden wird nicht angegeben.
Das Problem dieses Programmers ist, dass er auf einem freien nicht signierten Treiber (http://www.fischl.de/usbasp ) aufbaut. Dieser Treiber muss also von der genannten Seite heruntergeladen und manuell installiert werden. Leider lassen sich nicht signierte Treiber unter Windows 10 nur recht umständlich installieren. Zudem ist mein Vertrauen in nicht signierte Treiber unter Windows 10 auch nicht sehr groß. Schon aus diesem Grund ist der Programmer für mich weniger empfehlenswert für Windows 10 Nutzer, zumal auch die anderen Leistungsmerkmale den Mehraufwand bei der Installation und garantiert auch bei späteren neuen Windows-Versionen, nicht wert sind. Unter älteren Windows Versionen ist der Treiber einfacher zu installieren, hier kann dieser Programmer durchaus eine günstige Lösung sein. Getestet habe ich ihn beispielsweise unter Windows Vista mit der Arduino IDE, das lief problemlos.
Wer sich unter Windows 10 aber dennoch für diesen Programmer entscheidet, findet auf folgender Seite einige Hilfen zur Installation des Treibers: Netmaxtech
Unterstützt würde der Programmer nach der erfolgreichen Installation des Treibers von Bascom als auch der Arduino IDE. Im Atmel Studio 7 könnte er nur genutzt werden indem man das Tool AVRDUDE mit entsprechenden Parametern in die IDE einbindet. Auch dazu gibt ein Video Hilfestellung: Video-Link
Die Leistungsmerkmale und Eigenschaften dieses Programmers:
- unterstützt viele gängige Atmel Controller die über ein SPI-Interface verfügen (genaue Liste im Ebay-Angebot)
- unterstützt alle Arduino, Pololu und andere Boards mit ISP und Atmel Controller
- USB 1.1 und USB2.0 kompatibel
- kann 3V und 5V Controller mit Spannung versorgen. Die Spannung muss aber durch Umstecken eines Jumpers festgelegt werden (max. Stromstärke ist nicht dokumentiert)
- unterstützte Taktrate ist nicht dokumentiert (angeben wird nur 5 KB/sek Schreibgeschwindigkeit)
- Programmierkabel mit 10 poligen Stecker im Lieferumfang
- Programmierung von Boards mit 6 poliger Buchse über optionalen Adapter
- USB-Kabel nicht erforderlich, da Platine direkt in USB-port gesteckt wird
- kein Gehäuse
- für Windows 10 nicht gut geeignet, da der erforderliche Treiber nicht signiert ist
- funktioniert z.B. unter Windows Vista in Bascom, Arduino IDE
- im Atmel Studio 7 wäre Einbindung nur über AVRDUDE (ab Version 5.2) möglich
Fazit zum USBasp Programmer
Die lückenhafte Dokumentation und die Verwendung eines unsignierten Treibers macht die Verwendung insbesondere für Einsteiger unter Windows 10 sehr schwierig bis unmöglich. Für den Preis ist es sicher eine verwendbare Lösung auf älteren Betriebssystemen, wer aber öfters den Programmer braucht, sollte doch lieber ein paar Euro mehr investieren und zu einen der anderen vorgestellten Programmern greifen.
USB Tiny ISP Programmer
Ebenfalls über Ebay ist der USB Tiny ISP Programmer erhältlich. Getestet haben ich die Variante der Firma Eckstein GmbH, welche dort ca. 10 Euro kostet. Es gibt aber auch zahlreiche kompatible Varianten von anderen Anbietern.
Vom Aufbau her macht dieser Programmer einen durchaus guten Eindruck. So verfügt er über eine 6 polige und eine 10 polige Buchse. Im Lieferumfang ist sowohl ein USB-Kabel als auch ein 10 und 6 poliges ISP-Kabel enthalten, so dass theoretisch alle Boards ohne zusätzlichen Adapter programmiert werden können.
„Theoretisch“ muss ich deshalb schreiben, da dies der einziger Programmer war, den ich weder unter Windows 10 noch unter Windows Vista zum Laufen bringen konnte. Leider ist die Dokumentation dieses Programmers sehr schlecht bis überhaupt nicht vorhanden. Auf Nachfrage haben wir vom durchaus sehr freundlichen Anbieter zwar mehrere Treiber zum Ausprobieren bekommen, aber keiner funktionierte. Zwar gab es einige Treiber die korrekt erkannt und auch akzeptiert wurden, der Programmer erschien auch im Gerätemanager, dennoch gelang es uns mit keiner IDE die Verwendung. Eigentlich hat die Arduino IDE extra eine Programmer-Einstellung für den USBTiny-Programmer, außer einer Fehlermeldung von AVRDude passierte aber nichts.
Fest steht, dass dieser Programmer auch die berüchtigte LIBUSB benötigt, der Treiber der so oft für Probleme sorgt! Vielmehr kann ich zu der Lösung nicht sagen. Bislang konnte ich die Treiberkonflikte nicht klären.
Die Leistungsmerkmale und Eigenschaften dieses Programmers:
- unterstützt gängige Atmel Controller (welche genau ist nicht angegeben)
- USB 1.1 und USB2.0 kompatibel
- ob nur 5V oder auch 3V Controller programmiert werden können steht nicht dabei. Vermutlich nur 5V !
- ein Jumper gestattet die Spannungsversorgung des Controllers (wie stark er belastet werden kann steht nicht dabei)
- unterstützte Taktrate ist nicht dokumentiert
- Programmierkabel mit 10 und 6 poligen Stecker im Lieferumfang
- USB-Kabel im Lieferumfang
- kein Gehäuse
- unter Windows 10 bekamen wir ihn nicht zum Laufen, auch nicht unter Windows Vista
- welcher Treiber genau funktioniert ist nicht bekannt, bei uns keiner!
- wenn er funktionieren würde, würde er wohl von der Arduino IDE unterstützt
- ob er auch unter Bascom und Atmel Studio 7 verwendbar wäre ist unklar
Fazit USB Tiny ISP Programmer
Da er bei uns trotz Unterstützung des Anbieters nicht zum Laufen zu bringen war, kann ich ihn natürlich auch nicht empfehlen. Auch die mangelnde Dokumentation lässt eine vernünftigen Verwendung nicht zu. Sollten wir das Problem noch klären können, ergänzen wir diesen Beitrag entsprechend.
Welches ist nun der beste ISP-Programmer?
Das kommt schon ein wenig drauf an in welche IDE man programmieren möchte. Am besten hat uns der Pololu Programmer* gefallen, er lief in allen IDE´s problemlos und brachte noch einen USB-UART Wandler mit. Auf Platz 2 würde ich den USB ISP-Programmer von Tremex* sehen, auch er lief in allen IDE´s problemlos. Knapp dahinter ist aber auch der KamPROG, er integriert sich zwar nur in Bascom, kann aber dank seiner eigenen Software gut parallel zu allen IDE´s genutzt werden. Über die Kommandozeile lässt er sich optional auch mit AVRDUDE einbinden. Der MK2 von Atmel ist von Qualität und Technik sehr gut, ist aber nicht immer in allen IDE einfach verwendbar, daher würde ich diesen auf Platz 4 sehen. Die beiden anderen Programmer waren in Handhabung doch sehr problematisch, die kann ich nicht mehr empfehlen.
Die wichtigsten Daten in der Gegenüberstellung
Platz 2 | Platz 4 | Platz 3 | Platz 1 | |||
---|---|---|---|---|---|---|
Bezeichnung | USB ISP-Programmer | ATMEL AVR Programmer USB MK2 | KamPROG for AVR | Pololu USB AVR Programmer v2 | USBASP | USB Tiny ISP |
Hersteller | Tremex | Atmel | Kamami | Pololu | nicht bekannt | nicht bekannt |
Preis (ca.) | 21 € | 59€ | 35€ | 12$ | 7€ | 10€ |
Unterstützt 3V Controller | k.A. | |||||
Unterstützt 5V Controller | ||||||
Automatische Spannungserkennung | k.A. | |||||
Stellt Spannung bereit | 3V (120mA) 5V (bis 500mA) | konfigurierbar (80mA) | per Jumper | |||
Treiber unter Windows unnötig | ||||||
Funktioniert aus Arduino IDE | (im Test nicht) | (optional mit AVRDUDE konfigurierbar) | (wenn man Treiber installiert) | eigentlich ja, im Test nicht | ||
Funktioniert aus Bascom Compiler | nur mit LibUSB Treiber | nur mit LibUSB Treiber | k.A. | |||
Funktioniert aus Atmel Studio | (optional mit AVRDUDE konfigurierbar) | (optional mit AVRDUDE konfigurierbar) | k.A. | |||
Taktraten (von/bis) | 779Hz bis 1 Mhz | 2.152 bis 8 Mhz | 1 Khz bis 1.12 Mhz | 1.465 bis 3 Mhz | k.A. | k.A. |
Stecker (Polzahl) | 10 polig | 6 polig | 10 polig | 6 polig | 10 polig | 10 & 6 polig |
Bezugsquelle | Amazon* | Amazon* | MCS | Pololu | Ebay* | Ebay* |
Links zum Thema
- ISP – In System Programmierung (Wikipedia)
- LIBUSB – Link zum Treiber den einige Programmer brauchen (nicht signiert)
- Zadig-Tool – Hilfe bei LIBUSB-Treiberproblemen (man sollte aber wissen was man tut)
Hallo Frank,
sehr schöner Vergleichstest, vielen Dank. Wieso hast Du den Arduino selber nicht als ISP in den Test aufgenommen? Damit programmiere ich problemlos den ATmega328P und auch alle Attiny’s.
Ein kleines Shield dazu ist auch schnell gebaut.
https://www.arduino.cc/en/Tutorial/ArduinoISP
http://playground.boxtec.ch/doku.php/projekte/dinoi?s%5B%5D=isp#programming_shield
Gruss Dinoi
Hi
Wollte ich erst noch machen, aber aber erschien mir dann nicht so praktikabel, zumal fertige Lösungen nicht viel kosten und doch noch etwas komfortabler sind. Aber vielleicht ergänze ich es diesbezüglich noch.
Hallo, ich bin bei der Suche nach einem Programmer auf den Artikel und den Blog gestoßen, ein Lob gibt es von mir für beides (!!), aber explizit noch einmal vielen Dank für diesen Vergleich! Ich habe mich für den Programmer von Pololu entschieden.
Gründe dafür waren: Relativ geringer Anschaffungspreis, Windows-10-Unterstützung (Plug&Play), unterstützt 3,3V, USB-TTL Seriell-Schnittstelle
Ich habe mir den Programmer via Amazon aus Frankreich kommen lassen (18 Euro incl. Versand). Beim stöbern auf der Pololu-Seite stieß ich auf ein weiters Vorteil: Der Programmer wird dort komplett vorgestellt, und es existiert somit eine komplette Bedienungsanleitung
( https://www.pololu.com/docs/0J67 ) die für Einsteiger (wie mich) interessant und evtl. hilfreich ist, da er sich auch mit der Einrichtung in den verschiedenen IDEs (Atmel, Arduino, Basecom) auseinandersetzt. Noch habe ich nichts mit dem Programmer machen können, aber das wäre (für mich) noch ein starker Faktor bei der Kaufentscheidung gewesen.
Gruß, Johnny
Ja auf den jeweiligen Herstellerseiten gibt es natürlich meist die komplette Doku zum jeweiligen Programmer, die Pololu Dokumentation ist dabei besonders gut gelungen, danke für Tipp!
Danke für den Test, allerdings hab ich noch ein bisschen was zu meckern 😉
Welche Windows 10 Version hast du verwendet? 32 oder 64-Bit?
Meiner Meinung nach fehlt dieser Programmer: Diamex ALL-AVR* in deinem Test!
Was ist mit dem AVR Dragon, zu Teuer für deine Testrunde?
Die PDI-Schnittstelle für die neueren Xmega Mikrocontroller kommt in deinem Test viel zu kurz. Ist vielleicht nicht deine Zielgruppe, finde ich aber wichtig und sollte auch in die Bewertung einfließen!
Wenn du Lust hast, kannst du deinen Test vielleicht etwas weiterführen.
Grüße!
Du hast recht, ich hatte wohl tatsächlich vergessen zu schreiben das es natürlich um die 64 Bit Version von Windows 10 geht. Die 32 Bit Version wird sicherlich nur noch selten verwendet. Sicherlich hätte ich noch unzählige andere Programmer testen können, es gibt sehr sehr viele! Mir ging es aber eigentlich nur darum ein paar günstige Programmer vorzustellen die wirklich ordentlich funktionieren, mehr brauchen doch die meisten gar nicht! Aber du könntest gerne einen ergänzenden Beitrag schreiben und noch weitere vorstellen, ich veröffentliche ihn gerne hier!
Danke für den Vergleichstest. Mein Bascom AVR-USB ISP Programmer
hat sich so eben verabschiedet, also muss ein neuer her.
Da ich AVRstudio nicht benötige, möchte ich hier das nicht extra installieren müssen um aus der
Bascom-IDE flashen zu können. (wie bei dem Mcselec Programmer)
Frage: welcher von den o.g. Programmern funktioniert mit BASCOM OHNE das Avrstudio installiert zu haben?
Vielen Dank für euere Rückmeldung!
Du könntest z.B. den KamPROG oder den Pololu USB AVR nehmen, die sind beide gut und brauchen kein AVR Studio
Sehr guter Vergleich bzw. Artikel. Habe mir auch bei dem AVRISP mkII und libusb, Jungo Treiber, Erzeugung neuer .inf files etc. für Bascom die Zähne ausgebissen. Ein Werkzeug sollte einfach nur problemlos funktionieren.
Hallo,
super interessant u hilfreich dieser Vergleich.
Ich hatte mir den asbusb geholt u. verzweifele gerade daran ihn benutzen zu können unter WIN 10. Leider funktioniert der Link zum Beitrag der Treiberinstalation (auf Netmaxtech) nicht mehr.
Ich werde wahrscheinlich auch zu dem pololu programmer wechseln.
lg
Vielen Dank für den informativen Beitrag – habe den Pololu-Programmer angeschafft und bin sehr zufrieden!
Beste Grüße, Jürgen