Programmer für Atmel Studio

Über den Beitrag

Wenn man mit Atmel Studio arbeiten möchte, braucht man zunächst einmal einen geeigneten Programmer um seine Programme vom PC auf den Microcontroller (MCU) zu laden. Die gute Nachricht ist, dass es eine ganze Reihe davon gibt, die schlechte Nachricht ist, dass die Programmer recht teuer sind, insbesondere wenn man Features wie Debugging oder HVSP (High Voltage Serial Programming) nutzen möchte.  

Ich werde hier nur Programmer beschreiben, die ich selbst besitze und ausprobiert habe. Das sind die im Bild oben abgebildeten Vertreter: AVR Dragon, Atmel-ICE und der USB ISP-Programmer von Tremex / Diamex. 

In separaten Beiträgen werde ich noch eine kleine Einführung in Atmel Studio 7 geben und zeigen, wie man Arduino Sketche einschließlich Bibliotheken in Atmel Studio integrieren und debuggen kann.

Welchen Programmer sollte ich mir zulegen?

Gute Frage und die Antwort hängt wie so häufig vom Budget, dem persönlichen Geschmack und vom individuell benötigten Funktionsumfang ab. Ich hoffe, dass mein Beitrag euch dabei hilft, diese Frage zu beantworten. Vorab sind aber noch ein paar Begriffserklärungen notwendig.

ISP: In-System-Programming. Das ist die Standardmethode für die Programmierung von Microcontrollern. Der Name rührt daher, dass die Programmierung im verbauten Zustand erfolgt. Die ISP Anschlüsse sind meist identisch mit den SPI Anschlüssen. Mehr zu ISP hier auf Wikipedia.

JTAG: Ein Standard der Joint Test Action Group zur Programmierung von MCUs. Nicht jeder MCU ist JTAG fähig.  

debugWire: wie der Begriff schon verrät, ist mit dieser Methode Debugging möglich. Man kann Programme damit schrittweise ausführen, Breakpoints setzen und Variableninhalte verfolgen. Debugging ist prinzipiell sowohl über ISP wie auch JTAG möglich, nur muss der Programmer das auch unterstützen. 

HVSP: High Voltage Serial Programming. High Voltage ist vielleicht etwas irreführend, es geht um 12 Volt. Mit dieser Methode lassen sich auch „verfusede“ MCUs wieder herrichten. „Verfused“ (allerschönstes Denglisch) heißt, dass ihr Einstellungen in den Fuse-Bits vorgenommen habt, die eine Programmierung nicht mehr zulassen. Ihr habt euch sozusagen ausgeschlossen und das ist der rettende Schlüsseldienst. 

Der AVR-Dragon

Dragon, Vorder- und Rückseite. Ein Programmer für Atmel Studio.
Dragon, Vorder- und Rückseite

Der AVR Dragon ist mein persönlicher Favorit, da er ISP, JTAG, debugWire und HVSP beherrscht und somit von den drei vorgestellten Programmern die Möglichkeiten von Atmel Studio am besten nutzt. Für ihn müsst ihr ca. 50-80 Euro auf den Tisch legen und wundert euch dann wahrscheinlich, dass ihr für euer Geld nicht mal ein Gehäuse bekommt und das Teil darüber hinaus auch noch gewissermaßen „unfertig“ ist. Beides hängt aber miteinander zusammen.

Der Dragon bietet die Möglichkeit, MCUs direkt auf ihm in der On-Board Prototyping Area zu programmieren. Das hat den Vorteil, dass man keine Schaltung auf einem externen Board aufbauen muss, wenn man z.B. nur mal eben ein paar Einstellungen ändern möchte.

On-Board Programmierung mit dem Dragon

Um die On-Board Programmierung vornehmen zu können, muss man einen Sockel für die MCUs und daneben eine Pinleiste (2 x 20) für den Zugang zum Sockel auflöten. Als Sockel nimmt man am besten einen ZIF-Sockel, bei der Pinleiste hat man die Wahl zwischen „male“ und „female“, wobei die meisten wohl „male“ nehmen. Wenn man dann noch HVSP nutzen möchte, muss man zusätzlich eine 2 x 10 Pinleiste auflöten.  

