ELM403
Output Waveforms
Once the ELM403 has some bounce-free signals
to work with, it can generate outputs based on them.
The logic to decode the motion of an encoder
shaft is not as simple as it would first appear. Some
authorities recommend simply monitoring an input and
when it changes, provide an output based on the level
of the other input. This does not always work, as the
encoder can output multiple signals from only the ‘A’ or
or only the ‘B’ contact if the shaft is moved ever so
slightly when at the detent or at the mid-point position
(between detents). Simply seeing one input change is
not sufficient to say that there is any significant shaft
rotation.
The ELM403 monitors both ‘A’ and ‘B’ transitions,
and determines the outputs based on the sequence in
which the transitions have occurred. This is a better
way to guarantee that the output signals are generated
properly. The internal logic also performs some self-
checking, and monitors for problems such as an output
pulse being initiated before the previous one had
completed, which might occur for some very fast
inputs (the second one will be ignored in this case).
The output of the ELM403 is simply a series of
pulses, as shown in Figure 4. When the shaft is
moving in a clockwise direction, there will be pulses at
the Up output, while a counter-clockwise rotation
results in pulses at the Down output. This assumes
that the encoder is a standard one, where the ‘A’
signal leads the ‘B’ for a clockwise rotation.
Outputs are usually generated each time that one
of the inputs change, so for each full cycle of both of
the inputs, there will be 4 output pulses. This is what is
known as 4x decoding. The other type of decoder that
is very common is the 2x decoder, as used by the
ELM402. We do not currently offer a product with 1x
decoding - if you require one, you will need to use the
ELM401 and decode the signal with your own logic.
The duration of the output pulse is set by the level
at pin 4. If it is at a high level, the pulse width will be
approximately 2.0 msec long, while a low level will
result in 200 µsec wide pulses. Pin 5 can be used to
invert the outputs, so that they are normally at a high
level, and switch to a low level for each pulse.
Output pulses do not always occur when one of
the inputs change. After startup, the first output can
not be generated until the ELM403 has seen both of
the inputs change, and no output is generated until
then. Also, if an input is seen to be ‘chattering’ the
ELM403 will block the output. Chattering can occur
when the shaft is wiggled, or when it is subjected to
severe vibration. Figure 5 on the next page shows how
the ELM403 handles the multiple inputs due to chatter.
If this logic were not in place, multiple outputs could
occur due to vibration (as found in an automobile, or
an industrial setting), and the setting could ‘creep’ with
time – even though the shaft was not turned.
Generally, output pulses will occur in groups of
four (between each detent), so resistance values or
settings will repeat consistently as the shaft is rotated
in one direction and then in the other. Depending on
when the shaft changes direction, however, the pulses
may not be generated in groups of four. If you are
designing a circuit and require that the controlled
variable must repeat exactly as the shaft is turned in
either direction, you may prefer to use a 2x decoder
such as the ELM402.
A Input
B Input
Up
Down
debounce
delay
direction changes
Figure 4. Output signals (pin 5 = 0V)
ELM403DSA
Elm Electronics – Circuits for the Hobbyist
www.elmelectronics.com
7 of 9