How Encoders and Decoders work
The radio frequency spectrum is filled with noise and other signals, especially
those frequencies where unlicensed transmitter operation under FCC part 15 rules is
allowed. When using a wireless remote control system it is desirable to have a way of
filtering out or ignoring those unwanted signals to prevent false data from being
One way to accomplish this is to use microprocessors at the transmitter and receiver
that are programmed with error detection and correction algorithms something like those
used in modems. A much simpler way is to use an encoder IC at the transmitter and a
decoder IC at the receiver. These ICs automatically generate and decode multiple serial
codes that must match before data is accepted as valid.
In the early days of "radio control", before these coding ICs were
available, radio controlled garage doors sometimes opened themselves when they received
transmissions from a plane passing overhead or a two-way radio operating in the area.
Encoding and decoding is now used in most wireless control systems to prevent this type of
interference and to provide security.
Coding ICs are made by Motorola and Holtek. Jameco
has some Motorola and Holtek devices. Digi-key has
the complete line of Holtek. We will use the Holtek HT-680 encoder and HT-694 decoder as
an example of how these devices work. They cost less than $3.00 each.
Both the HT-680 and HT-694 are available in 18 pin DIP packages and in surface mount
packages. In addition to encoding and decoding functions, these devices have four data
The HT-680 encoder has 8 tri-state address pins 10 through 17 that can be left open,
connected to +V or connected to ground. This gives thousands of possible addresses that
you can program. If you don't want to select any address you can just leave all 8 pins
open. A good compromise is to install a 4 position DIP switch at address pins 10, 11, 12
and 13 and ground one side of each switch. This gives 16 binary address selections by
either leaving the address pins open or connecting them to ground. Pins 14 - 17 can be
left open. In addition to providing security the reason for using addresses is so you can
have several transmitters and receivers close together and control which transmitter sends
to which receiver.
Upon being triggered by applying an up level to the transmit enable (TE) pin 6 for a
few milliseconds, the encoder automatically generates and serially sends three groups
(packets) of pulses containing address and data information from data out pin 5 to a
transmit circuit or module. Each group repeats the same address and data information. If
TE is held at an up level, transmission of the three groups will continue to repeat as
long as it is held up.
The rate at which these pulses are generated is controlled by an on-chip oscillator.
The frequency of the oscillator is controlled by a resistor connected to pins 7 and 8. A
390K resistor sets the frequency at 100 KHz which is recommended by Holtek. A 120K
resistor will set the frequency to 250 KHz which will give faster data transfer rate if
required. It takes about 90 milliseconds to send the three groups of automatically encoded
pulses at an oscillator frequency of 100 KHz and about 54 milliseconds at 250 KHz. Since
each group in a sequence of three groups repeats the same data, the maximum number of
times that you can change the input data to the encoder from zero to one or from one to
zero is about 18 times per second at an oscillator frequency of 250 KHz (1000 ms / 54 ms).
After initiating a transmit sequence input data should be kept valid for the duration of
the three group sequence. Obviously this is not a high data rate system but it is more
than adequate for most wireless control applications.
The HT-694 decoder oscillator resistor connected to pins 7 and 8 must be of the same
value as that in the transmitter so the oscillator frequencies are synchronized. The
decoder must have its address pins configured the same as the address pins in a
transmitter to receive data from that transmitter. When the decoder receives serial
data into input pin 6 from a receiver circuit or module, it compares the three groups of
address and data pulses. If at least two of the three groups are the same, the data is
considered valid and is transferred to output pins 1 through 4. The data that appears at
these pins is exactly the same as the data applied to the transmitter data pins 1 through
4. All pins can be down, all up or any combination. You can use these outputs to drive
individual circuits or devices, or since there are four pins you can send four bits of
information in binary format to represent a decimal count of 0 to 15.
The HT694 has momentary data outputs. Data remains on the output pins only as long as
data is being received. If you need latched data, you can use a HT-684L which has the same
pin connections and provides latched data outputs that retain the last data sent until new
valid data is received. When any valid data is detected in either a HT694 or HT684L, a
momentary valid transmit (VT) pin 5 goes up only as long as valid data is being received.
These devices do not provide error correction. They just accept valid data and reject
corrupted data. This means that a control signal that is corrupted will not be received
and must be sent again.
There are many other types of Holtek devices providing up to 8 data outputs, negative
transmit enable and transmit enabled by data input. Holtek devices are used in our
Wireless Control kit and are recommended for use with our Wireless Modules. You can
download Holtek data sheets in PDF format from Holtek.
MAKE YOUR NEXT PROJECT WIRELESS