]>
Commit | Line | Data |
---|---|---|
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 | |
6 | * $Id: irmp.c,v 1.97 2011/02/25 15:24:06 fm Exp $\r | |
7 | *\r | |
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 | * SAMSUNG32 - Samsung\r | |
16 | * MATSUSHITA - Matsushita\r | |
17 | * KASEIKYO - Panasonic, Denon & other Japanese manufacturers (members of "Japan's Association for Electric Home Application")\r | |
18 | * RECS80 - Philips, Nokia, Thomson, Nordmende, Telefunken, Saba\r | |
19 | * RC5 - Philips and other European manufacturers\r | |
20 | * DENON - Denon, Sharp\r | |
21 | * RC6 - Philips and other European manufacturers\r | |
22 | * APPLE - Apple\r | |
23 | * NUBERT - Nubert Subwoofer System\r | |
24 | * B&O - Bang & Olufsen\r | |
25 | * PANASONIC - Panasonic (older, yet not implemented)\r | |
26 | * GRUNDIG - Grundig\r | |
27 | * NOKIA - Nokia\r | |
28 | * SIEMENS - Siemens, e.g. Gigaset M740AV\r | |
29 | * FDC - FDC IR keyboard\r | |
30 | * RCCAR - IR remote control for RC cars\r | |
31 | * JVC - JVC\r | |
32 | * NIKON - Nikon cameras\r | |
33 | * RUWIDO - T-Home\r | |
34 | * KATHREIN - Kathrein\r | |
35 | *\r | |
36 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
37 | *\r | |
38 | * SIRCS\r | |
39 | * -----\r | |
40 | *\r | |
41 | * frame: 1 start bit + 12-20 data bits + no stop bit\r | |
42 | * data: 7 command bits + 5 address bits + 0 to 8 additional bits\r | |
43 | *\r | |
44 | * start bit: data "0": data "1": stop bit:\r | |
45 | * -----------------_________ ------_____ ------------______\r | |
46 | * 2400us 600us 600us 600us 1200us 600 us no stop bit\r | |
47 | *\r | |
48 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
49 | *\r | |
50 | * NEC + extended NEC\r | |
51 | * -------------------------\r | |
52 | *\r | |
53 | * frame: 1 start bit + 32 data bits + 1 stop bit\r | |
54 | * data NEC: 8 address bits + 8 inverted address bits + 8 command bits + 8 inverted command bits\r | |
55 | * data extended NEC: 16 address bits + 8 command bits + 8 inverted command bits\r | |
56 | *\r | |
57 | * start bit: data "0": data "1": stop bit:\r | |
58 | * -----------------_________ ------______ ------________________ ------______....\r | |
59 | * 9000us 4500us 560us 560us 560us 1690 us 560us\r | |
60 | *\r | |
61 | *\r | |
62 | * Repetition frame:\r | |
63 | *\r | |
64 | * -----------------_________------______ .... ~100ms Pause, then repeat\r | |
65 | * 9000us 2250us 560us\r | |
66 | *\r | |
67 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
68 | *\r | |
69 | * SAMSUNG\r | |
70 | * -------\r | |
71 | *\r | |
72 | * frame: 1 start bit + 16 data(1) bits + 1 sync bit + additional 20 data(2) bits + 1 stop bit\r | |
73 | * data(1): 16 address bits\r | |
74 | * data(2): 4 ID bits + 8 command bits + 8 inverted command bits\r | |
75 | *\r | |
76 | * start bit: data "0": data "1": sync bit: stop bit:\r | |
77 | * ----------______________ ------______ ------________________ ------______________ ------______....\r | |
78 | * 4500us 4500us 550us 450us 550us 1450us 550us 4500us 550us\r | |
79 | *\r | |
80 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
81 | *\r | |
82 | * SAMSUNG32\r | |
83 | * ----------\r | |
84 | *\r | |
85 | * frame: 1 start bit + 32 data bits + 1 stop bit\r | |
86 | * data: 16 address bits + 16 command bits\r | |
87 | *\r | |
88 | * start bit: data "0": data "1": stop bit:\r | |
89 | * ----------______________ ------______ ------________________ ------______....\r | |
90 | * 4500us 4500us 550us 450us 550us 1450us 550us\r | |
91 | *\r | |
92 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
93 | *\r | |
94 | * MATSUSHITA\r | |
95 | * ----------\r | |
96 | *\r | |
97 | * frame: 1 start bit + 24 data bits + 1 stop bit\r | |
98 | * data: 6 custom bits + 6 command bits + 12 address bits\r | |
99 | *\r | |
100 | * start bit: data "0": data "1": stop bit:\r | |
101 | * ----------_________ ------______ ------________________ ------______....\r | |
102 | * 3488us 3488us 872us 872us 872us 2616us 872us\r | |
103 | *\r | |
104 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
105 | *\r | |
106 | * KASEIKYO\r | |
107 | * --------\r | |
108 | *\r | |
109 | * frame: 1 start bit + 48 data bits + 1 stop bit\r | |
110 | * data: 16 manufacturer bits + 4 parity bits + 4 genre1 bits + 4 genre2 bits + 10 command bits + 2 id bits + 8 parity bits\r | |
111 | *\r | |
112 | * start bit: data "0": data "1": stop bit:\r | |
113 | * ----------______ ------______ ------________________ ------______....\r | |
114 | * 3380us 1690us 423us 423us 423us 1269us 423us\r | |
115 | *\r | |
116 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
117 | *\r | |
118 | * RECS80\r | |
119 | * ------\r | |
120 | *\r | |
121 | * frame: 2 start bits + 10 data bits + 1 stop bit\r | |
122 | * data: 1 toggle bit + 3 address bits + 6 command bits\r | |
123 | *\r | |
124 | * start bit: data "0": data "1": stop bit:\r | |
125 | * -----_____________________ -----____________ -----______________ ------_______....\r | |
126 | * 158us 7432us 158us 4902us 158us 7432us 158us\r | |
127 | *\r | |
128 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
129 | *\r | |
130 | * RECS80EXT\r | |
131 | * ---------\r | |
132 | *\r | |
133 | * frame: 2 start bits + 11 data bits + 1 stop bit\r | |
134 | * data: 1 toggle bit + 4 address bits + 6 command bits\r | |
135 | *\r | |
136 | * start bit: data "0": data "1": stop bit:\r | |
137 | * -----_____________________ -----____________ -----______________ ------_______....\r | |
138 | * 158us 3637us 158us 4902us 158us 7432us 158us\r | |
139 | *\r | |
140 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
141 | *\r | |
142 | * RC5 + RC5X\r | |
143 | * ----------\r | |
144 | *\r | |
145 | * RC5 frame: 2 start bits + 12 data bits + no stop bit\r | |
146 | * RC5 data: 1 toggle bit + 5 address bits + 6 command bits\r | |
147 | * RC5X frame: 1 start bit + 13 data bits + no stop bit\r | |
148 | * RC5X data: 1 inverted command bit + 1 toggle bit + 5 address bits + 6 command bits\r | |
149 | *\r | |
150 | * start bit: data "0": data "1":\r | |
151 | * ______----- ------______ ______------\r | |
152 | * 889us 889us 889us 889us 889us 889us\r | |
153 | *\r | |
154 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
155 | *\r | |
156 | * DENON\r | |
157 | * -----\r | |
158 | *\r | |
159 | * frame: 0 start bits + 16 data bits + stop bit + 65ms pause + 16 inverted data bits + stop bit\r | |
160 | * data: 5 address bits + 10 command bits\r | |
161 | *\r | |
162 | * Theory:\r | |
163 | *\r | |
164 | * data "0": data "1":\r | |
165 | * ------________________ ------______________\r | |
166 | * 275us 775us 275us 1900us\r | |
167 | *\r | |
168 | * Practice:\r | |
169 | *\r | |
170 | * data "0": data "1":\r | |
171 | * ------________________ ------______________\r | |
172 | * 310us 745us 310us 1780us\r | |
173 | *\r | |
174 | *---------------------------------------------------------------------------------------------------------------------------------------------------\r | |
175 | *\r | |
176 | * RC6\r | |
177 | * ---\r | |
178 | *\r | |
179 | Content-type: text/html ]>