====== Die Softwareumgebung für Linux ====== Die folgende Anleitung beschreibt die Installation und de Benutzung des AVR Toolkit 9:10 Ubuntu OS. ===== Installation der Software ===== Installieren Sie die folgende Software: **1. Linux Softwarepakete** * gcc-avr – GNU C-Compiler für den AVR * avrdude – Programm um die HEX-Dateien in den Controller zu laden. * avr-libc – C-Code Bibliotheken, um Code für die AVR Plattform zu schreiben Um die Pakete zu installieren, nutzen Sie folgenden Terminalbefehl: sudo apt-get install gcc-avr avrdude avr-libc oder die graphische Installationssoftware (wie das Ubuntu Softwarecenter oder Synaptic Packet manager). **2. HomeLab Bibliothek** Die Bibliothek vereinfacht das schreiben von Programmcode, da Grundfunktionen bereits fertig sind. Laden Sie sich die Datei //Homelab library vX.X.run// von der HomeLab Webseite herunter, wobei XX für die Versionsnummer steht. Zur Installation der Bibliothek führen Sie den folgenden Befehl aus: sudo sh homelab_library_vX.X.run Stellen Sie sicher, dass die Installation erfolgreich war. **3. KontrollerLab** KontrollerLab ist eine IDE (//integrated development environment//) um zum schreiben, kompilieren, debuggen und laden von AVR Software. Laden Sie die KontrollerLab Software herunter und und speichern sie diese in einem Ordner (z.B. //~/Documents/AVR/KontrollerLab//). Führen sie den folgenden Befehl in dem Ordner aus: sudo dpkg -i kontrollerlab*.deb Falls es Probleme mit Paketabhängigkeiten gibt, führen Sie den Befehl aus welcher die fehlende Pakete installiert: apt-get install –f {{ :kit:001_kontrollerlab_installer.png?500 |}} ===== Das Programmiergerät anschließen. ===== Schließen Sie das Programmiergerät an den Computer an und überprüfen Sie ob es vom Computer erkannt wird. Schreiben Sie den Befehl "lsusb" ins Terminalfester, woraufhin eine Liste der angeschlossenen USB Geräte ausgegeben werden sollte. Der Name des Programmiergerätes ist: "Future Technology Devices International, Ltd FT 232 USB-Serial (UART) IC". {{ :kit:002_lsbusb.png?500 |}} Um den Port zu erhalten an welchem das Programmiergerät angeschlossen ist, überprüfen Sie ///dev// mit dem Befehl //cd /dev// (setzt ///dev// als aktuellen Ordner) und //dir// (zeigt den Inhalt des Ordners an). Da das Programmiergerät eine serielle USB Schnittstelle ist, ist es als "ttyUSBx" benannt, wobei "x" den Index der Schnittstelle anzeigt.Gibt es kein anderes serielles USB Gerät, ist diese Zahl null. {{ :kit:003_ttyusb0.png?500 |}} ===== Ein neues Projekt erstellen ===== Um ein AVR Programm zu schreiben, muss ein Projekt erstellt werden, welches alle notwendigen Dateien enthält: Quellcode, Headerdateien, kompilierte Programme, usw. Um die Projekte klar voneinander zu trennen, sollte für jedes Projekt ein eigener Ordner erstellt werden. (Diese Option gibt es auch im Project Wizard). Folgende Schritte müssen durchlaufen werden um ein Projekt zu erstellen: **1.** Öffnen Sie KontrollerLab (//Applications -> Programming -> KontrollerLab//) und starten Sie ein neues Projekt //File -> New -> New project//. Ein Fenster öffnet sich in welchem der Projektort festgelegt werden muss. In diesem Beispiel ist das //../Homelab/blinkingLED///. {{ :kit:004_new_project_kontrollerlab.png?500 |}} **2.** Das Projekt muss mindestens eine C-Datei haben in welcher der Programmcode geschrieben wird. Dateien können mit dem //File -> New -> New// Menu hinzugefügt werden. In dem sich nun öffnenden Fenster wählen Sie //C source// als Dateityp und wählen Sie einen Namen für die Datei. {{ :kit:005_new_file_kontrollerlab.png?500 |}} **3.** Anschließend muss das Projekt für das Homelab Kit konfiguriert werden. Öffnen Sie hierzu das Konfigurationsfenster unter //Project -> Configure Project// und wählen Sie //Common//. Der CPU Type sollte ATmega128 sein und die Taktfrequenz 14745600,0 Hz. Darüber hinaus sollten hier die Namen der HEX- und MAP- Dateien angegeben werden. Durch //Set as default// werden diese Einstellungen zur Standardeinstellung für alle neuen Projekte. Dieses ist sinnvoll, wenn nur mit dem HomeLab AVR Microcontroller gearbeitet wird. Da die HEX und MAP Dateien als Standard gespeichert werden, sollte man ihnen allgemeine Namen geben, z.B. "out.hex". Achtung! Da die HomeLab Library nicht im //Linker// Konfigurationstab eingefügt werden kann, muss der Befehl "-lhomelab" an den Namen der MAP-Datei angehängt werden. {{ :kit:006_project_conf_common.png?500 |}} Wenden Sie die Einstellungen im //Compiler// Tab an, wie auf dem folgenden Screenshot gezeigt. Bevor Sie auf //OK// klicken, sollte die Compilerkonfiguration ebenfalls als Standard gesetzt werden. {{ :kit:007_project_conf_compiler.png?500 |}} **4.** Konfigurieren Sie das Programmiergerät durch öffnen von //Project -> Configure Programmer//. Wählen Sie "AVRDUDE" als Programmiergerät. Setzen Sie im "AVRDUDE" Tab den Typ des Programmiergerätes auf //jtagmkI// und den Anschlussport auf ///dev/ttyUSBx// (wobei "x" der Portindex ist.). Stellen Sie diese Konfiguration ebenfalls als Standard ein. {{ :kit:008_programmer_conf.png?500 |}} **5.** Ordnen Sie schließlich die Fenster im KontrollerLab so an, wie es angenehm ist und bereiten Sie sich darauf vor, das erste Programm zu schreiben. {{ :kit:010_kontrollerlab.png?500 |}} ===== Ein Programm schreiben und testen ===== Nachdem die Konfiguration abgeschlossen ist, ist es Zeit zu programmieren. **1.** Schließen Sie das Programmiergerät am Controllermodul an. Überprüfen Sie noch einmal ob das Programmiergerät richtig am JTAG Anschluss angeschlossen ist. Das Kabel muss von der Platine weg zeigen (siehe Abbildung). Schließen Sie nun die Stromversorgung an und überprüfen ob die grüne LED leuchtet. {{ :kit:kit_test.jpg?500 |}} **2.** Schreiben Sie das folgende Programm in das Dateieditor-Fenster des KontrollerLab und kompilieren Sie es: #include #include int main(void) { // Setze Pinn PB7 als output DDRB = 0x80; // Lõputu tsükkel while (true) { // Invertiere PB7 PORTB ^= 0x80; hw_delay_ms(500); } } [{{ :kit:011_compile_ignite.png?408 |Toolbar}}] Stellen Sie sicher, dass das Outputfenster die Nachricht "File compiled successfully" anzeigt. Falls eine " Error(s) Occurred:" Nachricht erscheint, überprüfen Sie den Programmcode auf Fehler. **3.** Um das Programm in den Controller zu laden wählen Sie //Ignite//. Wurde es erfolgreich in den Controller geladen, sollte die Nachricht "Project built and uploaded successfully" erscheinen. Falls alles richtig gemacht wurde, sollte die rote LED auf dem Controller in 1-Sekunden Intervallen blinken. ===== Nutzung von floating-point Variablen ===== Manchmal ist in es in AVR Programmen notwendig, floating-point Variablen zu nutzen. Um mit ihnen zu rechnen und sie mit Funktionen vom Typ //printf// zu nutzen, müssen die folgenden Anpassungen in der Projektkonfiguration vorgenommen werden: **1.** Öffnen Sie //Project Configurations// sowie den Tab //Linker//. Überprüfen Sie die erste Zeile der Liste //Linker flags// (siehe Abbildung). {{ :kit:012_linker_fprintf.png?500 |}} **2.** Klicken Sie auf //OK// und schließen Sie das Fenster.