GREETBoard ATMega128 – Version 2 – So wird gestartet

Mittlerweile habe ich schon einige Artikel zum Hauptmodul, dem GRRETBoard ATMega128, geschrieben. Die Ersten handelten mehr oder weniger davon, wie die Platine entstanden ist und wie der Schaltplan aussieht. Spätere Artikel widmeten sich dann mehr und mehr der Programmierung  und der Nutzung von Zusatzmodulen, wie dem GREETBoard ATMega128 Extension oder dem GREETBoard I2CLCD. Dabei habe ich mir aber kaum Gedanken gemacht, wie diese Schaltung in Betrieb genommen wird, schließlich habe ich mir dieses Wissen bereits vor etlichen Artikeln angeeignet. Bestimmt findet sich eine rudimentäre Anleitung in einem der GREETBoard ATMega32 Artikel. Sollte es aber jemanden geben, der dies hier nachbauen möchte und nicht alle Artikel des Blogs auswendig kennt, so bleiben doch einige Fragen offen. Zum Beispiel welches Programmieradapter ich verwende und wie es angeschlossen wird.

Was die Fuses angeht, so gibt es dazu bereits einen einzelnen Artikel. Alles zusammen, also so eine Art „Informations-Starter-Pack“, gibt es nicht. Das hole ich nun nach.

Der Programmieradapter

Ich benutze den „ALL-AVR ISP-Programmer“ von Diamex, da ich sicherstellen wollte, dass ich in Zukunft auch größere Mikrocontroller, wie einen XMega, programmieren kann. Dieser Programmer funktioniert ganz hervorragend; auspacken, anklemmen, (fast) fertig!

Erste Schritte - Der ausgepackte Programmer

Erste Schritte – Der ausgepackte Programmer

Halt, Moment! Einen kleinen Jumper habe ich verändert! Dabei handelt es sich um den Jumper 3 des Jumperblocks 1. Das ist der Block neben der 6-poligen Wannensteckerbuchse. Ist dieser gesteckt, dann wird die angeschlossenen Schaltung mit der gewählten Spannung (hier 5V), über den Programmer versorgt. Da der aber lediglich 50mA schafft, habe ich die Versorgung abgeschaltet und den Jumper quer auf nur einen der beiden Pins gesteckt. So geht er nicht verloren.

Erste Schritte - Programmer in Aktion

Erste Schritte – Programmer in Aktion

Wer sich den Programmer holen möchte, sollte auf der Seite des Herstellers nachschauen. Bislang habe ich keinen anderen Anbieter gefunden, der billiger ist! Da ich nur diesen einen Programmer besitze, habe ich leider keine Erfahrungen mit anderen Geräten.

Anschluss an den Controller

Wie auf dem Bild zu erkennen ist, nutze ich den 10-poligen Stecker für die Programmierung. Sicher, ein 6-poliger spart Platz, aber ich meine, dass der größere Stecker verbreiteter ist. Aber vielleicht liege ich da auch falsch, sodass bei einem späteren Update auch der kleinere zum Zug kommen könnte. Mit dem ALL-AVR-Programmer wäre eine Änderung aber nicht schlimm, da er beide Versionen unterstützt und auch beide Anschlusskabel im Lieferumfang enthalten sind.

Erste Schritte - Der Programmer angeschlossen am GREETBoard ATMega128

Erste Schritte – Der Programmer angeschlossen am GREETBoard ATMega128

Die Programmierumgebung

Die Hardware sollte nun einsatzbereit sein. Wie das GREETBoard aufgebaut und dessen Einzelteile verlötet werden, habe ich auf der Blog-Seite des GREETBoard ATMega128 bereits erklärt (ist gar nicht schwer). Der Programmer ist fertig aufgebaut und der kleine Jumper umgesetzt. Also kann ich mich jetzt um die Softwareseite kümmern. Ein wichtiges Kriterium des GREETBoard-Projekts war, alle Programme in C zu schreiben. Allein dadurch habe ich die Auswahl an verschiedenen Programmierumgebungen eingeschränkt. Letztlich habe ich mich für AVR Studio entschieden, da es alle wichtigen Funktionen beinhaltet. Es gibt einen „Editor“ für den C-Code, eine Funktion um den Code zu prüfen und für die Hex-Umwandlung vorzubereiten, die Hex-Umwandlung und eine Möglichkeit des Aufspielens auf den Mikrocontroller. Und das alles mit relativ wenigen Knopfdrücken.

