PLL versus putt-putt-skip, putt-putt-wait, división de tasa fraccional u otros enfoques

3

Muchas aplicaciones utilizan los PLL para generar frecuencias donde la precisión de frecuencia a largo plazo es necesaria, pero donde una cierta cantidad de jitter a corto plazo puede ser aceptable. He visto una serie de dispositivos con osciladores de muy baja a moderada precisión de baja corriente, y me preguntaba si sería práctico para los fabricantes de dispositivos reducir el consumo de corriente del dispositivo al reemplazar los PLL con otros enfoques, como por ejemplo (nota algunos de los siguientes términos son mi propio invento, ya que no conozco los nombres estándar para estas técnicas):

  1. Putt-putt-wait: si el objetivo es tener una señal que sea N veces la frecuencia de entrada, haga que la frecuencia del oscilador sea al menos N veces la frecuencia de entrada; deje que el oscilador corra por N pulsos, deténgalo hasta el siguiente pulso de entrada, corra por N pulsos, pare hasta la siguiente entrada, etc.
  2. Putt-putt-skip: si el objetivo es tener una señal que sea N veces la frecuencia de entrada, haga que la frecuencia del oscilador sea al menos N veces la frecuencia de entrada; Permita que los pulsos de N del oscilador pasen, luego reprima los pulsos del oscilador hasta el siguiente pulso de entrada, luego deje pasar otros N de impulsos, etc.
  3. División de frecuencia fraccional: si el objetivo es tener una señal que sea N veces la frecuencia de entrada, haga que la frecuencia del oscilador sea al menos N veces la frecuencia de entrada y proporcione hardware para sofocar una fracción programable de los pulsos del oscilador . Tanto el hardware como el software pueden ajustar qué fracción de los pulsos del oscilador se caen para mantener una relación de fase consistente con la onda de referencia.
  4. Intervalo de control de frecuencia: si el objetivo es tener una señal que sea N veces la frecuencia de entrada, permita que la frecuencia del oscilador se pueda cambiar instantáneamente entre una velocidad demasiado rápida y otra demasiado lenta, y proporcione hardware para hacer una fracción programable De los ciclos sean los "lentos". Como se mencionó anteriormente, el software o el software podrían ajustar esta fracción para mantener un bloqueo de fase si se desea.

Todos estos enfoques tendrían la restricción de que se debe garantizar que la frecuencia del oscilador sea lo suficientemente lenta para no violar los tiempos del ciclo interno del dispositivo, pero espero que en muchos casos sea práctico mantener un contador preciso / la referencia de tiempo está activa incluso durante el modo de suspensión.

¿Qué ventajas o desventajas existen al utilizar enfoques como el anterior en lugar de un PLL? Nunca he visto los dos últimos enfoques utilizados, pero creo que en muchos casos proporcionarían un rendimiento adecuado al usar una fracción de la potencia de un PLL (quizás el enfoque de uso # 3 de "PLL digital", pero Nunca he oído hablar de tales cosas que operan en el rango de sub-mA)

    
pregunta supercat

3 respuestas

3

Se utilizan estos métodos. El MSP430 de TI, por ejemplo, usa algo que llaman un "modulador" que es esencialmente de lo que estás hablando.

La principal ventaja es que son super simples y pueden cambiar su frecuencia de salida rápidamente (sin ningún tiempo de bloqueo o lo que requieran los PLL), y sin ningún tipo de "fallas".

También mencionaré otro método que no mencionaste (directamente). Es, esencialmente, una versión súper simple de hacer tus aproximaciones 3 y 4. Se llama oscilador controlado numéricamente. Aquí hay un fragmento de código en VHDL (pero es lo suficientemente genérico que la mayoría debería poder seguir):

signal phase :std_logic_vector (n_bits-1 downto 0) := (others=>'0');

process (clk_in)
begin
  if rising_edge(clk_in) then
    phase <= phase + inc;
  end if;
end process;

clk_out <= phase(phase'high);

Básicamente, tenemos un acumulador largo de n_bit (a.k.a. contador). En cada reloj, agregamos 'inc' al acumulador. El bit más significativo del acumulador se emite como la nueva señal de reloj. La frecuencia de salida se calcula así:

Fout = Fclk_in * inc/(2^n_bits)

Donde Fclk_in es la frecuencia del reloj de entrada, inc es el valor agregado al acumulador, etc. Fout puede ser cualquier cosa menor que Fclk / 2. Para mayor precisión, o una frecuencia de salida más baja, necesita más n_bits.

La salida de esta lógica es esencialmente un reloj inestable, donde el jitter es de aproximadamente 1 clk_in período. La frecuencia y el ciclo de trabajo estarán inactivos (dados n_bits y el período clk_in).

Con frecuencia he usado esta lógica para generar velocidades en baudios y otros relojes lentos pero precisos. Como trabajo con FPGA y no demasiados ASIC, normalmente mantengo la lógica sincrónica con respecto a clk_in y emito una señal de habilitación de reloj o algo, pero se aplican los mismos conceptos.

    
respondido por el user3624
2

Primero veamos las soluciones 1 a 3:

Teniendo en cuenta que se puede hacer un PLL en el cual el oscilador y el divisor toman gran parte de la potencia (podría estar en el orden del 90%) y el hecho de que la solución OP siempre contenga esos también, la diferencia en la potencia El consumo no debe ser tan grande.

Además, si observa que el oscilador PLL estaría trabajando a N veces la frecuencia y las soluciones OP siempre funcionarán a una frecuencia mayor que N veces, el mayor consumo de energía del oscilador de la solución OP puede compensar o ser aún más grande que la sobrecarga del PLL (último 10%).

Así que en términos de poder no puede haber mucha diferencia.

La diferencia estará en el tamaño (la solución OP sería seguramente más pequeña si se implementa en silicio, sin mucha diferencia en PCB con elementos discretos) y el tiempo de bloqueo (la solución OP debería producir la frecuencia de salida deseada mucho más rápido) pero también en calidad del reloj (la salida de PLL será manera mejor)

Ahora, si considera que la calidad del reloj es importante en la mayoría de los casos, se utilizará PLL en esos. En los casos excepcionales en que el reloj puede ser de menor calidad, ese tipo de hacks se pueden usar y se utilizan.

En segundo lugar, veamos la solución 4:

Esto es, de hecho, un PLL digital (normalmente se utiliza la modulación sigma delta para controlar el oscilador). Es ampliamente utilizado en la industria. Tiene sus puntos fuertes y de semana en comparación con otros tipos de PLL, pero de todos modos es un PLL.

    
respondido por el mazurnification
0

Vale la pena señalar que los PLL se utilizan con frecuencia para obtener frecuencias que son difíciles de obtener de un oscilador normal (cuarzo). Lo hacen y siguen manteniendo una buena precisión de frecuencia (necesaria para, por ejemplo, las transmisiones de radio).

Cuando se divide un reloj de alta frecuencia, las personas se vuelven más creativas, pero los acumuladores de fase (como lo describe David) parecen ser los más populares. Creo que se usan en todos los DDS y también en algunos UART (para la división de velocidad en baudios).

    
respondido por el jpc

Lea otras preguntas en las etiquetas