adjustable IR-carrier-frequency filtering
StefanL38
Posts: 2,292
Hi,
I would like to use an IR-receiver to record IR-remote signals.
I know there are pre-assembled modules for different carrier-frequencies(30kHz, 33, 36, 36.7 38, 40, 44, 56 kHz.)
Now my circuit should work with all these carrier-frequencies. The problem is the single carrierpulses are
very short (About 1 microsecond. Simply sampling an output-pin would require a sampling frequency of
1 / 0,33 microseconds = 3MHz! This is really high and the sampled data would be really large.
So I'm thinking about a circuit which can be adjusted in its carrier-frequency-response.
But I have only vaque ideas how this could be done.
I guess first step would be to detect the actual carrier-frequency itself. I guess this is not a big problem.
Then another part of the code would have to configure counters to response with a high-signal as long as the carrierfrequency is detected. And responsing with a low signal when no carrier-signal is detected.
Another approach might be to create an adjustable analog voltage or a frequency that is feed into
a carrier-frequency filtering circuit to obtain the carrier-on/off-sequence.
Any ideas how this can be done with a propeller-chip are greatly appreciated.
A third approach would be to have pre-assembled IR-decoders for each frequency. But as there are 8 common used frequencies this would be a lot effort and I would like to avoid this effort. Maybe if the external circuitry needs a lot of components this still might be the better solution.
keep the questions coming
best regards
Stefan
P.S. got I fourth idea.
If I would use a monoflop that is strechting the signaltime up to 10 microseconds then I could sample at
200kHz = every 5 microseconds. Which would reduce the sampled data a lot.
I would like to use an IR-receiver to record IR-remote signals.
I know there are pre-assembled modules for different carrier-frequencies(30kHz, 33, 36, 36.7 38, 40, 44, 56 kHz.)
Now my circuit should work with all these carrier-frequencies. The problem is the single carrierpulses are
very short (About 1 microsecond. Simply sampling an output-pin would require a sampling frequency of
1 / 0,33 microseconds = 3MHz! This is really high and the sampled data would be really large.
So I'm thinking about a circuit which can be adjusted in its carrier-frequency-response.
But I have only vaque ideas how this could be done.
I guess first step would be to detect the actual carrier-frequency itself. I guess this is not a big problem.
Then another part of the code would have to configure counters to response with a high-signal as long as the carrierfrequency is detected. And responsing with a low signal when no carrier-signal is detected.
Another approach might be to create an adjustable analog voltage or a frequency that is feed into
a carrier-frequency filtering circuit to obtain the carrier-on/off-sequence.
Any ideas how this can be done with a propeller-chip are greatly appreciated.
A third approach would be to have pre-assembled IR-decoders for each frequency. But as there are 8 common used frequencies this would be a lot effort and I would like to avoid this effort. Maybe if the external circuitry needs a lot of components this still might be the better solution.
keep the questions coming
best regards
Stefan
P.S. got I fourth idea.
If I would use a monoflop that is strechting the signaltime up to 10 microseconds then I could sample at
200kHz = every 5 microseconds. Which would reduce the sampled data a lot.
Comments
That way, there'd be less data to save than if you stored the entire waveform.
-Phil
MY next try will be the following:
first determing the actual carrier-frequency
Setting up a counter for counting external pulses.
Comparing actual counted pulses with the ones of the last loop
if bigger ==> pulse occurred. if equal no new pulse since last loop.
Start a new sampling cycle after 60-90% of the period of the carrier-frequency.
The start can be synchronised through a waitpeq so a deviation between real carrier-frequency and the calulated one
doesn't matter.
I guess this will make sure to catch each pulse even if the pulse is very short while only each 1/56000 = 17.86 microseconds a
bit is used. Meaning at 0.2 seconds recording time only 1400 bytes are used to represent the pulsetrain.
Playing back will be done at carrier-frequency.
The exact value how long to sample inside of one sampling cycle depends on how long it takes to do a WRLONG to HUB-RAM
which must be finished withing the same sampling-cycle.
best regards
Stefan
If this is not the case that you will have other carriers at the same time and you want your receiver to pick up any carrier then by all means implement your own high-pass amp/filter driven from an IR photo-diode. You don't need to measure the carrier but simply feed it into an equivalent "diode detector" circuit where basically it is half-wave rectified and filtered. BTW, an NPN with a pull-up on the collector and cap from collector ground will be sufficient for this. If you want to be able to measure the carrier frequency too I would either keep the demodulated signal and have an extra input before the detector to measure the carrier or else no detector and demodulate totally in software.