Anderer Kram:
Problem: Vermeintliches AVR-Programmiergerät „AVR-ISP-mkII“ aus China erweist als (zu teurer) Klon, der überhaupt nicht funktioniert. Zumindest nicht mit avrdude, dem Arbeitspferd von Arduino und WinAVR.
Besser: Beim nächsten Mal nicht in China kaufen. Eines können die Chinesen: Täuschend echt aussehende Gehäuse herstellen! Es unterscheidet sich vom Original nur durch die fehlenden Schriftzüge „AVR“ und „Atmel“. Alternativen:
Untersuchung: Durch die Universität kommt mir auch mal ein Original-Programmiergerät in die Pfoten, und dieses funktionierte sofort. Na gut, ebenfalls erst nach Treiberinstallation. Lästig ist dabei, dass es nicht ohne (externe) Speisung des Controllers funktioniert; der UCC ist datenblattgemäß ein Eingang, der die Programmierspannungspegel (5 V, 3,3 V oder auch weniger) nachführt.
Frisur am Original: Um den Controller auch mal speisen zu können habe ich den allfälligen Schalter zwischen USB-Busspannung und UCC gelegt. Das geht aber nur für ATtiny und ATmega, nicht für xMega! Da der Programmer nicht mir gehört, ohne Modifikation am Gehäuse.
Frisur am Clone: Netterweise ist zur Speisung des Targets ein Jumper vorgesehen, wenn auch nicht bestückt. Hier habe ich nun eine „zweipolige Stiftleiste“ zur UCC-Speisung (roter Jumper) bestückt. Die bereits vorhandene ist für Reset und Urlader des STC-Controllers. Der bekommt seine Firmware über die dreipolige serielle Schnittstelle mit R-T-G. Auch das zehnpolige Kabel ist für mich unbrauchbar, ich habe es durch ein sechspoliges ersetzt.
Fehlersuche: Mit einem Oszilloskop, aber auch nur
mit einem Oszilloskop ist der Fehler schnell gefunden:
Es findet ein Kommunikationsversuch mit dem (bereits programmierten)
Mikrocontroller statt, aber die Antwort ist wirr:
Der Programmer „vergisst“
Vergleich: Der Aufwand, den Atmel für ihr
Programmiergerät betreibt, ist schlicht gigantisch!
Andererseits gibt es keinen Atmel-Controller,
der das USB-Interface mit EP2IN
und EP2OUT nachbilden kann,
und so gesellt sich neben dem ATmega128 ein extra USB-Chip
aus den Anfangstagen von USB, nicht von Atmel,
sondern PDIUSBD12 von Philips.
Bei so viel Aufwand verwundert es, dass es nicht gleich HVSP
und TPI-HV beherrscht.
Der China-Clon erscheint minimalistisch, und ihr STC-Controller
kann EP2IN und EP2OUT feilbieten.
Warum bei immer noch freien Pins keine Speisespannungs-Zuschaltung
realisiert, keinen Taktausgang anbietet und kein TPI-HV anbietet
erscheint unverständlich.
Mit der Nicht-Funktion hat das nichts zu tun!
Für xMegas ist der Clon offiziell nicht geeignet,
weil Pegelumsetzer für 3,3 V fehlen.
Funktionieren wird bzw. könnte es trotzdem, habe keinen zum Testen.
Siehe auch: