debouncing a switch (in hardware)

Jul 06, 2006 12 Replies

I've been messing around with my own sort of development board for an Altera MAX 3064 because I have some downtime at work (I'm a coop) and wanted to teach myself some PLD stuff. I wanted ot put a manual clock button on it so I could just mess around with some simple designs to get a feel for how to use HDL's and Quartus. I have some DIPs for inputs and LEDs for outputs, everything run on 3.3V. But the I can't manage to get the clock to pulse just once when I press the button. Can anyone recomend a debouncing circuit to use for something l like this?



Best way of all is to use a single pole change over switch and a set-reset circuit (cross coupled two input nands). Guaranteed to give bounce free output without any tricky time constants/capacitor slugging/timers etc!

formatting link

(excuse poor drawing!)

HTH

Slurp

Google "switch debounce."

~Dave~

Jack Ganssle has written extensively about this. Here's a paper that summarizes his findings and design suggestions:

formatting link

Bob Perlman Cambrian Design Works

formatting link

On this general subject, does anyone know of a LOW PROFILE microswitch action ( SPCO / SPDT ) switch ? There are std microswitches, which tend to have a high profile, and couple of old ITT style snap switches, also ~10mm high, but nothing I have found is close to a tact button, with SPCO ?

-jg

Here is an article in ECN about some Ultraminiature Mircroswitches from Tyco

formatting link

Greg

Thanks, yes, seen that. The microswitch market is industrial-legacy: what they call "Ultraminiature Mircroswitches" are around 12.7mm long - which is what the semiconductor sector would consider "quite large" :)

-jg

Jim,

Have you tried ALPS?

formatting link

I haven't looked to see if they carry what you want; but their name immediately came to mind upon hearing your request.

Rob

I just finished implementing a small protoboard with 12 unbonced switches, I used a safe SRLatch type approach :-)

And it works like heaven ;-)

SRLatch works with SPDT, if you need to debounce SPST, which is more common, you need to have something with a timing circuit in it like the Maxim MAX6817 dual switch debouncer:

formatting link

As I recall switch debouncer IC's have been around since early days of 4000 series CMOS.

Have Fun, Gabor

Yes of course for SPST amd unbounced pulse you can go with something like MAX6818 (they have free samples):-)

I choose SPDT and SRLatch because I wanted unbounced transitions and stables states (High Low) so I can decompose clock and other stuff ;-)

Hi Brain,

Why don't you start messing around with the MAX II / EPM240. It comes with an internal oscillator that can be used for debouncing. Additional to this it has an schmitt trigger option on the inputs.

You can misuse the design example and steel the debouce:

formatting link

Karl.

Hi Brain,

Why don't you start messing around with the MAX II / EPM240. It comes with an internal oscillator that can be used for debouncing. Additional

to this it has an schmitt trigger option on the inputs.

You can misuse the design example and steal the debouce:

formatting link

Karl.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required