Está en la página 1de 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 BASYS
Spartan-II Spartan-3E
3,3V 3,3V
PIN pulsador PIN pulsador
59 BTN0 69 BTN0
4,7k 58 BTN1 4,7k 48 BTN1
57 BTN2 47 BTN2
154 BTN3 41 BTN3
4,7k 0,1F 4,7k

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 Enable
fin3ms

Clk Clk
Reset Clk Reset
Reset

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
0X
Leyenda entradas
inic s0
1X 00 00 BTN0,fin3ms
1X

X1 estado
filtro_btn0
s01
espera enablecont
10
01
salidas
X0 XX

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

También podría gustarte