Difference between revisions of "U23 2005/Fnordlicht quickstart howto"

From C4 Wiki
Jump to: navigation, search
Line 60: Line 60:
  
 
== Bootloader installieren ==
 
== Bootloader installieren ==
Im Gegensatz zur fnordlicht Firmware ist der Bootloader für den ATmega in C geschrieben. Der Bootloader muss erst übersetzt und dann auf den Atmel geschrieben werden. Auch für diesen Vorgang gibt es einen Eintrag im Makefile. Voraussetzung für die Übertrafung zum Atmel ist natürlich, dass, dass das fnordlicht über das ISP-Kabel an den Rechner angeschlossen ist. Der Bootloader befindet sich im Verzeichnis boot, der folgende make-Befehl wird jedoch aus dem obersten Verzeichnis des Quelltexts ausgeführt:
+
Im Gegensatz zur fnordlicht Firmware ist der Bootloader für den ATmega in C geschrieben. Der Bootloader muss erst übersetzt und dann via das parellele ISP-Kabel auf den Atmel geschrieben werden. Auch für diesen Vorgang gibt es einen Eintrag im Makefile. Voraussetzung für die Übertrafung zum Atmel ist natürlich, dass, dass das fnordlicht über das ISP-Kabel an den Rechner angeschlossen ist. Der Bootloader befindet sich im Verzeichnis boot, der folgende make-Befehl wird jedoch aus dem obersten Verzeichnis des Quelltexts ausgeführt:
 
<pre>make install-bootloader</pre>
 
<pre>make install-bootloader</pre>
 
Der Bootloader war ursprünglich der Atmel Butterfly - die hier benutzte Version wurde nachprogrammiert. Das Hochladen des Bootloaders ist der letzte Schritt, für den das parallele ISP-Kabel benötigt wird. Von nun an werden alle Schritte mit dem seriellen Kabel ausgeführt.
 
Der Bootloader war ursprünglich der Atmel Butterfly - die hier benutzte Version wurde nachprogrammiert. Das Hochladen des Bootloaders ist der letzte Schritt, für den das parallele ISP-Kabel benötigt wird. Von nun an werden alle Schritte mit dem seriellen Kabel ausgeführt.
  
== Serielle Verbindung zum Atmel überprüfen ==
+
== Firmware installieren ==
 +
Die Firmware wird über die serielle Leitung zum fnordlicht übertragen.
 +
 
 +
=== Serielle Verbindung zum Atmel überprüfen ===
 
Das fnordlicht mit dem Rechner über das serielle Kabel verbinden und ein Terminalprogramm für 19200 Baud, (8N1, 8 Datenbit, keine Parität, 1 Stopbit) kofigurieren. Nun das Fnordlicht an eine passende Spannungsquelle (zwischen 12 und 16V) anschliessen. Energie! Solang der Atmel noch nicht programmiert ist und der Jumper PGM (bzw. PGSE) auf die Pins 1-2 gesetzt ist sollte der Atmel nun ununterbrochen die Zeichenkette "ba" (boot application)senden.
 
Das fnordlicht mit dem Rechner über das serielle Kabel verbinden und ein Terminalprogramm für 19200 Baud, (8N1, 8 Datenbit, keine Parität, 1 Stopbit) kofigurieren. Nun das Fnordlicht an eine passende Spannungsquelle (zwischen 12 und 16V) anschliessen. Energie! Solang der Atmel noch nicht programmiert ist und der Jumper PGM (bzw. PGSE) auf die Pins 1-2 gesetzt ist sollte der Atmel nun ununterbrochen die Zeichenkette "ba" (boot application)senden.
  
== Jumper setzen (Programmiermodus) ==  
+
=== Jumper setzen (Programmiermodus) ===
Fnordlicht von der Spannungsquelle trennen und den Jumper PGM (bzw. PGSE) auf die Pins 2-3 setzen. Beim Einschalten meldet der Atmel über die serielle Schnittstelle "bp" (boot programming). Senden eines einzelnen Zeilenumbruches (Enter drücken) quittiert der Atmel mit "?" (unknown command).
+
Bevor Firmware über das serielle Kabel in den Atmel übertragen werden kann, muss dem Bootloader mitgeteilt werden, dass er nicht das Programm ausführen, sondern auf den Upload von Firmware warten soll. Dazu das Fnordlicht von der Spannungsquelle trennen und den Jumper PGM (bzw. PGSE) auf die Pins 2-3 setzen. Beim Einschalten meldet der Atmel über die serielle Schnittstelle "bp" (boot programming). Senden eines einzelnen Zeilenumbruches (Enter drücken) quittiert der Atmel mit "?" (unknown command).
 +
 
 +
