Hallo,
scatty
Wenn der IR-Empfang grundsätzlich läuft, muss auch der Empfang der im PIC erzeugten Codes für Eject und Power funktionieren. Wenn nicht, liegt ein Fehler in der lircd.conf vor.
Ich habe hier mal eine Universal-RC5-Konfigurationsdatei für LIRC abgelegt: http://www.tb-electronic.de/vdr/tmp/lircd.conf.RC5-Test.gz
Darin sind alle 4096 möglichen Befehle enthalten (2048 RC5 + 2048 Extended RC5) Tausch mal deine lircd.conf Testweise gegen diese Konfigurationsdatei aus. Dann werden mit irw alle Befehle in der Form
0000000000001xxx kk SYSTEM_ss_COMMAND_cc RC5
oder
0000000000000xxx kk SYSTEM_ss_COMMAND_cc RC5_EXTENDED
auf der Konsole angezeigt. Dabei ist xxx der ’Gesamtcode’ (System und Command) als Hexwert von 0x000 bis 0x07ff, kk ein 8bit Zähler für die Tastenwiederholung, ss die Systemadresse (System) und cc der Befehl (Command).
Die URC-7040 z.B. sendet die meisten Befehle als RC5, aber ein paar Befehle (links, rechts, Farbtasten) als Extended RC5, wenn sie mit dem Code 0081 programmiert wurde. Daher die zwei separaten Header in meiner lircd.conf.
Mit der Universal-Konfigurationsdatei müssen die Befehle vom PIC folgendermaßen angezeigt werden:
eject:
00000000000017fd 00 SYSTEM_1f_COMMAND_3d RC5
Power:
00000000000017fe 00 SYSTEM_1f_COMMAND_3e RC5
restart:
00000000000017ff 00 SYSTEM_1f_COMMAND_3f RC5
ZitatScheinbar ist meine URC-8040 (Code 0879), nicht zu 100% RC5-kompatibel, die aufgezeichneten Werte von irrecord differieren erheblich von denen deines Headers.
Mach mal den Test mit der Universal-Konfigurationsdatei. RC5 ist ein eindeutig definiertes Protokoll, da gibt es kein ’nicht ganz kompatibel’. Einzig das Timing kann schon mal etwas abweichen, bei den OneForAll ist es aber sehr genau. Die MEDION-Fernbedienung ist da wesentlich schlechter. Aber das spielt keine Rolle, da man im Header mit ’eps’ eine Toleranz definieren kann. Der Wert 30 ist dabei vollkommen ausreichend.
RC5 kann man nicht mit der Lernfunktion von LIRC aufzeichnen! RC5 ist ein Biphasencode und hat zudem noch ein wechselndes Togglebit. Das klappt fast nie. Stattdessen einfach den fertigen RC5 oder RC5 Extended Header nehmen und noch die einzelnen Codes zufügen. Wenn du die nicht kennst, kannst du sie mit Hilfe der Universal-Konfigurationsdatei herausfinden.
Wenn es sich dabei ausschließlich um RC5-Codes handelt, kannst du sie zusammen mit den drei PIC-Codes für eject, Power und restart unter dem ersten Header aus meiner lircd.conf (unter der Ziele ’# RC5, ONE FOR ALL URC-7040 code 0081’) eintragen. Wenn RC Extended Codes darunter sind, müssen diese separat unter dem zweiten Header eingetragen werden (# RC5 extended, ONE FOR ALL URC-7040 code 0081). Hier gehören auf keinen Fall die drei PIC-Empfangscodes hin!!
Zu dem Problem mit dem Abbruch des grünen Blinkens:
Ich könnte mir höchstens vorstellen, das dein MB selbst nach 5 Sekunden noch mehrere Pegelwechsel am COM-Port auslöst. Überprüf mal deine Angabe von 2...3 Sekunden: Das müssten genau 5 Sekunden sein.
Ich habe mal die Zeit, in der der Interrupt nach dem Einschalten gesperrt bleibt, auf 15 Sekunden erhöht. Probier mal aus, ob es damit klappt. Das HEX-File liegt hier:
http://www.tb-electronic.de/vdr/tmp/extb_1.02.hex.gz
incase
Blätter mal auf die Seiten 9/10 in diesem Thread zurück. Ich hatte extra einen Adapter vom Prototypen an einen DVB-C-Kartenbesitzer geschickt. Der störende Chip wurde leider nicht bemängelt.
Bei den 1.3er/1.5er Karten ist auch ein Chip im Weg, der ist aber nur 1mm hoch und stört nicht. Einen ganz ’chipfreien’ Raum gibt es um den J2 sowieso nicht. Wie dick ist denn der Chip auf der DVB-C-Karte? Ich habe die 1.6er Adapter mit einer anderen Buchsenleiste bestückt, die 1mm höher ist, da könnte man also noch etwas herausholen.
Tom