I have been trying to test the wireless modules ASK transmitter and Receiver transmitting at 434 MHz.i am just sending a simple code of highs and lows. The problem is that the receiver receives stray signal and then works while i am not transmitting on the other side.
what i would like to know is how can i eliminated the problem from the receiver side.the modules were bought from spark Fun.
ASK receivers are never quiet, they always output noise as false ones and zeroes.
You have to make your software strong by using checksums and error checking to pick out your data. Even if the receiver was quiet, it would still pick up 433MHz packets from car keyfobs and garage door openers etc.
I found it a hassle making a protocol layer and went with using smart RF transceivers (ANT or ZigBee) instead.
The HopeRF modules are typical. They use FSK modulation.
Data is sent in packets of n user data payload bytes. Each packet of bytes has a preamble of 3 or so bytes of alternation 1s and 0s, such as 0xAA. These serve to let the receiver AGC stabilize. Next come, say, two synch bytes. The HopRF modules use 0x2D and the inverse of that, 0xD2 (when configured for such). Following this is a packet of data bytes then two CRC16 bytes. The CRC are calculated by the sender and verified by the receiver. The size of the data payload is either fixed, or there’s a size value in the beginning of the packet.
If you are using on-off-keying (OOK, also called amplitude shift keying) instead of FSK, the receiver noise when there’s no transmitted signal will be worse than in FSK modules. This is noise like in an FM broadcast receiver inbetween channels. Every now and then, noise, which is sort of random in nature, triggers a reception. The CRC check is used to be able to ignore such.
The 802.15.4 modules like XBee do all this packetization and error detection for you.
stevech:
The HopeRF modules are typical. They use FSK modulation.
Data is sent in packets of n user data payload bytes. Each packet of bytes has a preamble of 3 or so bytes of alternation 1s and 0s, such as 0xAA. These serve to let the receiver AGC stabilize. Next come, say, two synch bytes. The HopRF modules use 0x2D and the inverse of that, 0xD2 (when configured for such). Following this is a packet of data bytes then two CRC16 bytes. The CRC are calculated by the sender and verified by the receiver. The size of the data payload is either fixed, or there’s a size value in the beginning of the packet.
If you are using on-off-keying (OOK, also called amplitude shift keying) instead of FSK, the receiver noise when there’s no transmitted signal will be worse than in FSK modules. This is noise like in an FM broadcast receiver inbetween channels. Every now and then, noise, which is sort of random in nature, triggers a reception. The CRC check is used to be able to ignore such.
The 802.15.4 modules like XBee do all this packetization and error detection for you.
thanks for your suggestion . yes i am using on and off with assembly language.what i would like to know is how i can solve such problem since i can get the RF tranceiver quickly.
Typically, one would send a preamble to get the receiver synced, encode the data for continuously changing bits, such as Manchester, then append a checksum to verify correct reception.
waltr:
Typically, one would send a preamble to get the receiver synced, encode the data for continuously changing bits, such as Manchester, then append a checksum to verify correct reception.
waltr:
Typically, one would send a preamble to get the receiver synced, encode the data for continuously changing bits, such as Manchester, then append a checksum to verify correct reception.