=== Firmware übersetzen ===
 +
Das folgende Target im Makefile übersetzt die fnordlicht Firmware:
 +
<pre>make fnordlicht.hex</pre>
 +
 
 +
=== Firmware hochladen ===
 +
Das folgende Target im Makefile überträgt die Firmware in den Flash-Speicher des Microcontrollers:
 +
<pre>make install-fnordlicht SERIALDEV=/dev/ttyS0</pre>
 +
''SERIALDEV gibt die zu benutzende Schnittstelle an.''
 +
 
 +
=== i²c Adresse im EEPROM setzen ===
 +
Ist die i²c Adresse im EEPROM nicht gesetzt, wird das fnordlicht nach dem Einschalten dauerhaft rot leuchten. Die Standardadresse lässt sich mit folgendem Kommando setzen:
 +
<pre>make install-eeprom SERIALDEV=/dev/ttyS0</pre>
 +
''SERIALDEV gibt die zu benutzende Schnittstelle an.''
 +
 
 +
== Einschalten! ==
 +
Zunächst darauf achten, dass der Jumper auf die Position "2-3" gesetzt ist. (Probe: Atmel meldet beim Einschalten "ba" (boot application) über die serielle Verbindung). Nun einschalten - das fnordlicht führt das Programm aus.

Revision as of 22:06, 29 September 2005

Dieses fnordlicht quickstart howto beschreibt die Schritte zur ersten Inbetriebnahme.

Kabel

Folgende Kabel braucht Ihr für die Inbetriebnahme:

  • Stromversorgung: zweipoliges Kabel mit 2.54mm Doppelbuchse.
  • ISP-Kabel für den Parallelport, beschrieben in Atmel Mikrocontroller Kickstart
  • Serielles Kabel mit Pegelkonverter (z.B. MAX232)

Benötigte Software

Um dem fnordlicht Leben einzuhauchen bedarf es einiger Software. Die folgende Beschreibung bezieht sich auf die Verwendung von Linux. Diese ist kein Zwang; wir ermutigen jeden, auch Werkzeuge auf anderen Betriebsystemen zu benutzen. Folgende Softwarepakete sind zu besorgen:

  • uisp: Micro In-System Programmer für Atmels AVR MCUs
    • Benötigt Kernel-Support für ppdev und parport; ist bei den meisten Distributionskernel dabei,
  • avra: Assembler für Atmel AVR Microcontroller
  • avrdude: In-System-Programmer: Download/Upload/Ändern des Inhalts von ROM und EEPROM
  • darcs: Versionskontrollsystem, mit dem die fnordlicht-Firmware verwaltet wird.
  • ein beliebiges Terminalprogramm, z.b. minicom oder screen oder hyperterm

Ausserdem werden für das Übersetzen des Bootloaders benötigt:

  • gcc-avr: Der GNU C Compiler (Crosscompiler für AVR).
  • avr-libc: Standard C Bibliothek für Atmel AVR Entwicklung

Parallele Verbindung zum Atmel prüfen (ISP)

Bevor der Atmel das erste mal über den ISP am Parallelport mit Firmware programmiert werden kann, sollte die Verbindung funktionieren. Folgendes Kommando sollte die nachstehende Ausgabe erzeugen:

$ uisp -dprog=dapa --rd_fuses
Atmel AVR ATmega8 is found.

Fuse Low Byte      = 0xe0
Fuse High Byte     = 0xd8
Fuse Extended Byte = 0xff  
Calibration Byte   = 0xaf  --  Read Only
Lock Bits          = 0xff
    BLB12 -> 1
    BLB11 -> 1
    BLB02 -> 1
    BLB01 -> 1
      LB2 -> 1
      LB1 -> 1

Ein beliebter Fehler sind mangelnde Schreibrechte für den Devicenode /dev/parport0.

fnordlicht Quelltext besorgen

