Pfad:
Home =>
AVR-Übersicht =>
Anwendungen =>
IR-Steuerungen => Analyse
(This page in English:
Analyse von IR-Fernsteuerungen mit AVR ATmega8
Diese Seite zeigt, wie
- die Signale einer Fernsteuerung aufgebaut sind,
- die Hardware für die Messung aussieht,
- die AVR-Software arbeitet,
- die Messwerte mitgelesen werden,
- die Daten ausgewertet werden.
Damit IR-Signale von anderen Quellen von Licht- und Wärmeschwankungen besser
unterscheidbar sind, sind sie moduliert. Fernsteuersignale sehen also etwa so aus:
Die Dauern des aktiven und inaktiven Zustands, die Signalfolge, usw., sind für
jede Fernbedienung charakteristisch. Hier bestehen folglich unzählige
Möglichkeiten, mit dreißig verschieden langen Signalfolgen das
jeweilge Gerät anzusprechen.
An den Seitenanfang, Zur IR-Leitseite
Zum Messen wird hier das STK500 verwendet und keine besondere Schaltung aufgebaut,
weil das Messgerät nur kurz zum Messen verwendet und nicht laufend gebraucht
wird.
Als IR-Sensor wurde ein TSOP1738 von Vishay Telefunken verwendet, der über
eine Fassung und angelöteten Anschlussdrähten und Pinsteckern mit dem
Port D des STK500 verbunden wird (rot=VTG, schwarz=GND, grau=PD2).
Als Prozessor wird ein ATmega8 verwendet, der in die Fassung SCKT3200A2 des STK500
eingesetzt und über die grüne ISP-Fassung programmiert wird.
Die RS232-Leitungen RXD und TXD werden mit Port D PD0 und PD1 verbunden. Das
RS232-Signal kann am SPARE-Anschluss mit dem Rechner verbunden werden.
Der Takt wird aus einem Quarz mit 9,8304 MHz erzeugt, die Jumper sind entsprechend
zu setzen und die Fuses des ATmega8 sind auf den Quarz umzustellen.
An den Seitenanfang, Zur IR-Leitseite
Die Software für den ATmega8 ist im HTML-Format
hier und im Assemblerformat hier verfügbar.
Die Software
- beobachtet den INT0-Eingang und reagiert auf jeden Wechsel von Low auf High
und von High nach Low,
- übernimmt dann den Zählerstand eines 24-Bit-Timers, fügt
im obersten Bit ein Signal für ein High- (1) bzw. Low-(0) Signal hinzu,
- speichert den Zählerstand in einem Puffer im SRAM,
- wandelt die Zählerstände in Dezimalzahlen um und sendet das
Ergebnis mit vorgestelltem "H" bzw. "L" mit 38.400 Bd
über die serielle Schnittstelle,
- erlaubt das Ein- und Ausschalten der Messung (durch Senden von 1 bzw. 0
über die Schnittstelle),
- ermöglicht die Einstellung der Zeitbasis bei der Messung auf 10 us,
100 us, 1 ms und 10 ms (durch Senden von a, b, c bzw. d
über die serielle Schnittstelle).
Senden und Empfang über die Schnittstelle erfolgen interrupt-gesteuert, um
die Zeitmessung nicht zu stören.
An den Seitenanfang
Die Messdaten brauchen nicht vom Bildschirm abgeschrieben werden. Das Auslesen
der Daten in eine Textdatei ist heutzutage (mit dem Spitzenbetriebssystem Windows
7) aber wesentlich schwieriger als früher: es gibt kein vernünftiges
Terminalprogramm mehr, das kostenlos ist und trotzdem gut funktioniert und den
Capture-Modus kann.
Ich habe eins gefunden, das aber nur unter einem Windows XP Fenster in einem
Virtual-PC von Microsoft funktioniert. Also den Virtual-PC und das XP von M$
herunterladen und installieren.
Dann RealTerm aus dem Internet herunterladen und im Virtual-XP installieren.
Vor dem Starten von RealTerm die serielle Schnittstelle zum SPARE-Anschluss
des STK500 bereitmachen und diese Schnittstelle im Virtual-XP im Menu
"USB" dem Virtual-XP zuordnen.
Im RealTerm im Fenster den Port (hier: Port 3), als Baudrate 38.400 wählen
und mit dem Knopf Change ändern.
Der ATmega8 meldet sich mit seinem Menue.
Die Daten von High- und Low-Phasen im Modus A (10 us Takt).
Das Fenster Capture ermöglicht das Mitschreiben der Daten einer Fernsteuerung
in eine Datei. Dazu ist ein Dateiname zu wählen und das Capture zu starten.
Damit alle Daten einer Fernsteuerung in eine Datei gelangen, sollte vor dem
Drücken jeder Fernsteuertaste ihre Benennung mit "key=xyz" in die
Datei geschrieben werden (Cursor muss dazu im Realterm-Sendefenster stehen!).
So sehen die mitgeschriebenen Daten einer Fernsteuerung aus.
Die Zeile mit "A>H1994374" stört nicht weiter, sie wird bei der
Auswertung ignoriert, weil sie nicht mit "H" oder "L"
anfängt.
Noch ein Hinweis auf einen eigenartigen Fehler, dessen Ursache unergründlich
ist. Nach einem neuen Key fehlt in der dritten oder vierten Zeile danach ein
"H" oder "L". Das verhindert eine korrekte Auswertung. Da
hilft nur die Durchsicht der gespeicherten Datei mit einem Editor. Man sucht
alle Zeilen mit "key=", schaut sich die nachfolgenden Sequenzen an
und fügt den fehlenden Buchstaben ein.
Damit diese Daten komfortabel ausgewertet werden können, gibt es hausgemachte
Software. Hier geht es zur Software
für die Auswertung.
An den Seitenanfang, Zur IR-Leitseite
©2010 by http://www.avr-asm-tutorial.net