Leider gab es ein paar Probleme mit der Version 6.0 (könnte am Laptop liegen, da der nicht mehr der Jüngste ist) und ich habe die Software einfach nicht zum Laufen gebracht. Nach einiger Forenrecherche habe ich die Version 5.1 geladen und installiert; die lief problemlos. Seither nutze ich AVR-Studio 5.1 für die Programmierung und ich habe keine Probleme.

Ab diesem Artikel steige ich aber auf die Version 6.1 um! Ich habe sie testweise runtergeladen und den Installationsvorgang gestartet, um zu sehen was passiert. Um ehrlich zu sein, war ich sehr erstaunt darüber, dass diese Version genauso schnell (also langsam 😉 ) auf meinem Laptop läuft, wie die 5.1er. Daher werde ich bei der aktuellsten Fassung von AVR Studio bleiben.

AVR Studio 6.1 – Download und Start

Das Installationspaket steht auf der Atmel-Seite kostenlos zur Verfügung. Mit einem Klick auf den Link gelangt man zur Login-Seite, die für den Download ausgefüllt werden muss. Am besten klappt es sich als Gast (Guest) einzuloggen. Dafür ist nur der Vorname (First name), Nachname (Last name), Email (2x) und die Firma (Company) einzugeben und schon erhält man den richtigen Link zur Datei. Ach ja, bei Company schreibe ich immer X. Das scheint zu reichen 😉 Die Datei muss nun gestartet werden und man wird durch die Installation geführt.

AVR Studio möchte für die einwandfreie Funktion den Jungo USB-Treiber installieren. Das muss unbedingt akzeptiert werden! Ich habe AVR Studio sonst nicht zum Laufen bringen können.

Der Startbildschirm

Nach dem Start meldet sich das AVR Studio mit dem Startbildschirm. Von hier gelangt man schnell zu den vorhandenen Projekten oder zur Erstellung von neuen Projekten. Im Grunde beschränke ich meine Aufmerksamkeit nach dem Start des AVR Studios auf die linke obere Ecke. Dort befinden sich die Links zur Erstellung von neuen Projekten (New Projects…) und zu den vorhandenen Projekten (Open Project…). Unter diesen Links gibt es noch einen Bereich, in dem die kürzlich geöffneten Projekte aufgelistet werden (Recent Projects). Beispielhaft habe ich dafür zuvor das Projekt „DS1307_005“ geöffnet, sodass ich dieses nun mit einem Klick auf dessen Namen direkt öffnen kann.

Erste Schritte - AVR Studio 6.1 Startbildschirm

Erste Schritte – AVR Studio 6.1 Startbildschirm

Ein Projekt öffnen

Wenn ich ein Projekt öffnen möchte, dass nicht in der Liste der kürzlich geöffneten Projekte finde, klicke ich auf „Open Project…“ und es öffnet sich ein Fenster um die gewünschte Projektdatei zu finden und zu öffnen. Wie im nächsten Bild zu sehen ist, liegt mein Projekt im Ordner @Privat>Elektronik>Code>GREETBoard128>DS1307_005. Der ein oder andere erwartet hier vielleicht eine c-Datei, tatsächlich wird aber eine sogenannte „Atmel Studio 6.1 Solution File“ (.atsln) Datei benötigt (hierbei handelt es sich um eine 5.1er Datei, die kann natürlich auch geöffnet werden). Diese Datei sorgt dafür, dass die benötigten c-Dateien in das AVR Studio geladen werden.

Erste Schritte - Projektdatei öffnen

Erste Schritte – Projektdatei öffnen

Ein neues Projekt beginnen

Bevor ich mit diesem Thema loslege, möchte ich noch ein paar Worte zum Thema Ordnerstruktur loswerden. Mit der Installation wird im Dokumentenordner ein Verzeichnis „Atmel Studio“ angelegt. Dort werden standardmäßig die Projekte abgelegt. Solange nur an einem Computer gearbeitet wird ist das OK, ansonsten sollten die Dateien direkt von Beginn an in eine eigene Ordnerstruktur abgelegt werden, die sich auf einem externen Datenträger befindet.

