5 votos

Ignorar los pulsos inferiores a una anchura determinada en un tren de pulsos

Digamos que tengo un tren de pulsos de 5V que varía entre 0 y 75000 pulsos por segundo. La anchura del pulso, digamos, es de 5 microsegundos. ¿Cómo podría calcular o determinar la mejor manera de filtrar todos los pulsos de menos de 4 microsegundos de ancho?

2 votos

¿Tiene un reloj disponible? Podrías utilizar un contador que cuente el número de ciclos de reloj rápido para cada pulso. Un reloj de 10 MHz podría conseguir una resolución de unos 200 ns. Entonces podrías usar esa señal para permitir sólo el paso de pulsos lo suficientemente largos, abriendo una versión retardada del tren de pulsos. ¿Tienes ya una FPGA o un microcontrolador en tu sistema?

4voto

Matt McMinn Puntos 6067

Este circuito debería hacer lo que quieres:

enter image description here

Cuando entra un pulso en el cable marcado como IN, se pone en marcha el primer monoestable 74221 (hay dos en el mismo paquete) que está ajustado para 4 µs. La salida del monoestable \$\small \overline{\text{Q}}\$ será 1 hasta que se ponga en marcha, entonces pasa a 0. Así que durante el periodo de 4 µs, la puerta AND (74HCT11) está inhibida por lo que no hay salida. Después de 4 µs, la puerta AND se habilita de nuevo, por lo que el resto del pulso (si es mayor de 4 µs) pasa a OUT. Ver los diagramas de temporización más abajo.

Dado que se han cortado 4 µs del comienzo de cualquier pulso válido, el segundo monoestable se inicia en el flanco de caída del pulso de entrada (pero sólo si es más largo que 4 µs), y la salida permanece alta para añadir 4 µs adicionales al final de la salida usando la puerta OR (74HCT32). Gracias a stefandz por señalar la necesidad de esta funcionalidad adicional.

enter image description here

El buffer marcado como DS1100Z en la parte inferior es en realidad una línea de retardo con un retardo de 100 ns; esto es para compensar el retardo de propagación en el 74123 desde el disparo hasta la salida.

Tenga en cuenta que, debido a la tolerancia del condensador, esta sincronización podría estar desviada en un 10%, por lo que la resistencia debe ajustarse según sea necesario.

Al utilizar monoestables, es trivial modificar el valor de la temporización de 4 µs a otra cosa simplemente cambiando las resistencias y/o los condensadores.

No se muestran los pines de alimentación (Vdd y Vss) ni las tapas de desacoplamiento.

Originalmente iba a utilizar un temporizador 555, pero resulta que el 555 no debe utilizarse para anchos de pulso inferiores a sobre 10 µs. Así que recurrí al 74221, que puede generar pulsos hasta el rango de ns.

1 votos

Si lo he entendido bien, esto también recorta 4us de todas las longitudes de los pulsos, lo que puede tener consecuencias.

1 votos

@stefandz Me doy cuenta de eso; no conozco otra forma de manejar eso, porque hay que mirar el pulso durante 4 µs antes de decidir si se tira o no. Si empezara a pasar todos los pulsos de inmediato, y uno resultara ser menor de 4 µs, habría derrotado el propósito del circuito.

1 votos

No es necesariamente un problema - pero yo lo pondría en la respuesta para dejarlo claro al que pregunta. Hay una forma de evitarlo - en un circuito con memoria, como el de supercat simplemente inspeccionas y retrasas, preservando así las longitudes de los pulsos, pero introduciendo un retraso en el tren de pulsos.

2voto

Alex Andronov Puntos 178

En muchos casos, el enfoque más sencillo es utilizar un circuito lógico síncrono que muestre la señal entrante a cierta velocidad (por ejemplo, 10MHz), se asegure de que está sincronizada con ese reloj (pasarla a través de un par de flip flops es una forma típica de hacerlo), y luego aplique la lógica que sea necesaria de forma puramente digital.

schematic

simular este circuito - Esquema creado con CircuitLab

La caja del medio en el circuito de arriba es un contador de seis bits de reinicio sincrónico; cada pulso de reloj lo pondrá a cero (si RS es bajo) o avanzará la cuenta (si es alto).

Como se muestra, el circuito pondrá a cero el contador en cada ciclo en el que la salida coincida con el valor sincronizado de la entrada, o incrementará el contador si no coinciden. Si hay 48 ciclos consecutivos en los que no coinciden, Q4 y Q5 del contador estarán ambos en alto. En el siguiente ciclo, el contador se reiniciará (independientemente de lo que haga la entrada) y la salida cambiará de estado.

Si el reloj es de 10Mhz, este circuito filtrará los pulsos altos y bajos más cortos que aproximadamente 4,9us, y redondeará todos los tiempos de los pulsos a los 100ns más cercanos. Hay muchas maneras de variar el circuito para implementar varios tipos de filtrado, pero el punto clave es que la entrada está sincronizada con un reloj de 10MHz y todo lo demás en el circuito funciona con el mismo reloj.

0 votos

Supongo que no tenías intención de conectar Q y !Q juntos en tu esquema ;)

0voto

PiNoYBoY82 Puntos 783

Preferiría poner esto en un comentario pero no puedo.

Dado que no se ha dado ninguna especificación de error, ¿es posible pasar de un problema en el dominio del tiempo a otro en el de la tensión, integrando los pulsos y utilizando un comparador?

El rango de 0-75kHz es intrascendente, creo, y sólo debemos preocuparnos por el ancho del pulso, ~4us. Si el OP puede conseguir un borde ascendente razonablemente lineal esto podría funcionar...?

Saludos

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X