ELM ELM409P

ELM409
Versatile Debounce Circuit
Description
Features
The ELM409 is digital filter circuit that is used to
interface mechanical contacts to electronic circuits.
All mechanical contacts, whether from switches,
relays, etc. will have inherent ‘bounce’ when they
make or break a connection. When that contact is
used for the electrical input to a digital circuit, the
bounces can easily be incorrectly interpreted as
multiple inputs. The ELM409 contains all of the logic
that is typically required to remove the bounce from
such signals, and provide a signal that has only one
transition.
In addition to providing the standard debounce
function, the ELM409 may also be configured for
other useful functions such as generating pulses or
alternating output levels on signal transitions.
No external components are needed for the
operation of the ELM409, as all timing and logic
functions are performed internally.
•
•
•
•
•
•
•
Standard and extra long debounce times
Schmitt input provides hysteresis
Complementary circuit outputs
Needs no external timing components
Low power CMOS design - typically 1 mA at 5V
Wide supply range - 3.0 to 5.5 volt operation
High current drive outputs
Connection Diagram
PDIP and SOIC
(top view)
VDD
1
8
VSS
A
2
7
Out
B
3
6
Out
C
4
5
In
Applications
•
•
•
•
Pushbutton interface for logic circuits
Limit switch monitoring
Time delay generation
Power on sequencing
Block Diagram
A
B
C
2
3
4
Control Logic
500 msec
debounce
In
pulse
generator
5
25 msec
debounce
ELM409DSA
edge
detectors
edge
detectors
toggle
circuit
Elm Electronics – Circuits for the Hobbyist
< http://www.elmelectronics.com/ >
7
Out
6
Out
1 of 8
ELM409
Pin Descriptions
VDD (pin 1)
This pin is the positive supply pin, and should always
be the most positive point in the circuit. Internal
circuitry connected to this pin is used to provide
power-on reset of the microprocessor, so an external
reset signal is not required. Refer to the Electrical
Characteristics section for further information.
A, B, and C (pins 2, 3, and 4)
These three pins modify the behaviour of the
ELM409, providing eight different configurations.
They determine whether the output should follow the
input, be a momentary pulse, or toggle the output on
each input transition. As well, they can select either
a standard 25 msec debounce period, or a longer
500 msec one. The longer period may be useful for
some very noisy interfaces, or for situations that
need a slight delay. See the “ELM409 Operation”
section for more details on these options.
hysteresis means that very slow moving or noisy
signals can be accommodated by the ELM409
without needing the signal to be preconditioned by
any external circuitry. (A standard CMOS input
should never have a slowly varying signal applied,
as it may cause excessive currents to flow internally,
but a Schmitt input circuit does not have this
limitation.)
Out (pin 7) and Out (pin 6)
The ‘debounced’ and processed signal is output on
pin 7, while the complement of this signal is output
on pin 6. These are high current CMOS drivers, so
will interface to virtually all of the common digital
logic families.
VSS (pin 8)
Circuit common is connected to this pin. This should
be the most negative point in the circuit.
In (pin 5)
The signal that is to be processed is applied to this
pin. Before the signal is ‘debounced’, it is passed
through a Schmitt trigger - a special buffer circuit that
has hysteresis in its gain function. The use of
Ordering Information
These integrated circuits are available in either the 300 mil plastic DIP format, or in the 208 mil SOIC surface
mount type of package. To order, add the appropriate suffix to the part number:
300 mil Plastic DIP............................... ELM409P
208 mil SOIC..................................... ELM409SM
All rights reserved. Copyright 2009 by Elm Electronics Inc.
Every effort is made to verify the accuracy of information provided in this document, but no representation or warranty can be
given and no liability assumed by Elm Electronics with respect to the accuracy and/or use of any products or information
described in this document. Elm Electronics will not be responsible for any patent infringements arising from the use of these
products or information, and does not authorize or warrant the use of any Elm Electronics product in life support devices and/or
systems. Elm Electronics reserves the right to make changes to the device(s) described in this document in order to improve
reliability, function, or design.
ELM409DSA
Elm Electronics – Circuits for the Hobbyist
< http://www.elmelectronics.com/ >
2 of 8
ELM409
Absolute Maximum Ratings
Storage Temperature....................... -65°C to +150°C
Ambient Temperature with
Power Applied....................................-40°C to +85°C
Voltage on VDD with respect to VSS............ 0 to +7.5V
Note:
Stresses beyond those listed here will likely damage
the device. These values are given as a design
guideline only. The ability to operate to these levels
is neither inferred nor recommended.
Voltage on any other pin with
respect to VSS........................... -0.6V to (VDD + 0.6V)
Electrical Characteristics
All values are for operation at 25°C and a 5V supply, unless otherwise noted. For further information, refer to note 1 below.
Characteristic
Minimum
Typical
Supply Voltage, VDD
3.0
5.0
VDD rate of rise
0.05
Maximum Units
5.5
Conditions
V
V/ms
see note 2
Average Supply Current, IDD
1.0
2.4
mA
see note 3
Input (pin 5)
Schmitt trigger
thresholds
2.9
4.0
V
VDD = 5.0V
Input (pin 5)
Schmitt trigger
thresholds
rising
falling
1.0
rising
falling
1.5
1.6
0.6
V
2.4
V
VDD = 3.0V
1.0
V
Output low voltage
0.3
V
Current (sink) = 10 mA
Output high voltage
4.2
V
Current (source) = 10 mA
Standard debounce time
25
msec
see note 4
Long debounce time
500
msec
see note 4
Output pulse width
50
msec
see note 4
Notes:
1. This integrated circuit is produced using one of the Microchip Technology Inc.’s PIC12C5XX products as the
core embedded microcontroller. For further device specifications, and possibly clarification of those given,
please refer to the appropriate Microchip documentation.
2. This spec must be met in order to ensure that a correct power on reset occurs. It is quite easily achieved
using most common types of supplies, but may be violated if one uses a slowly varying supply voltage, as
may be obtained through direct connection to solar cells, or some charge pump circuits.
3. Device only. Does not include any current supplied to external circuits.
4. The ELM409 uses an internal RC oscillator for the timing. This oscillator typically maintains an accuracy of
2% over the allowed temperature and voltage range.
ELM409DSA
Elm Electronics – Circuits for the Hobbyist
< http://www.elmelectronics.com/ >
3 of 8
ELM409
About Contact Bounce
The circuit of Figure 1 below shows one possible
connection that might be made between a mechanical
switch and a digital circuit. The pushbutton could be
used to summon an elevator, or to turn a circuit on, or
it could be a switch that is operated by foot pressure to
count the number of people entering a room. It does
not matter what the function is actually - in every case
we simply need a clean signal to present to the logic.
Normally, the pushbutton will not be pressed, so
its contacts will be open, and the digital circuit will ‘see’
taken from our pushbutton tests (and shows the output
from the ELM409 in the lower trace). Note that the
signal alternates between high and low several times,
bouncing between the levels. This bounce occurs
when the moving contacts of the switch meet the
stationary contacts, and is simply due to the physics of
the two parts meeting one another. The bounces do
not seem to have a defining characteristic that would
allow the behaviour to be predicted and filtered - it is
basically digital noise.
If this signal were to be input to the digital circuit
as it is, it would be seen as at least two switch presses
(and maybe more). Note that when the contacts open,
there is a similar problem, as shown in Figure 3:
Digital
Circuit
Figure 1. Pushbutton input to digital logic
only a resistor to circuit common (a ‘low ‘input). When
the pushbutton is pressed, the contacts close and the
digital circuit will be connected to the positive power
supply, or a logic ‘high’. It should be a simple matter of
processing this signal, but it is often not.
The oscilloscope trace of Figure 2 shows the
voltage that the digital circuit of Figure 1 might see
when the pushbutton is pressed. It is an actual trace
Figure 3. Bounce on switch opening
Seeing multiple inputs for a single switch press is
certainly not what is intended by any circuit, and it
needs to be addressed. The technique of ‘cleaning up’
such a signal is commonly known as ‘debouncing’, and
that is what the ELM409 does. It simply waits until the
bounces stop, then waits an additional time (the
debounce time) to be sure that there are no more
bounces likely to occur. Choosing an appropriate
debounce time is a design choice, but 25 msec seems
to be a good value.
There are several analog methods of performing
the ‘debouncing’ of a signal, many that work extremely
well, but we do not think that any work better than the
ELM409.
Figure 2. Bounce on switch closing
ELM409DSA
Elm Electronics – Circuits for the Hobbyist
< http://www.elmelectronics.com/ >
4 of 8
ELM409
ELM409 Operation
The circuit of Figure 4 shows how the ELM409
would typically be connected to debounce the signal of
Figure 1. Other than powering the ELM409, all that is
needed is to connect the options pins (A, B and C) to
VSS (providing low levels on all three), connect the
noisy switch signal to the input pin, and then connect
the ELM409 output pin to the digital circuit.
The output of the ELM409 in Figure 4 would
appear as shown in the ‘scope traces of Figures 2 and
3 (the lower traces). There is a slight delay (25 msec)
due to the debounce period, but otherwise, the signal
appears as you would expect from an ‘ideal’ switch.
The ELM409 is capable of performing several
other functions on the input signal - it can do more that
just debounce the signal. For example, it can provide
a change in output on the signal edges (transitions
from a low to a high level, or from a high to a low
level), and it can alternate (toggle) the output on each
occurrence of an edge. Each of these possibilities are
selected by changing the logic levels at the A, B and C
pins. The eight combinations are described in Table 1
below, and also appear pictorially on the next page.
4
3
2
1
409
5
6
7
8
Digital
Circuit
Figure 4. Debouncing the pushbutton
Function
A
B
C
Debounce Period
Notes
Follows
Input
0
0
0
25 msec
Standard contact debounce
0
0
1
500 msec
For very noisy circuits
Pulse on
Rising Edge
0
1
0
25 msec
Output pulse is 50 msec wide
0
1
1
500 msec
Output pulse is 50 msec wide
Pulse on
Falling Edge
1
0
0
25 msec
Output pulse is 50 msec wide
1
0
1
500 msec
Output pulse is 50 msec wide
Toggle
on Edge
1
1
0
25 msec
Changes on input H -> L
1
1
1
25 msec
Changes on input L -> H
Table 1. ELM409 options
ELM409DSA
Elm Electronics – Circuits for the Hobbyist
< http://www.elmelectronics.com/ >
5 of 8
ELM409
ELM409 Operation (continued)
The following diagrams provide a pictorial view of
each of the eight ELM409 options:
Input
(pin 5)
ABC = 000 or 001
Output
(pin 7)
ABC = 010 or 011
Output
(pin 7)
25 msec or 500 msec
50 msec
25 msec or 500 msec
ABC = 100 or 101
50 msec
Output
(pin 7)
25 msec or 500 msec
ABC = 110
Output
(pin 7)
25 msec or 500 msec
ABC = 111
Output
(pin 7)
25 msec or 500 msec
Figure 5. ELM409 Timing Diagrams
ELM409DSA
Elm Electronics – Circuits for the Hobbyist
< http://www.elmelectronics.com/ >
6 of 8
ELM409
Example Applications
This section shows several different ways to use
the ELM409. The first example (Figure 6) is actually a
variation of the circuit shown in Figure 4.
Figure 6 adds two components that should always
be considered in every ELM409 design. The first is a
supply bypass capacitor. Digital circuits will often have
transients (‘spikes’) in their current flow due to the
internal switching process. By adding a capacitor very
close to the IC, much of the current for these spikes
can be supplied by the capacitor rather than through
the (inductive) leads from the supply. The net result is
that there will be less noise generated at the supply
by the ELM409. A value of 0.01µF works well.
The other component that was added in Figure 6
is a series resistor at the input (pin 5). This resistor is
recommended when the electrical contact or switch is
any more than a few feet away from the ELM409 IC.
Placing the resistor in series with the input serves to
limit induced currents that might otherwise damage the
ELM409. A minimum value of a few hundred ohms is
recommended, and a larger value (such as the 4.7KΩ
shown), is preferred.
The next example (shown in Figure 7) has the
pushbutton connected between circuit common and
the input, rather than from the positive supply. An
arrow is shown at the output, symbolizing the output
signal, which is then connected as appropriate.
The one difference with this circuit is that the input
voltage will go from a high level to a low level when the
switch is pressed. To accommodate this, the options
pins have been set to 110, providing a toggle function
that changes state on each high to low transition. The
circuit will provide alternating high and low outputs
which change state each time the switch is pressed.
If the options pins had been set to 000 (ie all tied
low), the circuit would provide an output that follows
the switch presses, but might seem inverted. That is,
pin 7 would normally be at a high level, and would go
to a low level when the switch is pressed. If an output
that is normally low and goes high when the switch is
pressed is required, simply use pin 6 for the output
rather than pin 7.
This section concludes on page 8, with three more
example circuits and a short description of each.
4
3
2
0.01µF
1
409
5
6
7
8
4.7KΩ
Digital
Circuit
Figure 6. Debouncing the pushbutton revisited
4
3
2
1
0.01µF
409
5
6
7
8
4.7KΩ
Figure 7. Toggle circuit with the pushbutton to common
ELM409DSA
Elm Electronics – Circuits for the Hobbyist
< http://www.elmelectronics.com/ >
7 of 8
ELM409
Example Applications (continued)
The following are a a few circuits that use the
ELM409, but may not be what comes to mind when
you think of debouncing. They take advantage of the
internal timers in the ELM409 as well as the ability to
change options while the circuit is operational, to
provide some interesting functions.
The first (Figure 8) is a circuit that simply connects
the debounce input to the positive supply. With the
debounce period set for 500 msec, the output will
initially be low, then go high 500 msec after the power
is turned on. This delay may be useful if trying to
sequence the power to different circuits, or enable the
outputs (audio power amplifiers often need this delay
to allow the supplies to settle before connecting the
amplifier outputs to the speakers).
Figure 9 shows a circuit that provides a single
50 msec wide pulse at the output, 25 msec after power
has been applied. It relies on the fact that the
ELM409’s pin 7 output is always at a low level on
power up (and pin 6 is always high), so the initial
options setting will then be 010, for a 50 msec pulse
after a 25 msec debounce period. Once the output
pulse begins, however, the connection from pin 7 to
pin 4 causes the options to change to 011, giving a
debounce period of 500 msec (which can never be
met by a 50 msec pulse). The output remains low from
that time on.
This circuit works because the option pins are
always read just before a 25 msec debounce period is
about to expire (allowing for changes ‘on the fly’). In
this case, the pulse output is at its midpoint when the
pins are read, so the new latched setting becomes
011, and the debounce period changes to 500 msec.
As the pulse never lasts that long, it is ignored by the
500 msec debounce circuit, and the output never
changes again.
The final circuit also uses the output to modify the
input, and the debounce period. The result is a series
of 25 msec pulses with 500 msec gaps in between,
that continually repeat. Low frequency oscillators such
as this may be useful on the test bench, or it may
simply be used to drive an LED in order to attract
attention.
These are just a few of the many applications
possible with the ELM409… Enjoy!
4
3
2
1
409
5
6
7
8
Figure 8. Power on delay
4
3
2
1
409
5
6
7
8
Figure 9. Power on pulse
4
3
2
1
409
5
6
7
8
Figure 10. Low frequency oscillator
ELM409DSA
Elm Electronics – Circuits for the Hobbyist
< http://www.elmelectronics.com/ >
8 of 8