debouncing a switch (in hardware)

  • Follow


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?

0
Reply brian.mcf1985 (3) 7/6/2006 6:53:39 PM

"Brian McFarland" <brian.mcf1985@gmail.com> wrote in message 
news:1152212019.602303.49750@s26g2000cwa.googlegroups.com...
> 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!

http://www.wheelnut.plus.com/sr.gif

(excuse poor drawing!)

HTH

Slurp 


0
Reply Slurp 7/6/2006 7:53:08 PM


Brian McFarland wrote:

> 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?

If you use a microswitch ( SPDT ) action (so it flips from GND to Vcc), 
and a regen-hold feedback (or pinkeep), this solves the bounce effects.

-jg


0
Reply Jim 7/6/2006 8:45:55 PM

On Thu, 06 Jul 2006 11:53:39 -0700, Brian McFarland wrote:

> 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?

Google "switch debounce."


    ~Dave~
0
Reply Dave 7/6/2006 8:59:15 PM

Hi - 

On 6 Jul 2006 11:53:39 -0700, "Brian McFarland"
<brian.mcf1985@gmail.com> wrote:

>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?

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

http://www.ganssle.com/debouncing.pdf

Bob Perlman
Cambrian Design Works
http://www.cambriandesign.com
0
Reply Bob 7/7/2006 2:46:44 AM

Bob Perlman wrote:
> Hi - 
> 
> Jack Ganssle has written extensively about this.  Here's a paper that
> summarizes his findings and design suggestions:
> 
> http://www.ganssle.com/debouncing.pdf

  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

0
Reply Jim 7/7/2006 4:25:20 AM

"Jim Granville" <no.spam@designtools.co.nz> wrote in message 
news:44ade255@clear.net.nz...
> Bob Perlman wrote:
>> Hi - Jack Ganssle has written extensively about this.  Here's a paper 
>> that
>> summarizes his findings and design suggestions:
>>
>> http://www.ganssle.com/debouncing.pdf
>
>  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
http://www.ecnmag.com/article/CA6339402.html?nid=2730&rid=1635558756

-- 
Greg 


0
Reply Gregory 7/7/2006 8:21:15 AM

Gregory C. Read wrote:
> "Jim Granville" <no.spam@designtools.co.nz> wrote in message 
> news:44ade255@clear.net.nz...
> 
>>Bob Perlman wrote:
>>
>>>Hi - Jack Ganssle has written extensively about this.  Here's a paper 
>>>that
>>>summarizes his findings and design suggestions:
>>>
>>>http://www.ganssle.com/debouncing.pdf
>>
>> 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
> http://www.ecnmag.com/article/CA6339402.html?nid=2730&rid=1635558756

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



0
Reply Jim 7/7/2006 8:29:11 AM

Jim,

Have you tried ALPS?  http://www3.alps.co.jp/alpscom/

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

Rob


"Jim Granville" <no.spam@designtools.co.nz> wrote in message 
news:44ade255@clear.net.nz...
> Bob Perlman wrote:
>> Hi - Jack Ganssle has written extensively about this.  Here's a paper 
>> that
>> summarizes his findings and design suggestions:
>>
>> http://www.ganssle.com/debouncing.pdf
>
>  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
> 


0
Reply Rob 7/8/2006 3:33:52 AM

Bob Perlman wrote:

> Hi - 
> 
> On 6 Jul 2006 11:53:39 -0700, "Brian McFarland"
> <brian.mcf1985@gmail.com> wrote:
> 
> 
>>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?
> 
> 
> Jack Ganssle has written extensively about this.  Here's a paper that
> summarizes his findings and design suggestions:
> 
> http://www.ganssle.com/debouncing.pdf
> 
> Bob Perlman
> Cambrian Design Works
> http://www.cambriandesign.com


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

And it works like heaven ;-)



0
Reply aName 7/11/2006 7:44:31 AM

aName wrote:
> Bob Perlman wrote:
>
> > Hi -
> >
> > On 6 Jul 2006 11:53:39 -0700, "Brian McFarland"
> > <brian.mcf1985@gmail.com> wrote:
> >
> >
> >>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?
> >
> >
> > Jack Ganssle has written extensively about this.  Here's a paper that
> > summarizes his findings and design suggestions:
> >
> > http://www.ganssle.com/debouncing.pdf
> >
> > Bob Perlman
> > Cambrian Design Works
> > http://www.cambriandesign.com
>
>
> 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:

http://www.maxim-ic.com/quick_view2.cfm/qv_pk/1896

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

Have Fun,
Gabor

0
Reply Gabor 7/11/2006 1:14:11 PM

Gabor wrote:
> aName wrote:
> 
>>Bob Perlman wrote:
>>
>>
>>>Hi -
>>>
>>>On 6 Jul 2006 11:53:39 -0700, "Brian McFarland"
>>><brian.mcf1985@gmail.com> wrote:
>>>
>>>
>>>
>>>>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?
>>>
>>>
>>>Jack Ganssle has written extensively about this.  Here's a paper that
>>>summarizes his findings and design suggestions:
>>>
>>>http://www.ganssle.com/debouncing.pdf
>>>
>>>Bob Perlman
>>>Cambrian Design Works
>>>http://www.cambriandesign.com
>>
>>
>>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:
> 
> http://www.maxim-ic.com/quick_view2.cfm/qv_pk/1896
> 
> 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 ;-)

0
Reply aName 7/11/2006 6:31:35 PM

Brian McFarland schreef:

> 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?

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:
http://altera.com/support/examples/max/exm-analog-encoder.html

Karl.

0
Reply Karl 7/19/2006 8:01:55 AM

Brian McFarland wrote:
> 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?

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:
http://altera.com/support/examples/max/exm-analog-encoder.html


Karl.

0
Reply Karl 7/19/2006 8:04:49 AM

13 Replies
261 Views

(page loaded in 0.137 seconds)

Similiar Articles:











7/18/2012 9:53:50 PM


Reply: