Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
private:rasperry_pi_ir-onoff [2013/01/25 23:37] Patrick Wacker [XBox 1 DVD-Fernbedienung] Dekodierung überarbeitet |
private:rasperry_pi_ir-onoff [2013/02/04 19:38] (aktuell) Patrick Wacker [Technisat DigiPal 2 - DBV-T Fernbedienung] Aufgetretene Probleme dokumentiert |
||
---|---|---|---|
Zeile 29: | Zeile 29: | ||
* Übertragungsfehler im IR-Signal sollten erkannt werden. | * Übertragungsfehler im IR-Signal sollten erkannt werden. | ||
* Automatische Erkennung von RCA und RC5 | * Automatische Erkennung von RCA und RC5 | ||
+ | * Die IR-Codes (Tasten) sollten ohne den PIC neu zu Programmieren änderbar sein. | ||
+ | * RCA und RC5 Codes zum Ein-/Ausschalten im EEProm sichern | ||
+ | * Updates der Codes wenn z.B. der Taster > 8s betätigt wurde. | ||
+ | * - Taster >8s --> IR-Code aufnehmen. | ||
+ | * - 1. "STOP"-Taste | ||
+ | * - 2. "SELECT"-Taste | ||
+ | * - 3. "POWER"-Taste | ||
+ | * - [4. "ANZAHL der STOP-Codes" (STOP so oft betätigen wie es zum einschalten genutzt werden soll) (Default: 2 (z.B. bei "Skip"))] ((eventuelle Erweiterung)) | ||
+ | * - [5. "ANZAHL der STOP-Codes" (STOP so oft betätigen wie es zum ausschalten genutzt werden soll) (Default: 4 (z.B. bei "Skip"))] ((eventuelle Erweiterung)) | ||
+ | * - [6. "ANZAHL der POWER-Codes" (POWER so oft betätigen wie es zum Ein-/Ausschalten genutzt werden soll) (Default: 1 (z.B. bei "Skip"))] ((eventuelle Erweiterung)) | ||
+ | * Entscheidung ob RCA oder RC5 gespeichert wird innerhalb des PICs treffen | ||
+ | * Wenn ein Code nicht gespeichert werden soll (z.B. keine "POWER"-Taste vorhanden) sollte dieser Abschnitt durch ein kurzes betätigen des Tasters übersprungen werden können. | ||
+ | * Anzeige über LED ob CODE richtig entgegen genommen wurde. | ||
+ | * und durch Blinken anzeigen welcher Code gerade eingegeben werden soll. (1-3 mal Blinken, dann ca. 3 Sekunden Pause) | ||
+ | * Automatischer Abbruch der Aufzeichnung wenn länger als 2 Minuten keine Befehle empfangen wurden. | ||
+ | * Taster > 20 Sekunden betätigt --> RESET der IR-Codes auf "Standard" Werte! | ||
* PIC-Code und Schaltplan/Layout in Subversion verwalten. | * PIC-Code und Schaltplan/Layout in Subversion verwalten. | ||
Zeile 35: | Zeile 51: | ||
* 2x STOP, dann SELECT --> Einschalten | * 2x STOP, dann SELECT --> Einschalten | ||
* 4x STOP, dann SELECT --> Ausschalten | * 4x STOP, dann SELECT --> Ausschalten | ||
+ | * Aber auch das Ein-/Ausschalten über eine "POWER"-Taste auf der Fernbedienung sollte möglich sein. | ||
Zeile 140: | Zeile 157: | ||
==== Technisat DigiPal 2 - DBV-T Fernbedienung ==== | ==== Technisat DigiPal 2 - DBV-T Fernbedienung ==== | ||
+ | |||
+ | Codierung der einer Taste auf der DigiPal 2 (ohne 'e') Fernbedienung (RC5 - Format) | ||
+ | |||
+ | {{svg>private:rasperry_pi_ir-onoff:timing_digipal_remote}} | ||
+ | |||
+ | Dieses Timing ist für das RC5 Format, im Nachhinein wurde festgestellt das einige Tasten ein "extended" RC5 Format übertragen. | ||
+ | Bei diesem ist die START Codierung anders ('10' statt '11 -> somit low-Pegel für 1,8ms). Dadurch überschneidet sich die Zeitmessung mit dem RCA Format. | ||
+ | |||
+ | Außerdem gibt es Probleme beim "fehlerfreien" Empfang des RCA Formats: | ||
+ | - Das Start-Bit ist, bei direkter Richtung der Fernbedienung auf den IR-Empänger, nicht 4ms lang sondern schwankt zwischen 0.8ms und 4ms. Teilweise werden auch mehrere Pulse erkannt! | ||
+ | - Die Logitech Harmony wird besser erkannt als die Original MS XBox Fernbedienung. | ||
+ | - | ||
+ | |||
+ | Die nachfolgenden Zeiten wurden mit dem Oszilloskop ermittelt. | ||
+ | |||
+ | | **Timings** ^ t_low ^ t_high ^ t_puls ^ __t_soll__ ^ | ||
+ | ^ Start | 0.9ms | 0.9ms | 1.8ms | x.y ms | | ||
+ | ^ "0" | 0.9ms | 0.9ms | 1.8ms | x.y ms | | ||
+ | ^ "1" | 0.9ms | 0.9ms | 1.8ms | x.y ms | | ||
+ | |||
+ | |||
Zeile 168: | Zeile 206: | ||
===== Umsetzung ===== | ===== Umsetzung ===== | ||
+ | |||
+ | ==== Verwendete Module ==== | ||
+ | |||
+ | * TIMER0: Increment alle 32µs (Bei 4MHz --> Prescaler 1:32), Overflow bei 8,192ms | ||
+ | * Zur Zeitmessung des IR-Data-Signals | ||
+ | * TIMER1: Increment alle 8µs (Bei 4MHz --> Prescaler 1:8), Overflow bei 524,288ms | ||
+ | * Zur Erkennung von Button-Presses und Zeitmessungen für Sleep/CMD-Ende | ||
+ | * | ||
==== Schaltplan ==== | ==== Schaltplan ==== |