![]() |
AVR-Microcontroller |
|
|
Das APRS Telemetrie Interface Die SoftwareBearbeiten des ProgrammsIm 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. 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 ProgrammsZur 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 ControllersEine kleine Hürde vor der Vollendung des Interfaces stellt die Programmierung des Mikrocontrollers dar. Es gibt verschiedene Wege, den Controller zu programmieren. STK200/STK300Wer 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-ProgrammiersystemeMit 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 ProgrammiersystemFü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
|