Der fnordlicht Quelltext wird mit darcs verwaltet. Zuerst in ein passendes Verzeichnis erstellen und den Qelltext auschecken:

darcs get http://rinnsal.oph.rwth-aachen.de/~fd0/fnordlicht

Prozessor für die Hardware einrichten

Zuerst muss der Mikrocontroller für seine Hardwareumgebung eingerichtet (die Fuse Bits gesetzt) werden. Dazu gibt es einen Eintrag im Makefile und wird durch folgendes Kommando erledigt:

$ make fuse
uisp -dprog=dapa --wr_fuse_h=d8
Atmel AVR ATmega8 is found.

Fuse High Byte set to 0xd8
uisp -dprog=dapa --wr_fuse_l=e0
Atmel AVR ATmega8 is found.

Fuse Low Byte set to 0xe0

Dokumentation zu diesem Vorgang findet sich im Datenblatt zum ATmega8 und in boot/readme im Quelltextverzeichnis.

Bootloader installieren

Im Gegensatz zur fnordlicht Firmware ist der Bootloader für den ATmega in C geschrieben. Der Bootloader muss erst übersetzt und dann via das parellele ISP-Kabel auf den Atmel geschrieben werden. Auch für diesen Vorgang gibt es einen Eintrag im Makefile. Voraussetzung für die Übertrafung zum Atmel ist natürlich, dass, dass das fnordlicht über das ISP-Kabel an den Rechner angeschlossen ist. Der Bootloader befindet sich im Verzeichnis boot, der folgende make-Befehl wird jedoch aus dem obersten Verzeichnis des Quelltexts ausgeführt:

make install-bootloader

Der Bootloader war ursprünglich der Atmel Butterfly - die hier benutzte Version wurde nachprogrammiert. Das Hochladen des Bootloaders ist der letzte Schritt, für den das parallele ISP-Kabel benötigt wird. Von nun an werden alle Schritte mit dem seriellen Kabel ausgeführt.

Firmware installieren

Die Firmware wird über die serielle Leitung zum fnordlicht übertragen.

Serielle Verbindung zum Atmel überprüfen

Das fnordlicht mit dem Rechner über das serielle Kabel verbinden und ein Terminalprogramm für 19200 Baud, (8N1, 8 Datenbit, keine Parität, 1 Stopbit) kofigurieren. Nun das Fnordlicht an eine passende Spannungsquelle (zwischen 12 und 16V) anschliessen. Energie! Solang der Atmel noch nicht programmiert ist und der Jumper PGM (bzw. PGSE) auf die Pins 1-2 gesetzt ist sollte der Atmel nun ununterbrochen die Zeichenkette "ba" (boot application)senden.

Jumper setzen (Programmiermodus)

Bevor Firmware über das serielle Kabel in den Atmel übertragen werden kann, muss dem Bootloader mitgeteilt werden, dass er nicht das Programm ausführen, sondern auf den Upload von Firmware warten soll. Dazu das Fnordlicht von der Spannungsquelle trennen und den Jumper PGM (bzw. PGSE) auf die Pins 2-3 setzen. Beim Einschalten meldet der Atmel über die serielle Schnittstelle "bp" (boot programming). Senden eines einzelnen Zeilenumbruches (Enter drücken) quittiert der Atmel mit "?" (unknown command).

Firmware übersetzen

Das folgende Target im Makefile übersetzt die fnordlicht Firmware:

make fnordlicht.hex

Firmware hochladen

Das folgende Target im Makefile überträgt die Firmware in den Flash-Speicher des Microcontrollers:

make install-fnordlicht SERIALDEV=/dev/ttyS0

SERIALDEV gibt die zu benutzende Schnittstelle an.

i²c Adresse im EEPROM setzen

Ist die i²c Adresse im EEPROM nicht gesetzt, wird das fnordlicht nach dem Einschalten dauerhaft rot leuchten. Die Standardadresse lässt sich mit folgendem Kommando setzen:

make install-eeprom SERIALDEV=/dev/ttyS0

SERIALDEV gibt die zu benutzende Schnittstelle an.

Einschalten!

Zunächst darauf achten, dass der Jumper auf die Position "2-3" gesetzt ist. (Probe: Atmel meldet beim Einschalten "ba" (boot application) über die serielle Verbindung). Nun einschalten - das fnordlicht führt das Programm aus.