PASM SIRCS Decoder
JonnyMac
Posts: 9,194
While working on an intervalometer project for my Nuts & Volts column I found that my camera remote actually sends 20-bit SIRCS codes while my TV remote sends 12-bit codes. I ended up writing an SX VP that could receive either; attached is the a Propeller version of that.
It works by looking for a valid (2.4ms) start bit on the IR pin and counting the bits in a 44ms window (this is 1ms short of the Sony spec -- just for safety). At the end of the window the SIRCS code and bit count are reported. This program spits out the results to a terminal.
In the attached graphic you can see the results from my Sony DVD remote. I pressed keys in this order:
1, 2, 3, 4, 5, 6, 7, 8, 9, 0, Ch+, Ch-, Vol+, Vol-
Note how Vol+ and Vol- are 12-bit codes while the others are 20.
[noparse][[/noparse]Edit] I modified the assembly section to make better use of the ctr modules. CTRA (in logic always mode) is used for monitoring the SIRCS frame duration and CTRB (in neg detector mode) is used for measuring the just-captured bit from the IR detector.
Post Edited (JonnyMac) : 4/26/2009 9:28:17 PM GMT
It works by looking for a valid (2.4ms) start bit on the IR pin and counting the bits in a 44ms window (this is 1ms short of the Sony spec -- just for safety). At the end of the window the SIRCS code and bit count are reported. This program spits out the results to a terminal.
In the attached graphic you can see the results from my Sony DVD remote. I pressed keys in this order:
1, 2, 3, 4, 5, 6, 7, 8, 9, 0, Ch+, Ch-, Vol+, Vol-
Note how Vol+ and Vol- are 12-bit codes while the others are 20.
[noparse][[/noparse]Edit] I modified the assembly section to make better use of the ctr modules. CTRA (in logic always mode) is used for monitoring the SIRCS frame duration and CTRB (in neg detector mode) is used for measuring the just-captured bit from the IR detector.
Post Edited (JonnyMac) : 4/26/2009 9:28:17 PM GMT