7908
Kommentar:
|
8757
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 23: | Zeile 23: |
18.11.2005: Was bisher (erfolgreich) geschah: 1. Mit Hilfe von WinARM und den mitgelieferten Beispielen eigenes LED-blink-Programm compiliert 2. .hex Datei mit dem Philips LPC210x_isp Tool in den Flashspeicher geladen und erfolgreich ausgefuehrt 3. nach einer kleinen Veraenderung des Assembler-Startupcodes auch Programme aus dem SRAM ausfuehrbar, Upload mit dem Philips Tool 4. Das OpenSource Tool lpc21isp hat(te) einen kleinen Bug, der verhinderte, dass das Programm mit dem LPC2294 zusammenarbeitet. Bug gefunden und dem Autor gemeldet. Version 1.31 sollte funktionieren. 5. Zur Verwendung von openocd Linux installiert (Suse 10) *brrr* 6. (hoffentlich) die Version von openocd kompiliert, die den ARM7TDMI-S unterstützt 7. GNUARM heruntergeladen und das erste Programm (wie oben) erfolgreich kompiliert |
Mikrocomputer-Praktikum der Mechatroniker ME5 im Wintersemester 2005/2006
Betreuer: [http://www.fh-augsburg.de/~hhoegl Prof. Hubert Hoegl], <Hubert.Hoegl@fh-augsburg.de>
Im zweiten Teil des Praktikums geht es nun ab dem 16. November an die Projekte.
Inhalt
[#gruppen Arbeitsgruppen] | [#avrtipps Tipps zum AVR]
Arbeitsgruppen
Die Einteilung der Arbeitsgruppen ist wie folgt:
1. Frank Gutmann, Patrick Deisenhofer
Stichpunkte: Mikrocomputerboard mit Philips ARM7TDMI-S Controller LPC2294 von Olimex http://www.olimex.com // GNU C Compiler fuer ARM // JTAG Debugger Openocd // Brushless DC Motor mit Leistungsstufe von Nanotec, http://www.nanotec.de.
18.11.2005: Was bisher (erfolgreich) geschah:
- Mit Hilfe von WinARM und den mitgelieferten Beispielen eigenes LED-blink-Programm compiliert
- .hex Datei mit dem Philips LPC210x_isp Tool in den Flashspeicher geladen und erfolgreich ausgefuehrt
- nach einer kleinen Veraenderung des Assembler-Startupcodes auch Programme aus dem SRAM ausfuehrbar, Upload mit dem Philips Tool
Das OpenSource Tool lpc21isp hat(te) einen kleinen Bug, der verhinderte, dass das Programm mit dem LPC2294 zusammenarbeitet. Bug gefunden und dem Autor gemeldet. Version 1.31 sollte funktionieren.
- Zur Verwendung von openocd Linux installiert (Suse 10) *brrr*
- (hoffentlich) die Version von openocd kompiliert, die den ARM7TDMI-S unterstützt
- GNUARM heruntergeladen und das erste Programm (wie oben) erfolgreich kompiliert
2. Tim Derix, Thomas Kaller
xired@RZ.FH-Augsburg.DE, kallerth@RZ.FH-Augsburg.DE
Stichpunkte: Experimente mit dem Asuro Roboter // Atmel AVR
3. Kilian Green, Christian Bohner
kilifuchs@web.de, chb@RZ.FH-Augsburg.DE
Stichpunkte: Laser Scanner // Steuerung ueber ein C Programm ueber einen PC // Selbstgebauter PWM-Treiber der über die Parallel-Schnittstelle gesteuert werden soll.
Aktueller Status:
09.11.05 Mittwoch
- - Laserscanner mitgebracht; - Mit Hr. Magg und Hr. Hoegl das weitere Vorgehen besprochen; - Platinenlayout und Treiberchip (L298N) fest gelegt;
10.11.05 Donnerstag
- - Auf der Suche nach dem passenden Treiberchip zwei alte Drucker geschlachtet und im zweiten fuendig geworden;
16.11.05 Mittwoch
- - Festlegung der Bestueckung der Treiberplatine; - Bohrung der Bestueckungsloecher auf der Platiene; - Ausloeten einiger Bauteile (zB.: Double-Full-Bridge-Driver L298N) von einer alten
- Druckerplatine (damals zur Steuerung der Schrittmotoren);
17.11.05 Donnerstag
- - Bestuecken und Loeten der Scanner-Treiberplatine; - Centronics-Schnittstelle belegt und verloetet; - Aufbau einer Versuchsschaltung mit 8-fach D-Latch und 8 LEDs zum testen des LTP-Ports; - Erste, erfolgreiche Tests (Je nach Programmierung - blinken, Lauflicht, usw....);
4. Dennis Kirchner, Daniel Storr
kirchner@RZ.FH-Augsburg.DE, dstorr@RZ.FH-Augsburg.DE
Stichpunkte: Controller fuer Touch-Panel // Atmel AVR // Die vorhandenen Touch Panel werden in folgendem Text erwaehnt: http://www.fh-augsburg.de/~hhoegl/tmp/display-text/displays.html
Anregung: Es soll auch ein Programm auf dem PC geschrieben werden, das eine Zeichenflaeche zeigt. Dieses Programm kommuniziert ueber die serielle Schnittstelle mit dem Touch-Controller und zeigt die vom Controller ermittelten Stiftpositionen an. Es soll auch eine Eichung des Touch-Panels moeglich sein. Natuerlich eignet sich [http://www.python.org Python] hervorragend fuer diesen Job!
5. Christoph Marx, Andreas Pistek
Christoph.Marx@FH-Augsburg.DE, Andreas.Pistek@FH-Augsburg.DE
Stichpunkte: NF300 mit dem GNU C Compiler programmieren // Debuggen mit dem BDM Dongle und dem GNU Debugger gdb
Anregungen:
Linux
Die folgenden drei Aufzaehlungspunkte stammen alle von Daniel Endres, der im Herbst 2005 den NF300 mit GCC programmiert hat:
* Eintrag im Informatik-Wiki
* BDM Treiber fuer Linux (cuch fuer 2.6er Kernel)
* GDB mit BDM Support (V. 5.3). Der Treiber wird mit
- "target bdm /dev/icd_bdm0" angesprochen.
* Dominic Rath hat 2004 folgende Punkte zusammengeschrieben (nur fuer 2.4er Kernel)
Windows
* http://www.oesch.org/Teko/tekoup.htm
- (Achtung: Das hat nichts mit GDB/GCC zu tun. Es handelt sich um einen Nachfahren des alten BD32.EXE).
Ein Aufsatz von Roman Jordan: http://www.fh-augsburg.de/~hhoegl/rt/etc/cross/crosscompiling.html
6. Benjamin Kruedelbach, Robert Ruef
Benjamin.Kruedelbach@FH-Augsburg.DE, Robert.Ruef@FH-Augsburg.DE
Stichpunkte: Regelschleife mit Waermequelle (z.B. CPU), Luefter, Temperatursensor und Mikrocontroller (Atmel AVR).
Anregung:
MAXIM Application Note 1784, "Fan Speed Control is Cool!" http://www.maxim-ic.com/appnotes.cfm/appnote_number/1784
7. Johannes Bosch, Michael Linder
jbosch@RZ.FH-Augsburg.DE, Michael.Linder@FH-Augsburg.DE
Stichpunkte: Alternativer Plotter mit zwei drehbaren Armen // Steuerung ueber zwei Servomotoren // Atmel AVR
8. Markus Kaestle, Thomas Schiller
Markus.Kaestle@FH-Augsburg.DE, Thomas.Schiller@FH-Augsburg.DE
Stichpunkte: Experimente mit dem AVR Ethernet Board "Arthernet" // Web-Server auf Atmel AVR // Steuerung ueber RS-232 // http://www.mikrocontroller.net/articles/Arthernet_-_AVR_Ethernet
Tipps zum AVR
Das folgende Tutorial beschreibt, wie man den Atmel AVR mit dem freien C Compiler GCC programmieren kann:
Die beiden AVR Homepages lauten
Der erste Link ist die Produktseite des Herstellers Atmel. Der zweite Link ist die sehr gute "inoffizielle" Homepage des Atmel AVR. Hier wird von Freiwilligen eine Unmenge an Informationen zum AVR gesammelt.
Die aktuelle Version der Entwicklungsumgebung "AVR Studio" (V. 4.12) hat bereits den C-Compiler GCC fuer AVR integriert. Leider kann man das Studio nur unter Windows verwenden.
Man braucht das AVR Studio aber nicht unbedingt. Man kann mit dem AVR GCC auch allein gut auskommen. Der zentrale Zugang lautet:
Hier gibt es den AVR GCC fuer verschiedene Plattformen, auch z.B. fuer Linux. Fuer Windows gibt es den "WinAVR" unter http://winavr.sourceforge.net/.
Zum Debuggen empfehle ich die Verwendung eines AVR Bausteines mit JTAG Schnittstelle, z.B. den Mega16 oder den Mega32 (neben vielen anderen). Die JTAG Schnittstelle steuert man mit einem JTAG Adapter an, folgende sind gebraeuchlich:
* Die offiziellen Adapter von Atmel, JTAGICE und JTAGICE mkII.
http://www.atmel.com/dyn/products/tools.asp?family_id=607 Den alten JTAGICE muss man sich zum Glueck nicht mehr kaufen, da der Schaltplan von Atmel zum Nachbau veroeffentlich wurde (siehe den folgenden Punkt "Evertool"). Der neue JTAGICE mkII bietet neben der seriellen Schnittstelle zum PC auch einen USB Anschluss. Auf der JTAG-Seite gibt es nun auch eine "Debug-Wire" genannte 1-Draht Schnittstelle, so dass man auch Bausteine mit ganz wenig Pins (z.B. 8) debuggen kann. Leider kostet das mkII fast 300 Euro. Ich habe im RT Labor sowohl das originale JTAGICE als auch das modernere JTAGICE mkII.
* Das "Evertool" ist der Nachbau des Atmel JTAGICE Adapters.
- Im wesentlichen verwendet es einen Mega16L AVR.
http://www.siwawi.arubi.uni-kl.de/avr_projects/evertool/ Ein Evertool JTAGICE kann man sich innerhalb einer Stunde selber zusammenloeten, zu einem Preis von einem Mega16L.
* Beim Elektronikladen gibt es den AVR-JTAG-USB Adapter.
- In diesem Adapter steckt auch wieder der "Evertool" Schaltplan. Der Preis von knapp 50 Euro fuer den fertig aufgebauten Adapter ist halbwegs vernuenftig.