Irgendwann im letzten Jahr stolperte ich beim Recherchieren über das mySmartUSB light Programmiergerät für AVRs. Laut der Dokumentation und Beschreibung sollte es problemlos auch unter Linux funktionieren.
Bei einem moderaten Preis um 20€ habe ich es mir dann als Ergänzung zu meinem ähnlich preiswerten Pollin Evaluationboard gekauft.
Das Gerät kommt als kleiner USB Stick daher, hat einen Anschluss für das 6polige ISP Kabel und kann kleinere Systeme auch problemlos über USB mit Saft versorgen.
Ausprobiert habe ich den Stick kurzerhand mit meinem Arduinoboard, allerdings nur lesend. Der Arduino bringt den 6poligen Sockel direkt mit, so daß das Programmiergerät direkt passt. Unter Linux wurde mir direkt ein neuer USB COM Port angezeigt und verfügbar gemacht.
Anschließend habe ich AVR8 Burn-O-Mat benutzt, avrdude auf STK500v2 Protokoll und die USB Schnittstelle eingestellt, und es hat auf Anhieb funktioniert, ich konnte den Flashinhalt des Arduinos direkt auslesen. Im Binärvergleich mit dem Arduinoprotokoll und dem Arduino direkt stimmt das FLASH überein, beim Auslesen des EEPROMs gab es Diskrepanzen, das neue Gerät zeigt ein leeres Eeprom, während mit dem Arduinoprotokoll Inhalte übertragen werden. Auch die Fuses konnte ich nur mit dem neuen Gerät und STK500V2 Protokoll korrekt auslesen. Da muss ich in jedem Fall mal mit einem leeren ATmega16 oder dgl experimentieren, vllt. hat das arduino Bootloaderprotokoll Besonderheiten oder meine avrdude Version ist zu alt.
Unter Windows muss man wohl erst einen USB Treiber installieren, aber ich gehe davon aus, daß das Gerät dort genauso und ohne Macken funktioniert.
Für 10polige Sockel gibt es wohl ein offizielles Adapterkabel, bzw ein Wechsler, der von 10 auf 6 und 6 auf 10 Pole umschaltet. Beide Formate sind in jedem Fall von Atmel standardisiert.
In jedem Fall für Embedded Entwickler, die AVRs per ISP programmieren, ein nützliches und preiswertes Gadget für den kleinen Erste Hilfe Koffer.
Mehr zum Gerät, u.a. Downloads unter http://shop.myavr.de/Topseller/mySmartUSB%20light.htm?sp=article.sp.php&artID=200006
Wie ich mittlerweile ausprobiert habe, funktioniert der mySmartUSB light für das EEPROM lesen korrekt.
Ich habe mit einem einfachen Arduino Sketch das EEPROM anzeigen lassen, und anschließend mit dem mySmartUSB light ausgelesen. Inhaltlich war es identisch.