maf:
I was under the impression the Laipac TLP/RLP modules have an AGC. …
Yes, they do have AGC although I haven’t seen the specifications for the attack and decay times. One of the problems is that when there is a lack of signal, the receiver runs wide open which generates the noise on the output and the forum posts about data being outputed continously from the receiver.
maf:
This is why just trying to connect the TLP/RLP modules to a UART doesn’t work all that well without manchester encoding. Encoding provides sufficient 1’s density for the AGC and a preamble allows the AGC enough time to settle before the real data.
I understand your comment that you need to give the receiver time to adjust to the input signal and using Manchester encoding will help ensure the receiver sees enough “1” data to prevent it from jacking up the receiver gain between data bytes. I can’t speak to this receiver’s design, but most AGC circuits are designed for a fast attack (i.e. reducing the receiver’s gain when the input signal is strong) and a much slower decay (increasing the receiver’s gain when the input signal is diminished). The code that I use allows time for the AGC to set itself by sending preamble bytes before sending the actual data. I haven’t experienced issues with not having enough “1” data. However, I do send my data in ASCII format which could mitigate some of the issues (i.e. 0 is sent as 30 hex instead of 8 zero bits).
maf:
I’m still skeptical using a hardware UART with these modules works all that well. The pulse out of the RLP is skewed depending on bit rate and noise at the wrong time would confuse the UART.
I can’t speak directly to this point as the hardware UART is used for debugging or data output to the PC (I use SERIN – bit-banging instead). However, receiving noise at the wrong time would be problematic with any transmission protocol.
What I’m suggesting is that one might consider using the analog output of the receiver with a comparator instead of the digital output. I have taken this approach and am able to use SERIN (software UART) for 2400 baud data links of 75-100 feet (the maximum range that I needed for my project). As always, your mileage may vary, but I think the technique is worth a look.
maf:
I’ve looked at the data format for a few devices (wireless doorbell, keyfob remote, wireless X10) that use the 310, 315, and 434 MHz bands and they all seem to use something similar to the IR protocol where bits are defined based on the time between leading edges of pulses.
There are certainly advantages for taking this approach. The data rate and timing to a certain extent can vary, which means that the manufactures can simply their design and produce it more inexpensively. The early tx/rx modules used LC networks to establish the frequency and the performance could vary greatly depending upon QC at the time of manufacture and subsequent installation. X10 wireless modules are especially noteworthy as devices that can be tuned for better performance! Now that devices use better frequency generation approaches, SAW for example, some of the reasons for taking this approach are no longer as compelling.