Der Dragon einmal "roh" und einmal mit Pinleisten und ZIF-Sockel
Der Dragon einmal „roh“ und einmal mit Pinleisten und ZIF-Sockel

Es sind also vor allem die Zugänglichkeit und die Flexibilität bei der Auswahl der Erweiterungen, die ein Gehäuse für den Dragon nicht wirklich sinnvoll machen. Ich hatte, wie man auf den Bildern sieht, im Rohzustand ein paar Abstandshalter aus Polyamid angeschraubt, damit das Board nicht direkt mit seinen Lötstellen aufliegt. Der ZIF-Sockel verdeckt leider die Bohrungen, so dass die Muttern nicht mehr passen. Allerdings habe ich festgestellt, dass die Abstandshalter auch ohne Muttern fest sitzen (siehe nächstes Foto). 

Der Dragon wird – wie die anderen Programmer auch – über USB an den PC angeschlossen. Auf meinem Windows 10 System wurde der Dragon problemlos erkannt und konnte direkt in Atmel Studio 7 ausgewählt werden. Eine weitere Treiberinstallation war nicht notwendig. 

Verkabelung bei der On-Board Programmierung

Für die On-Board Programmierung wird der MCU (eigentlich die MCU, weil: die Microcontroller Unit, aber fast alle schreiben der) im ZIF-Sockel fixiert. Die Ausrichtung des MCUs erfolgt entsprechend der Nummerierung, die an der Pinleiste auf dem Dragon aufgedruckt ist. Nun muss man je nach Methode und MCU Typ die JTAG-, ISP- oder HVSP Pins mit den Pins der Anschlussleiste für den ZIF Sockel verbinden. Das ist sehr übersichtlich im User Guide zum AVR Dragon schematisch dargestellt. 

On-Board-Programmierung mit dem Programmer AVR Dragon.
On-Board Programmierung – Beispiel: ATtiny85 per ISP

Praktisch sieht das dann z.B. so aus: 

On Board Programmierung eines ATtiny85 per ISP
On Board Programmierung eines ATtiny85 per ISP

Externe Programmierung mit dem Dragon

Für die externe Programmierung, z.B. auf einem Breadbord, muss man darauf achten, dass man bei der Verkabelung keinen Fehler macht. Der ISP Anschluss ist folgendermaßen belegt:

ISP Anschlussschema
ISP Anschlussschema

Der Pin 1 ist normalerweise durch einen Punkt oder eine 1 gekennzeichnet. Trotzdem kann man sich leicht vertun. Ich empfehle deswegen in einen Breadboardadapter zu investieren, den es z.B. hier gibt oder hier als Variante mit 2×3 Pinleiste. 

Sinnvolle Anschaffung zum Programmer: ein Breadboardadapter
Sinnvolle Anschaffung: ein Breadboardadapter

Des Weiteren ist zu beachten, dass der Dragon den zu programmierenden MCU nicht mit Strom versorgen kann. Trotzdem müssen VCC und GND verbunden werden, da Atmel Studio überprüft, ob die Spannung den Spezifikationsgrenzen des MCUs entspricht. 

Als Spannungsversorgung verwende ich gerne solch ein praktisches Stromversorgungsmodul, das es für wenige Euros z.B. bei Amazon gibt:

Stromversorgungsmodul für Breadboards

Alternativ verwende ich einen 9 Volt Akku in Verbindung mit einem LM7805:

5V Stromversorgung mit einem LM7805
5V Stromversorgung mit einem LM7805

Der Atmel-ICE

Der Atmel-ICE Programmer
Der Atmel-ICE Programmer

Den Atmel-ICE gibt es in drei Ausfertigungen: 

  • Atmel-ICE Basic
  • Atmel-ICE (Full Kit) 
  • Atmel ICE – PCBA Kit

Die Basic Variante

Die Basic Variante besteht aus dem oben abgebildeten Programmer im weißen Gehäuse, einem USB-Kabel und einem Adapter Kabel von 10-Pin 50-mil auf 6-Pin 100-mil (rot eingekreist im Bild weiter unten). Die 10-pin 50-mil Seite ist der etwas exotische Anschluss für den Atmel-ICE, die 6-Pin 100-mil Seite passt auf Standard ISP Header. Ersatzkabel kosten unverschämt viel (~20 Euro!). Ich habe mal versucht, mir die Teile für ein Ersatzkabel im Selbstbau zu besorgen – und bin gescheitert. Passt also gut auf dieses Kabel auf.