Nun klicke ich aber auf „New Project…“ und prompt öffnet sich ein neues Fenster für grundlegende Projektinformationen, wie z.B. der Projektname und der Speicherort. Im Bereich mir der Nummer 1 kann zwischen verschiedenen Projekttypen ausgewählt werden. Dabei nutze ich immer den Typ „C/C++“ und dort den Untertyp „GCC C Executable Project“. Diese Auswahl ist direkt ausgewählt und bedarf keiner Änderung. Es wäre u.a. aber auch möglich ein Assembler-Projekt zu beginnen.

Das Feld 2 ist für den Projektnamen vorgesehen. Hier habe ich für diesen Artikel einfach mal ein Projektnamen „TestApp“ eingetragen (also anstatt GccApplication1).

Feld 3 zeigt den aktuell ausgewählten Ordner an, in dem das Projekt abgelegt wird. Mit der Schaltfläche „Browse“ kann der Ordner verändert werden. In diesem Zusammenhang ist aber auch das Optionsfeld 4 wichtig. Ist es aktiviert bedeutet dies, dass im Ordner von Feld 3 ein Unterordner mit dem Projektnamen erzeugt wird. Somit entsteht im eigentlichen Projektordner (der vom Feld 3) eine schöne Struktur mit Unterordnern von ganz alleine. Ich habe das Häkchen immer gesetzt.

Erste Schritte - Ein neues Projekt erstellen

Erste Schritte – Ein neues Projekt erstellen

Nachdem OK geklickt wurde, wird das Projekt, die Verzeichnisse und Dateien erstellt. Direkt im Anschluss öffnet sich ein weiteres Fenster um den verwendeten Mikrocontroller, der im Projekt verwendet wird, auszuwählen. Die Liste ist mittlerweile recht lang. Mich interessiert aber nur der ATmega1284P, da der im GREETBoard-Projekt verwendet wird.

Nach der Auswahl wird im rechten Fensterbereich angezeigt, welche Programmer kompatibel zu dem Controller sind. Außerdem gelangt man über den Link „Datasheet“ in Atmels Dokumenten-Downloadübersicht zum ATMega1284P. Mit einem Klick auf „OK“ wird das aktuelle Fenster geschlossen und die Programmieroberfläche angezeigt.

Erste Schritte - Auswahl des Mikrocontrollers

Erste Schritte – Auswahl des Mikrocontrollers

Die Programmieroberfläche

Die ganze Vorarbeit hat uns schließlich zum wichtigsten Teil des AVR Studios geführt, der Programmieroberfläche. Hier werden die vielen schönen C-Codes eingetippt, geändert und eventuell auch gelöscht. Die Spielwiese ist eröffnet 😉 Um direkt loslegen zu können, möchte ich auf die wirklich wichtigsten Funktionen hinweisen. Ich weiß, es gibt seeehhr viel mehr Funktionen als die, die jetzt kommen werden. Aber für den allerersten Anfang reichen diese wenigen Erklärungen erstmal aus.

Mit der Nummer 1 weise ich direkt zu Beginn auf die Speicher-Buttons hin. Der Linke speichert nur das aktuell geöffnete Fenster ab, der Rechte alle geöffneten Fenster. Es können schonmal mehr als ein Programmierfenster geöffnet sein, wenn die ein oder andere .h Datei geöffnet wurde. Dann macht es Sinn den rechten Knopf zu betätigen.

Die Schaltfläche 2 öffnet ein Fenster um das kompilierte Programm an den Mikrocontroller zu senden. Dass werde ich weiter unten genauer erläutern.

Bereich 3 ist der eigentliche Programmierbereich. Für dieses Beispiel habe das Programm aus dem Artikel „GREETBoard ATMega128 – Ports ganz einfach ein- und ausschalten (Toggeln)“ eingefügt.

Der „Solution Explorer“ (4) zeigt die im Projekt vorhandenen Dateien an. Hier werden auch die Header Dateien eingefügt. Für AVR Studio 5.1 habe ich bereits einen kleinen Artikel dazu geschrieben.

Zu guter Letzt befindet sich unter dem Programmbereich noch ein Fenster (5). Hier wird u.a. der Fortschritt bei der Kompilierung eines Programms und eventuelle Warnungen oder Fehler, die bei der Kompilierung aufgetreten sind, angezeigt.

Erste Schritte - Die Programmieroberfläche des AVR Studio 6.1

Erste Schritte – Die Programmieroberfläche des AVR Studio 6.1

