AT90S8515PDIP

AVR-Microcontroller
im Ham-Shack

ATMEL Controller

deutschenglish
deutsche Seiten englisch pages

Startseite

AVR-Projekte

APRS-
Telemetrie-
Interface

APRS-
Thermometer

GPS-Simulator

AVR-Kreis

AVR-Programmierer

AVR-Megaprog

RCEN-Blower

Morsetasten     FM-Keyer
    Microbug
    Nanobug
    Picobug


Amateurfunk

DARC-OV R01

Clubstn. DL0DX

Relais DB0SJ

DL-Contest Journal


Schule

Kombiampel

     
zurück zurück
 
weiter weiter

Das APRS Telemetrie Interface

Die Software

Bearbeiten des Programms

Im Normalfall sollte eine Bearbeitung des Programms nicht notwendig sein. Die Dateien "aprs_int.hex" und "aprs_int.eep" sind gebrauchsfertig.

Das gesamte Softwaresystem besteht aus reinen ASCII-Dateien.

Unter Linux/KDE verwende ich einfach "kedit" zur Bearbeitung.

Unter Windows gibt es ein kleines Problem mit dem Assemblersystem "avrasm.exe" von Atmel. Der eingebaute Editor kann nur relativ kurze Dateien bearbeiten, jedenfalls in der alten Version von 1998, mit der ich damals gearbeitet habe. Ich habe heute keinen Windows-Rechner mehr, deshalb weiß ich nicht, ob sich daran etwas geaendert hat. Eventuell muss die Datei in mehrere Teile zerteilt und mit der ".include"-Anweisung wieder zusammen gefügt werden.
Jeder bessere ASCII-Editor in Windows ist vorzuziehen.
Word ist ungeeignet!

Das Programmsystem besteht aus der Hauptdatei "aprs_int.asm". Mit der ".include"-Anweisung werden eine Reihe weiterter Dateien beim Assembliervorgang hinzugefügt. Ein Teil sind abgespaltene Programmteile, "*.asm", um den Quelltext übersichtlich zu halten, zum Teil sind es Bibliotheksdateien, die ich in verschiedenen anderen Projekten ebenfalls verwende, "*.inc".

Assemblieren des Programms

Zur Programmierung des Prozessors wird für den Flash-Speicher und für den EEPROM jeweils eine Datei im Intel-Hex Format gebraucht, "aprs_int.hex" und "aprs_int.eep". Die beiden Dateien sind schon fertig im Softwarepaket vorhanden.

Falls die Programmiersoftware ein anderes Format verlangt, muss neu assembliert werden.

Ich verwende dafür auf meiner Linux-Maschine den Assembler tavrasm von Tom Mortensen. Der Assembler ist auch in einer DOS-Version zu haben. Er ist etwas intelligenter als der originale Assembler für Windows von Atmel. Der Quelltext sollte sich mit beiden Assemblern fehlerfrei übersetzen lassen. Andere Assembler habe ich nicht probiert.

Der Assembler tavrasm ist nach dem Download aus dem Internet leicht zu installieren, unter Linux wie unter DOS.

Kommandozeile zur Assemblierung:

tavrasm -h aprs_int.asm -o aprs_int.hex -r aprs_int.eep -e aprs_int.lst

Also: Aufruf des Assemblers "tavrasm" mit den Parametern -h für das passende Hexfile-Format (abhängig von der verwendeten Programmiersoftware), Eingangsdatei, -o hex-Datei, -r eep-Datei, -e lst-Datei. Wer keine lst-Datei braucht, kann den letzten Parameter weglassen.

Programmieren des Controllers

Eine kleine Hürde vor der Vollendung des Interfaces stellt die Programmierung des Mikrocontrollers dar. Es gibt verschiedene Wege, den Controller zu programmieren.

STK200/STK300

Wer ein STK200 oder STK300 Experimentiersystem für die AVR-Prozessoren hat, hat gewonnen. Der Stiftverbinder "ATMELPGM" auf der Platine ist für das Programmierkabel dieses System vorgesehen. Die Programmiersoftware ist dann ebenfalls vorhanden und es kann los gehen. Eventuell vertauscht die Programmiersoftware die Bytes auf den gerade und ungeraden Adressen im EEPROM, meine Version von 1998. Das ist daran zu erkennen, dass der "RM"-Befehl eine Zeile dieser Art ausgibt: "Channel Matrix: DN0=?255 DN1=?255...". Dann die Kanalmatrix mit dem Befehl "MM" von Hand definieren oder besser die Programmiersoftware sp12 (s.u.) verwenden. Die Zeiten für die beiden Watchdogs sind dann ebenfalls vertauscht, ebenfalls von Hand korrigieren. Die anderen Plätze im EEPROM sind so vorbereitet, dass durch die Vertauschung kein Schaden entsteht.

Andere AVR-Programmiersysteme

Mit anderen Programmiersystemen gibt es auch keine Probleme. Wenn der Programmieranschluss nicht passt, den Prozessor extern programmieren und dann auf die Platine stecken. Auch in diesem Fall ist die passende Software vorhanden. Hier ebenfalls auf vertauschte Bytes im EEPROM achten.

Ich habe kein Programmiersystem

Für wenig Geld und ein paar Handgriffe Arbeit lässt sich ein Programmiersystem aufbauen.

Als Programmiersoftware dafür hat sich sp12 bewährt, sowohl unter Linux als auch unter DOS. Die Installation ist einfach zu erledigen nach den Anweisungen in der Dokumentation. Die Umgebungsvariablen müssen für den hier vorliegenden einfachen Anwendungsfall nicht gesetzt werden.

Nach dem ersten Start des Programms findet sich im aktuellen Verzeichnis eine Datei "_sp12rc". In ihr die Zeile "KANDA=0" in "KANDA=1" ändern. Eventuell in der Zeile "PORT=xxx" den Druckerport anpassen, wenn die Programmierschaltung nicht am 1. Port angeschlossen ist.

Kommandozeile:

sp12 -wpCf aprs_int.hex -weCf aprs_int.eep

 

zurück zurück
weiter weiter


zur Startseite Zur Startseite
nach oben nach oben
mailto Burkhard John
5.7.2006