Für die Programmierung von AVR Microcontrollern per ISP reicht die Basic Variante völlig aus. Der Preis liegt bei ca. 120-130 Euro.

Die Full Kit Variante

Das Full Kit enthält lediglich zwei zusätzliche Adapter auf die ich hier nicht weiter eingehen will:

Kabel und Adapter des Full Kit
Adapter des Full Kit, rot hervorgehoben: diesen Adapter gibt es auch im Basic Kit

Wenn nichts dabei steht, also nur „Atmel-ICE“, dann sollte es sich um das Full Kit handeln, prüft das aber genau, falls ihr es euch zulegen wollt. Das Full Kit gibt es für ca. 180 Euro – stolzer Aufpreis für ein Kabel und ein kleines Adapterboard. 

Das nackte Board – die PCBA Variante

Die PCBA Variante ist das nackte Board ohne Gehäuse und ohne weitere Adapterkabel. Das würde ich nur Bastelfreaks empfehlen. Es ist zwar schon für 80 bis 90 Euro zu haben, aber ohne Anschlusskabel nützt einem das Teil nichts. 

Eigenschaften des Atmel-ICE

Der Atmel-ICE beherrscht ISP, JTAG und debugWire, aber kein HVSP. Dafür kommt er im schönen, schützenden Gehäuse. Muss jede(r) selbst wissen was ihm / ihr wichtig ist.

Wie beim AVR Dragon ist auch beim Atmel-ICE eine externe Stromquelle für den Ziel-MCU notwendig. 

Auch dieser Programmer wird direkt vom PC und Atmel Studio erkannt, ohne dass Treiber installiert werden müssen. Weiterführende Informationen gibt es im User Guide.

Der USB ISP-Programmer

USB ISP-Programmer

Der USB-ISP Programmer kann von der Firma Diamex bzw. Tremex bezogen werden. Irgendwie hängen die Firmen miteinander zusammen, aber da bin ich nicht so ganz durchgestiegen. Egal, auf Amazon findet ihr das Teil unter den entsprechenden Suchbegriffen für ca. 20 Euro. Es ist also mit Abstand der günstigste Vertreter unter den hier vorgestellten Programmern. Im Lieferumfang ist noch ein USB Kabel und ein 10 poliges Kabel für die MCU Seite enthalten.  

Für den günstigen Preis muss man beim USB ISP-Programmer leider auf das Debugging verzichten. Auch HVSP ist nicht möglich. Andererseits hat dieses Modell den Vorteil, dass es den Strom für das Target liefern kann. Die Einstellung erfolgt über die Dipschalter:

  • 1: ON oder OFF / 2: OFF –> Spannungsversorgung ist AUS
  • 1: OFF / 2: ON –> 3.3 Volt Spannungsversorgung EIN
  • 1: ON / 2: ON –> 5 Volt Spannungsversorgung EIN 

Den USB ISP-Programmer von Tremex/Diamex müsst ihr zunächst in Atmel Studio integrieren. Dazu geht ihr im Menü auf

Tools –> Add Target… –> Select Tool

Wählt STK500 und den Port, dann bestätigt mit „Apply“. Das war’s auch schon.

Weitere Informationen gibt es beim Hersteller. Wenn ihr dem Link folgt , dann findet ihr dort Downloadbereich noch eine kleine Anleitung.

Auch für den USB ISP-Programmer ist ein Breadboardapter eine sinnvolle Anschaffung. Eine weiteres sinnvolles Hilfsmittel ist das ZIF-Sockelmodul (Schwenkhebelmodul) das auch von Diamex angeboten wird und für knapp 20 Euro zu haben ist. Damit lassen sich MCUs sogar noch leichter programmieren als per On-Board beim Dragon, da die Verkabelung der einzelnen Pins entfällt. Auf dem Sockelmodul ist das geschickt gelöst, indem es für jede MCU Anschlusstype eine eigene Buchse für das Anschlusskabel gibt. 

Weitere Programmer

Es gibt noch mehr Programmer die mit dem Atmel Studio kompatibel sind. Weitere Übersichten dazu findet ihr beispielsweise  hier oder hier

 

Schreibe einen Kommentar

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