Wie gesagt, es gibt noch viel mehr Schaltflächen, Menüs und Einstellmöglichkeiten, die ich an dieser Stelle nicht betrachten, geschweige erklären möchte. Meiner Erfahrung nach, reicht diese Kurzerklärung, für einen schnellen Einstieg, erstmal aus.

Ein Programm an den Controller senden

Wie bereits erwähnt, habe ich ein fertiges Programm in das Programmierfenster kopiert und werde dieses nun kompilieren und an den Mikrocontroller senden.

Ein Programm kompilieren

Ich könnte an dieser Stelle schreiben: „Drücke F7. Fertig!“ Aber niemand soll sagen können, ich wäre nicht präzise genug 😉

Tatsächlich gibt es den Befehl „Build Solution“ im Drop-Down-Fenster „Build“ und wie auf dem Bild zu erkennen ist, kann er auch mit F7 gestartet werden.

Erste Schritte - Befehl zum Kompilieren des Programms

Erste Schritte – Befehl zum Kompilieren des Programms

Ganz unten befindet sich ein Fensterabschnitt für die Fehler- und Ausgabeliste. In Letzterer passiert nun eine ganze Menge, was an den vielen Informationen, die nacheinander angezeigt werden, zu erkennen ist. Am Ende sollte dort aber die folgende Zeile stehen, ansonsten geb es ein Problem:

Erste Schritte - Das Ausgabefenster

Erste Schritte – Das Ausgabefenster

„1 succeeded“ bedeutet, dass es keine Fehler gab. Dies ist auch in der Fehlerliste zu sehen:

Erste Schritte - Die Fehlerliste

Erste Schritte – Die Fehlerliste

Sollte es mal Probleme beim Kompilieren geben, so stehen in dieser die ganzen Fehler (Errors), Warnungen (Warnings) und Hinweise (Messages) drin. Zu einem Abbruch können aber nur Fehler führen.

Das Programm an den Controller senden

In der oberen Werkzeugleiste befindet sich die Schaltfläche um das Programmierfenster zu öffnen. Leider gibt es keine Taste die dieses Fenster automatisch öffnet, dass ist leider ein wenig nervig.

Erste Schritte - Schaltfläche um das Programmierfenster zu öffnen

Erste Schritte – Schaltfläche um das Programmierfenster zu öffnen

Mit einem Klick auf diese Schaltfläche öffnet sich ein weiteres Fenster. Hier kann das Programmiergerät ausgewählt (1) werden. Drückt man danach auf „Read“ (2) wird die ID des Mikrocontrollers ausgelesen, dass ist eine ganz gute Kontrolle, ob die Verbindung steht. Manchmal sitzt der Mikrocontroller nicht richtig in seiner Fassung und das kann zu Problemen führen. Als nächstes wechsel ich mit einem Klick auf „Production Files“ (3) in den Bereich, in dem ich das eigentliche Programm auswählen und überspielen kann. Sollte der Pfad der Zieldatei nicht korrekt sein, so lässt er sich, mit einem Klick auf die Schaltfläche mit den drei Punkten, ändern. Nun wird noch „Flash“, „Erase memory before programming“ (Speicher vor der Programmierung löschen) ausgewählt und auf „Program“ (4) gedrückt. Damit wird das Programm übertragen. Die Option „Verify…“ ist nicht unbedingt nötig. Damit wird wohl das Programm nochmals überprüft.

Erste Schritte - Das Programmierfenster

Erste Schritte – Das Programmierfenster

Während der Übertragung ist der Mikrocontroller im Reset-Modus. Danach wird sofort das Programm gestartet. Übrigens, ein Erfolgreiche Übertragung wird wie folgt angezeigt.

Erste Schritte - Erfolgreiche Programmierung des Mikrocontrollers

Erste Schritte – Erfolgreiche Programmierung des Mikrocontrollers

Fazit

Mit dem richtigen Programmieradapter und AVRStudio6.1 ist es relativ einfach die eigenen Programme an den Mikrocontroller zu senden. Die Tücke liegt später vielmehr darin, dass das AVRStudio rumzickt, da Fehler im Programm stecken. Dann fängt der Kopf erst so richtig an zu qualmen. Ist der/die Fehler gefunden, ist das Übertragen ein Klacks.

Ich hoffe die meisten Fragen beantwortet zu haben und wünsche Euch viel Spaß beim Programmieren 😉

Alles Gute,
Euer Timo

Schreibe einen Kommentar

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