]>
Commit | Line | Data |
---|---|---|
4225a882 | 1 | /*---------------------------------------------------------------------------------------------------------------------------------------------------\r |
2 | * irmp.c - infrared multi-protocol decoder, supports several remote control protocols\r | |
3 | *\r | |
4 | * Copyright (c) 2009-2010 Frank Meyer - frank(at)fli4l.de\r | |
5 | *\r | |
504d9df9 | 6 | * $Id: irmp.c,v 1.15 2010/04/12 10:15:40 fm Exp $\r |
cb8474cc | 7 | *\r |
4225a882 | 8 | * ATMEGA88 @ 8 MHz\r |
9 | *\r | |
10 | * Typical manufacturers:\r | |
11 | *\r | |
12 | * SIRCS - Sony\r | |
13 | * NEC - NEC, Yamaha, Canon, Tevion, Harman/Kardon, Hitachi, JVC, Pioneer, Toshiba, Xoro, Orion, and many other Japanese manufacturers\r | |
14 | * SAMSUNG - Samsung\r | |
15 | * MATSUSHITA - Matsushita\r | |
16 | * KASEIKYO - Panasonic, Denon & other Japanese manufacturers (members of "Japan's Association for Electric Home Application")\r | |
17 | * RECS80 - Philips, Nokia, Thomson, Nordmende, Telefunken, Saba\r | |
18 | * RC5 - Philips and other European manufacturers\r | |
19 | * DENON - Denon\r | |
20 | * RC6 - Philips and other European manufacturers\r | |
21 | * APPLE - Apple\r | |
22 | * NUBERT - Nubert Subwoofer System\r | |
23 | * PANASONIC - Panasonic (older, yet not implemented)\r | |
24 | *\r | |
25 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
26 | *\r | |
27 | * SIRCS\r | |
28 | * -----\r | |
29 | *\r | |
30 | * frame: 1 start bit + 12-20 data bits + no stop bit\r | |
31 | * data: 7 command bits + 5 address bits + 0 to 8 additional bits\r | |
32 | *\r | |
33 | * start bit: data "0": data "1": stop bit:\r | |
34 | * -----------------_________ ------_____ ------------______\r | |
35 | * 2400us 600us 600us 600us 1200us 600 us no stop bit\r | |
36 | *\r | |
37 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
38 | *\r | |
39 | * NEC + extended NEC\r | |
40 | * -------------------------\r | |
41 | *\r | |
42 | * frame: 1 start bit + 32 data bits + 1 stop bit\r | |
43 | * data NEC: 8 address bits + 8 inverted address bits + 8 command bits + 8 inverted command bits\r | |
44 | * data extended NEC: 16 address bits + 8 command bits + 8 inverted command bits\r | |
45 | *\r | |
46 | * start bit: data "0": data "1": stop bit:\r | |
47 | * -----------------_________ ------______ ------________________ ------______....\r | |
48 | * 9000us 4500us 560us 560us 560us 1690 us 560us\r | |
49 | *\r | |
50 | *\r | |
51 | * Repetition frame:\r | |
52 | *\r | |
53 | * -----------------_________------______ .... ~100ms Pause, then repeat\r | |
54 | * 9000us 2250us 560us\r | |
55 | *\r | |
56 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
57 | *\r | |
58 | * SAMSUNG\r | |
59 | * -------\r | |
60 | *\r | |
61 | * frame: 1 start bit + 16 data(1) bits + 1 sync bit + additional 20 data(2) bits + 1 stop bit\r | |
62 | * data(1): 16 address bits\r | |
63 | * data(2): 4 ID bits + 8 command bits + 8 inverted command bits\r | |
64 | *\r | |
65 | * start bit: data "0": data "1": sync bit: stop bit:\r | |
66 | * ----------______________ ------______ ------________________ ------______________ ------______....\r | |
67 | * 4500us 4500us 550us 450us 550us 1450us 550us 4500us 550us\r | |
68 | *\r | |
69 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
70 | *\r | |
71 | * SAMSUNG32\r | |
72 | * ----------\r | |
73 | *\r | |
74 | * frame: 1 start bit + 32 data bits + 1 stop bit\r | |
75 | * data: 16 address bits + 16 command bits\r | |
76 | *\r | |
77 | * start bit: data "0": data "1": stop bit:\r | |
78 | * ----------______________ ------______ ------________________ ------______....\r | |
79 | * 4500us 4500us 550us 450us 550us 1450us 550us\r | |
80 | *\r | |
81 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
82 | *\r | |
83 | * MATSUSHITA\r | |
84 | * ----------\r | |
85 | *\r | |
86 | * frame: 1 start bit + 24 data bits + 1 stop bit\r | |
87 | * data: 6 custom bits + 6 command bits + 12 address bits\r | |
88 | *\r | |
89 | * start bit: data "0": data "1": stop bit:\r | |
90 | * ----------_________ ------______ ------________________ ------______....\r | |
91 | * 3488us 3488us 872us 872us 872us 2616us 872us\r | |
92 | *\r | |
93 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
94 | *\r | |
95 | * KASEIKYO\r | |
96 | * --------\r | |
97 | *\r | |
98 | * frame: 1 start bit + 48 data bits + 1 stop bit\r | |
99 | * data: 16 manufacturer bits + 4 parity bits + 4 genre1 bits + 4 genre2 bits + 10 command bits + 2 id bits + 8 parity bits\r | |
100 | *\r | |
101 | * start bit: data "0": data "1": stop bit:\r | |
102 | * ----------______ ------______ ------________________ ------______....\r | |
103 | * 3380us 1690us 423us 423us 423us 1269us 423us\r | |
104 | *\r | |
105 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
106 | *\r | |
107 | * RECS80\r | |
108 | * ------\r | |
109 | *\r | |
110 | * frame: 2 start bits + 10 data bits + 1 stop bit\r | |
111 | * data: 1 toggle bit + 3 address bits + 6 command bits\r | |
112 | *\r | |
113 | * start bit: data "0": data "1": stop bit:\r | |
114 | * -----_____________________ -----____________ -----______________ ------_______....\r | |
115 | * 158us 7432us 158us 4902us 158us 7432us 158us\r | |
116 | *\r | |
117 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
118 | *\r | |
119 | * RECS80EXT\r | |
120 | * ---------\r | |
121 | *\r | |
122 | * frame: 2 start bits + 11 data bits + 1 stop bit\r | |
123 | * data: 1 toggle bit + 4 address bits + 6 command bits\r | |
124 | *\r | |
125 | * start bit: data "0": data "1": stop bit:\r | |
126 | * -----_____________________ -----____________ -----______________ ------_______....\r | |
127 | * 158us 3637us 158us 4902us 158us 7432us 158us\r | |
128 | *\r | |
129 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
130 | *\r | |
131 | * RC5 + RC5X\r | |
132 | * ----------\r | |
133 | *\r | |
134 | * RC5 frame: 2 start bits + 12 data bits + no stop bit\r | |
135 | * RC5 data: 1 toggle bit + 5 address bits + 6 command bits\r | |
136 | * RC5X frame: 1 start bit + 13 data bits + no stop bit\r | |
137 | * RC5X data: 1 inverted command bit + 1 toggle bit + 5 address bits + 6 command bits\r | |
138 | *\r | |
139 | * start bit: data "0": data "1":\r | |
140 | * ______----- ------______ ______------\r | |
141 | * 889us 889us 889us 889us 889us 889us\r | |
142 | *\r | |
143 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
144 | *\r | |
145 | * DENON\r | |
146 | * -----\r | |
147 | *\r | |
148 | * frame: 0 start bits + 16 data bits + stop bit + 65ms pause + 16 inverted data bits + stop bit\r | |
149 | * data: 5 address bits + 10 command bits\r | |
150 | *\r | |
151 | * data "0": data "1":\r | |
152 | * ------________________ ------______________\r | |
153 | * 275us 1050us 275us 1900us\r | |
154 | *\r | |
155 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
156 | *\r | |
157 | * RC6\r | |
158 | * ---\r | |
159 | *\r | |
160 | Content-type: text/html ]>