¿Cómo alargar el tiempo de ENCENDIDO de un tren de pulsos cuando no se modifican los períodos?

2

Estoy recibiendo un tren de pulsos de frecuencia variable con un tiempo de encendido muy corto y quiero convertirlos en pulsos con un tiempo de encendido más largo pero sin cambiar los períodos de pulso. El tiempo es ahora alrededor de 100us. El período de pulso varía entre 1000us y 2500us.

El flip-flop reduce la frecuencia a la mitad y salta un flanco ascendente que no quiero en este caso.

¿Cómo puedo lograr que este ciclo de trabajo no tenga que fijarse, solo la frecuencia de los pulsos debe permanecer igual?

    
pregunta user16307

6 respuestas

12

Quieres algo llamado one shot . Básicamente, ignora todo, excepto los bordes ascendentes de su señal de entrada. Copia el borde ascendente a la salida, pero crea tu propio borde descendente.

Un disparo es un componente de tiempo que hace exactamente eso. Puede configurar uno para que, cuando aparezca un flanco ascendente, comience un impulso programado. Dado que sus pulsos varían de 1 a 2,5 ms, 500 µs es el momento óptimo para garantizar el nivel de tiempo mínimo más largo.

Sin predicción o demora, no puedes hacer una salida de onda cuadrada.

    
respondido por el Olin Lathrop
2

Creo que lo que describe es un circuito monoestable. Puede consultar el multivibrador monoestable para referencia.

Lo que hace es iniciar un pulso de duración fija en cada flanco ascendente (descendente) de la entrada. Puede ajustarlo a su gusto, siempre que el tiempo de "encendido" no exceda el período de la señal (considere también el tiempo de transición). Básicamente estás creando un pwm de esta manera.

    
respondido por el clabacchio
1

Intentaré utilizar un CD4046B y usar el tipo II detector de fase Ambos detectores de fase utilizan el borde anterior de la entrada, pero como su señal se extiende más de una octava, el detector tipo I puede bloquearse en la frecuencia incorrecta.

Además, un detector de fase tipo II es insensible al ciclo de trabajo de entrada, siempre que el ancho de pulso de entrada sea lo suficientemente largo.

Es cierto que esto sería un poco más difícil de implementar que la sugerencia de Olin (que tiene la ventaja de la simplicidad), pero hay un nota de aplicación disponible.

Sin embargo, mucho depende de la velocidad de cambio de la frecuencia de la señal.

Si eso funciona, tendrás un ciclo de trabajo del 50%.

    
respondido por el Peter Smith
0

Intente pasar la señal a una puerta NOT. El período del tren de pulsos seguirá siendo el mismo y terminará con un tiempo de encendido mayor.

    
respondido por el R. Hirur
0

Una forma de hacerlo es usando:

  • Un flip-flop desencadenado por borde con reinicio asíncrono
  • Un circuito de retardo (podría ser solo un filtro RC, posiblemente seguido de un disparador schmitt).

configurado de la siguiente manera:

simular este circuito : esquema creado usando CircuitLab

El tiempo de retardo definirá el ancho de pulso alto de salida, por lo que debe seleccionarse para que sea lo suficientemente estrecho para no interferir con el siguiente período, pero lo suficientemente amplio para ser detectado.

Probablemente ya hay circuitos integrados que contienen este circuito, pero estoy más familiarizado con el diseño de circuitos integrados, por lo que esta solución es la primera que me vino a la mente.

    
respondido por el Justin
0

Esta solución utiliza un microcontrolador, aunque también se puede hacer con lógica cableada (probablemente una buena aplicación para un FPGA).

Configure una interrupción para que se dispare en el borde ascendente de la entrada señal. La incertidumbre de la sincronización será entonces la mitad de un ciclo de instrucción, típicamente en decenas de ns o menos. También se podría utilizar un módulo de captura de entrada.

Se supone que esta interrupción, y las tres interrupciones de temporizador que se analizan a continuación, son las únicas en el sistema, por lo que la latencia es fija en cada caso.

Llame a este primer tiempo de interrupción A. En la rutina de interrupción, capture el tiempo de un reloj de marcha libre y configure un temporizador para que interrumpa a A + 2500 µs. Llama a eso A '. La cifra de 2500 µs se elige para que sea al menos la distancia máxima entre pulsos.

El borde anterior del siguiente pulso B de 100 µs se adquiere de la misma manera. (Esto también inicia el ciclo para el siguiente impulso, superponiéndose con el primero, por lo que se requieren dos temporizadores que se superponen, que se usan alternativamente).

Un segundo temporizador está configurado para interrumpir en A '+ (B - A) / 2, es decir, la mitad del período anterior. Llama a eso un '.

Cuando se produce la interrupción del temporizador A ', establezca la salida alta. Cuando se produce la interrupción del temporizador a ', establezca la salida baja. Dado que ambos se manejan mediante interrupciones, la sobrecarga para ambos será la misma y el tiempo relativo entre los dos será exactamente igual a '- A', la mitad del tiempo entre B - A, o un ciclo de trabajo del 50%.

    
respondido por el tcrosley

Lea otras preguntas en las etiquetas