You are on page 1of 2

Departamento de Tecnologa Electrnica

10. Circuito antirrebotes


En esta prctica se plantea el circuito antirrebotes que evita que el presionar un pulsador recibamos ms de un pulso. Este circuito es interesante para pulsadores que no tienen circuito antirrebotes en la propia placa. En la figura 10.1 se muestran los circuitos de los pulsadores de las placas Pegasus y Basys. A la izquierda se muestra el circuito que conecta el pulsador de la placa Pegasus. Este circuito tiene un condensador que hace filtrar los pulsos espurios que se producen por los rebotes al mecnicos al hacer contacto el pulsador. Sin embargo, la placa Basys no tiene estos condensadores, y por tanto, se producen ms transiciones espurias. Estas transiciones pueden provocar que al pulsar una vez, el circuito interprete que se ha pulsado varias veces. As que tenemos que realizar un circuito antirrebotes en VHDL.
PEGASUS 3,3V 4,7k Spartan-II PIN pulsador 59 BTN0 58 BTN1 57 BTN2 154 BTN3 4,7k 3,3V 4,7k BASYS Spartan-3E PIN pulsador 69 BTN0 48 BTN1 47 BTN2 41 BTN3

4,7k

0,1F

Figura 10.1: Esquema de los pulsadores en la placa Pegasus y en la placa Basys La figura10.2 muestra el cronograma resultante del detector de flancos (PULSO_BTN) cuando hay rebotes en la entrada (BTN). Como para este ejemplo existen 4 flancos de subida, el detector de flancos producir cuatro pulsos. Sin embargo, slo queremos que se produzca uno.
4 flancos de subida

BTN El detector de flancos producir 4 pulsos PULSO_BTN

Figura 10.2: Cronograma de la salida del detector de flancos (PULSO_BTN) cuando hay rebotes en la entrada (BTN) Para evitar los rebotes basta con eliminar todos los pulsos que se generen durante los siguientes 300 milisegundos despus de haber detectado un flanco de subida. Si conseguimos hacer este circuito, la salida filtrada (FILTRO_BTN) sera como la mostrada en la figura 10.3.
4 flancos de subida

BTN

FILTRO_BTN 300 ms Slo despus de 300 milisegundos podr haber un nuevo pulso

Figura 10.3: Cronograma de la salida del filtro antirrebotes (FILTRO_BTN) cuando hay rebotes en la entrada (BTN) Cmo podramos realizar este circuito? pues con una mquina de estados similar al detector de flancos pero con temporizador. El esquema del circuito se muestra en la figura 10.4. En este esquema propuesto, el temporizador se habilita cuando se ha detectado un flanco de subida. A partir de entonces no se producir ningn pulso de subida hasta que el temporizador d la seal de que han pasado 3 milisegundos. Despus de esto, se podr detectar un nuevo flanco de subida.

Diseo digital con VHDL - - 11/12/2008

10-1

Departamento de Tecnologa Electrnica

Ejercicio 10. Circuito antirrebotes

Mquina de estados BTN0 Filtro_BTN0 Temporizador enablecont fin3ms Clk Clk Reset Reset Clk Reset Enable fin3ms

Figura 10.4: Esquema del circuito que filtra los rebotes de la entrada Intenta pensar por ti mismo el diagrama de estados. Si no se te ocurre, puedes mirar la figura 10.5.
0X inic 00 s0 00 1X X1 espera 01 X0 XX s01 10 estado
filtro_btn0 enablecont

0X Leyenda

entradas

1X

BTN0,fin3ms

salidas

Figura 10.5: Diagrama de estados del circuito que filtra los pulsos Para cada pulsador habra que realizar un circuito similar. Implementa el contador manual de la seccin 5.4 con estos filtros. Utiliza una placa Basys para comprobar que realmente funciona bien.

Diseo digital con VHDL - 11/12/2008

10-2

You might also like