#format rst #language de Ausgemusterte DVA-TI Versuche ============================= * L1: Gnublin * L2: NGW100 * A6: Pinguino MX220 * A2: FreeRTOS auf SAM7X * V3: Elatus (AVR Mega88) * V4: Octopus * A1: Make Controller Kit * A4: STM32 Discovery (Cortex M3) * A5: LM3S811 Kit (Cortex M3) .. _l1: **L1: Das Gnublin Board** Das Gnublin Projekt wurde in einer Kooperation zwischen der Hochschule Augsburg (Prof. Högl) und der `Embedded Projects GmbH `_ entwickelt. Das Ziel war es, eine Lernumgebung für Embedded Linux zu schaffen. Homepage: http://wiki.gnublin.org Dachkammer: http://hhoegl.informatik.hs-augsburg.de/elinux/gnublin/ ---- .. _l2: **L2: Das Network Gateway NGW100** **Foto** .. figure:: http://hhoegl.informatik.hs-augsburg.de/dva/img/ngw_overview.jpg `img/ngw_overview.jpg `_ **Beschreibung** Das "Network Gateway 100" (NGW100) von Atmel ist eine preiswerte Mikrocontroller-Platine zum Einstieg in die Welt des "Embedded Linux". **Ziele** * Die Entwicklungsumgebung für das Board aufbauen: Stromversorgung, RS-232, Netzwerkkabel. * Den U-Boot Bootloader kennenlernen. * Die "Buildroot" Umgebung kompilieren. Das Ergebnis ist ein Kernel und ein Root-Filesystem. * Das Root-Filesystem über NFS auf dem Target (NGW100) mounten. Das eigentliche Root-Filesystem bleibt auf dem Entwicklungsrechner liegen. * Eine kleine Demo-Anwendung schreiben. Das Root-Filesystem auf das NGW100 in den Flash-Speicher übertragen. Es gibt dazu mehrere Möglichkeiten: (a) NOR Flash, (b) Dataflash, (c) SD/MMC Karte. Am Schluss soll eine von sich aus startende simple Applikation entstehen. **Links/Literatur** * Anleitung zum DVA-Praktikum: http://elk.informatik.hs-augsburg.de/elinux/ngw100/dva-anleitung/ngw100-dva.txt * Atmel Homepage http://www.atmel.com * Atmel Produktseite zum NGW100 http://www.atmel.com/tools/maturengw100networkgatewaykit.aspx * Meine Bücherliste zum Wahlfach "Embedded Linux" http://elk.informatik.hs-augsburg.de/hhweb/elinux/Buecher/index.html Sie können die meisten dieser Bücher auf "Safari" lesen. Dazu müssen Sie von einem Rechner der Hochschule aus arbeiten. http://proquest.safaribooksonline.com * NGW100 Archiv http://elk.informatik.hs-augsburg.de/elinux/ngw100 Beispielprogramme http://elk.informatik.hs-augsburg.de/elinux/ngw100/beispiele **Material** * 1 x NGW100 mit Netzteil * 1 x USB Kabel * 1 x RS-232 Kabel (USB) * 1 x Netzwerkkabel Sie benötigen auf Ihrem Rechner einen freien Ethernet-Anschluss. ---- .. _a6: **A6: Pinguino mit PIC32 MX220** Der "Pinguino" ist ein *Duino* Klon, hinter dem zwar die gleiche Idee wie beim *Arduino* steckt, allerdings ist sowohl die Hardware als auch die IDE verschieden vom Original. Auf dem Pinguino ist ein 32-Bit Controller von `Arizona Microchip `_ mit *MIPS* Kern. Dieser Kern ist ähnlich wie der ARM Kern, aber vom Konkurrenten *MIPS Technologies* (http://www.mips.com). Das komplette Pinguino Board kostet weniger als 10 Euro! Die IDE beim Pinguino Projekt imitiert zwar die originale Arduino IDE, ist aber in der Sprache `Python `_ geschrieben. * Link zum Hersteller Olimex https://www.olimex.com/Products/Duino/PIC32/PIC32-PINGUINO-MX220/ ---- .. _a2: **A2: FreeRTOS auf SAM7X** **Foto** .. figure:: http://hhoegl.informatik.hs-augsburg.de/dva/img/sam7-ex256.jpg `img/sam7-ex256.jpg `_ **Beschreibung** Mit dem freien Echtzeitbetriebsssytem *FreeRTOS* (RTOS = Real Time Operating System) kann man komplexe Programmieraufgaben anschaulich durch quasi-parallele Tasks beschreiben. Dieses RTOS gibt es mittlerweile für eine grosse Zahl an unterschiedlichen Mikrocontrollern, unter anderem für den Atmel SAM7X, einem Controller mit ARM7TDMI Kern. Auf dem Board "SAM7-EX256" von Olimex befindet sich ein AT91SAM7X256 Mikrocontroller, der alle wichtigen Schnittstellen und auch den Programm- (256K) und Datenspeicher (64K) integriert hat. Da dieser Mikrocontroller einen "ARM Kern" hat, kann man damit den freien JTAG Debugger "OpenOCD" verwenden. **Ziele** * Das Olimex "SAM7-EX256" kennenlernen * Den AT91SAM7X256 Controller kennenlernen (ARM7TDMI Kern) * FreeRTOS kennenlernen * OpenOCD kennenlernen zum Flashen der Programme und zum Debuggen. **Links** * Info zum Board: https://www.olimex.com/Products/ARM/Atmel/SAM7-EX256 * FreeRTOS: http://www.freertos.org * Hubert Högl, "GNU Software und der SAM7X", 2012 http://elk.informatik.hs-augsburg.de/hhweb/labor/arm/sam7x/sam7x-gnu.html ARM im Labor http://elk.informatik.hs-augsburg.de/hhweb/labor/arm * OpenOCD: http://openocd.belios.de, http://www.yagarto.de * Advanced Risc Machines (ARM): http://www.arm.com **Material** * 1 x Olimex SAM7-EX256, komplett aufgebaut mit OpenOCD JTAG Adapter von www.eproo.net (inkl. RS-232), USB-zu-Ethernet Adapter, USB Hub, Netzteil für USB Hub. ---- .. _v3: **V3: Elatus** Siehe http://hhoegl.informatik.hs-augsburg.de/hhweb/labor/avr/elatus ---- .. _v4: **V4: Octopus** **Foto** .. figure:: http://hhoegl.informatik.hs-augsburg.de/dva/img/octopus-r4.jpg `img/octopus-r4.jpg `_ **Beschreibung** Octopus ist ein kleines Hardware-Modul, das man über USB an den PC steckt. Man kann man es als Erweiterung für den PC verstehen, um mit allen in der Mikrocomputertechnik üblichen Schnittstellen zu kommunizieren: GPIO, UART, SPI, I2C, A/D, D/A (PWM) und CAN. Das sind die wesentlichen Schnittstellen des Atmel AVR AT90CAN128, der auf dem Octopus verwendet wird. Fast das komplette USB Protokoll wird in der Firmware des AVR erledigt. Um mit Octopus zu kommunizieren, verwendet man auf dem PC auf unterster Ebene die Bibliothek ``liboctopus``, die in der Sprache C geschrieben wurde. Es gibt auch eine höhere Ebene, die man von high-level Sprachen wie z.B. Python verwenden kann. **Ziele** * Kennenlernen der USB Kommunikation * Kennenlernen der verschiedenen Mikrocontroller-Schnittstellen. * Kennenlernen der Organisation eines freien Projektes. **Links** * http://code.google.com/p/octopususb * http://shop.embedded-projects.net/Open-Source_Projekte/Octopus * Buch von Benedikt Sauter: "Messen, Steuern und Regeln mit USB", Franzis Verlag 2009. **Material** * 1 x Octopus * 1 x USB Kabel * 1 x Lochraster Basisplatine ---- .. _a1: **A1: Make Controller Kit** ACHTUNG: DIESEN VERSUCH GIBT ES NICHT MEHR, DA DAS PRODUKT EINGESTELLT WURDE. **Foto** .. figure:: http://hhoegl.informatik.hs-augsburg.de/dva/img/kit20_askew.jpg `img/kit20_askew.jpg `_ **Beschreibung** Bei diesem Versuch nehmen Sie das "Make Controller Kit" der kanadischen Firma *MakingThings* in Betrieb. Die Hardware besteht aus einem Aufsteckboard, das einen Atmel "Smart ARM" Controller AT91SAM7X enthält und aus einer Basisplatine, umd die Verbindungen zur Aussenwelt einfach über Schraubanschlüsse herzustellen. Der SAM7X hat einen ARM7TDMI CPU Kern und viele Peripheriemodule, unter anderem sogar CAN, USB und Ethernet. Der Programmspeicher (Flash) ist 256K gross, der Speicher für flüchtige Daten (RAM) ist 64K gross. **Ziele** * Board anschliessen an den Entwicklungsrechner. * Installation der Werkzeugkette. * "Flashen" des Boards mit einer Anwendung. * Einblicke in den Atmel SAM7X256 sammeln: CPU und Peripheriemodule studieren (GPIO, UART, SPI, PWM, A/D, I2C, USB, Ethernet, CAN). * Überblick über das Firmware API bekommen. * Programmieren/nachvollziehen einer einfachen Demo-Applikation. * Ihr Bericht soll Neulingen helfen, den Einstieg in das Make Kit zu schaffen. **Links** MakingThings * http://www.makingthings.com * http://www.makingthings.com/documentation * http://www.makingthings.com/store/make-controller * http://makezine.com/controller Atmel SAM7 Produkte * http://www.atmel.com/dyn/products/devices_mcu.asp?family_id=605#1724 **Material** * Make Controller Kit * USB Kabel * Ethernet Kabel * Stromversorgung (?) ---- .. _a4: **A4: STM32 Discovery (Cortex M3)** Der Cortex M3 (CM3) Controller etabliert sich an der Hochschule Augsburg in den Fachbereichen Elektrotechnik und Informatik gerade als "Standard Controller", der die Nachfolge des nun schon deutlich veralteten MC68000 antritt. Ein sehr preiswertes CM3 Board (unter 10 Euro) ist das STM32 Discovery: http://www.st.com/internet/evalboard/product/250863.jsp Schön daran ist, dass der JTAG (SWD) Adapter direkt auf dem Board enthalten ist, so dass man `OpenOCD `_ ohne separate Hardware nutzen kann. Die Programmierung kann vollständig mit freier Software unter Linux erfolgen. Hier ist ein Artikel, der die Programmierung des STM32 Discovery mit GNU Tools beschreibt: http://elk.informatik.hs-augsburg.de/doc/stm32vldiscovery ---- .. _a5: **A5: LM3S811 Kit (Cortex M3)** Hier gilt der gleiche Text, den ich schon vorher beim STM32 Discovery geschrieben habe. Die "Stellaris" Controller von "Luminary Micro" (jetzt Texas Instruments) eignen sich auch hervorragend für ein modernes Mikrocontroller Praktikum. Dieses Kit ist allerdings mit 30 bis 40 Euro etwas teurer als das Discovery: http://www.ti.com/lit/ml/spmt196b/spmt196b.pdf Die Programmierung kann auch hier vollständig mit freier Software unter Linux erfolgen. Der JTAG/SWD Adapter ist auch auf dem Board enthalten. **Links** Crosscompiler für ARM * https://launchpad.net/gcc-arm-embedded (bitte diesen hier verwenden!) .. #. `Codesourcery `_ GCC, 2012.03 (login/pwd) http://elk.informatik.hs-augsburg.de/pub/downloads/cs/ #. `Summon ARM Toolchain `_ (sat) http://elk.informatik.hs-augsburg.de/pub/downloads/sat/ Weitere Informationen sind im Wiki http://elk.informatik.hs-augsburg.de/hhwiki/LM3S811Kit