Circuito antirrebotes
Click here to load reader
-
Upload
rolando-alarcon -
Category
Documents
-
view
4.443 -
download
5
description
Transcript of Circuito antirrebotes
Departamento de Tecnología Electrónica
Diseño digital con VHDL - - 11/12/2008 10-1
10. Circuito antirrebotes En esta práctica se plantea el circuito antirrebotes que evita que el presionar un pulsador recibamos más 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 mecánicos al hacer contacto el pulsador. Sin embargo, la placa Basys no tiene estos condensadores, y por tanto, se producen más 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.
4,7kΩ
PIN pulsador59 BTN058 BTN157 BTN2154 BTN3
Spartan-II3,3V
4,7kΩ 0,1µF
PEGASUS
4,7kΩ
PIN pulsador69 BTN048 BTN147 BTN241 BTN3
Spartan-3E3,3V
4,7kΩ
BASYS
4,7kΩ
PIN pulsador59 BTN058 BTN157 BTN2154 BTN3
Spartan-II3,3V
4,7kΩ 0,1µF
4,7kΩ
PIN pulsador59 BTN058 BTN157 BTN2154 BTN3
Spartan-II3,3V
4,7kΩ 0,1µF
PEGASUS
4,7kΩ
PIN pulsador69 BTN048 BTN147 BTN241 BTN3
Spartan-3E3,3V
4,7kΩ
BASYS
4,7kΩ
PIN pulsador69 BTN048 BTN147 BTN241 BTN3
Spartan-3E3,3V
4,7kΩ
BASYS
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, sólo queremos que se produzca uno.
4 flancos de subida
El detector de flancos producirá 4 pulsos
BTN
PULSO_BTN
4 flancos de subida
El detector de flancos producirá 4 pulsos
4 flancos de subida
El detector de flancos producirá 4 pulsos
BTN
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 después de haber detectado un flanco de subida. Si conseguimos hacer este circuito, la salida filtrada (FILTRO_BTN) sería como la mostrada en la figura 10.3.
4 flancos de subida
Sólo después de 300 milisegundos podrá haber un nuevo pulso
BTN
FILTRO_BTN
300 ms
4 flancos de subida
Sólo después de 300 milisegundos podrá haber un nuevo pulso
BTN
FILTRO_BTN
300 ms
Figura 10.3: Cronograma de la salida del filtro antirrebotes (FILTRO_BTN) cuando hay rebotes en la entrada (BTN)
¿Cómo podríamos realizar este circuito? pues con una máquina 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á ningún pulso de subida hasta que el temporizador dé la señal de que han pasado 3 milisegundos. Después de esto, se podrá detectar un nuevo flanco de subida.
Departamento de Tecnología Electrónica Ejercicio 10. Circuito antirrebotes
Diseño digital con VHDL - 11/12/2008 10-2
BTN0
Máquina de estados
Clk
Reset
Clk
Reset
Temporizador
Clk Reset
fin3msEnable
enablecontfin3ms
Filtro_BTN0BTN0
Máquina de estados
Clk
Reset
Clk
Reset
Temporizador
Clk Reset
fin3msEnable
enablecontfin3ms
Filtro_BTN0
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.
estadofiltro_btn0enablecont
BTN0,fin3ms
Leyenda entradas
salidas
inic00
s000
0X
1X
0X
1X
s0110
X1
espera01
XXX0
estadofiltro_btn0enablecont
BTN0,fin3ms
Leyenda entradas
salidas
inic00
s000
0X
1X
0X
1X
s0110
X1
espera01
XXX0
Figura 10.5: Diagrama de estados del circuito que filtra los pulsos
Para cada pulsador habría que realizar un circuito similar. Implementa el contador manual de la sección 5.4 con estos filtros. Utiliza una placa Basys para comprobar que realmente funciona bien.