Circuitos
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 notienen 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 elpulsador 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 placaBasys 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 variasveces. Así que tenemos que realizar un circuito antirrebotes en VHDL.
4,7kΩ
PIN pulsador
59 BTN0
58 BTN1
57 BTN2
154 BTN3
3,3V Spartan-II
4,7kΩ 0,1μF
PEGASUS
4,7kΩ
PIN pulsador
69 BTN0
48BTN1
47 BTN2
41 BTN3
3,3V Spartan-3E
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 deflancos (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 produzcauno.
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
Figura 10.3:...
Regístrate para leer el documento completo.