3 Hz desde un cristal de reloj

7

Tengo un motor paso a paso cuyo ángulo de paso es de 2 grados. Quiero mostrar los segundos con una aguja unida a este paso a paso.

El cristal del reloj se divide muy bien para producir pulsos de 1Hz, por lo que cada segundo puedo ordenar al stepper que gire 3 pulsos CW (360 grados / 60 segundos = 6 grados por segundo. Dado que el stepper va 2deg por paso, necesito 3 de tales pulsos).

Ahora suponga que quiero usar cada paso para mostrar los segundos de una manera más suave. Necesitaría pisar el motor cada 1/3 de segundo, o a 3Hz.

Estoy tratando de averiguar cuál es la mejor manera de hacerlo.

Un truco obvio es usar una frecuencia más alta (estoy usando 64Hz) y tolerar un poco de jitter. ¿Hay alguna otra manera que me dé el exacto 3Hz de los 32.768kHz? (incluso sabiendo que uno no es divisible por el otro?)

Por cierto, estoy usando un MSP430, pero este problema podría trasladarse a cualquier otra plataforma.

    
pregunta Padu Merloti

7 respuestas

13

Podrías hacer una relación de engranajes de 3: 1 y hacer el divisor en 32768.

32768 = 10,923 + 10,923 + 10,922 que indica una máquina de estados que primero cuenta a 10,923 repeticiones y luego cae un conteo, sería preciso cada 3 segundos. El peor error absoluto que verías es 31 PPM, que es lo que el cristal puede hacer (dependiendo de tu cristal).

    
respondido por el placeholder
11

Tome la onda cuadrada de 32,768 Hz y aliméntela a través de un filtro de paso de banda de 98 kHz para dejar (principalmente) su tercer armónico, esto es bastante trivial. Ahora tiene 3 veces 32,768 Hz que puede dividir con el circuito anterior que usó para obtener 3 Hz.

    
respondido por el Andy aka
7

Es cierto que 32768 Hz no se divide por 3 Hz, pero no se desactiva por mucho.

Necesita una solución que aparezca visualmente suave y que sea precisa en promedio a lo largo del tiempo .

Simplemente crea una lógica que:

Cuenta 10923 relojes de entrada y da un paso
Cuenta 10923 relojes de entrada y da un paso
Cuenta 10922 los relojes de entrada y da un paso

y se repite.

Necesitaría instrumentación o un experimento sensible para determinar que cada tercer pulso es .009% más corto.

    
respondido por el Chris Stratton
4

La solución digital es tomar algo como un acumulador de 8 bits y agregarle 3 cada 128 pulsos. Siempre que lleve, pisar el motor. El jitter resultante no será perceptible y se cancelará a largo plazo. Un acumulador más largo (y, en consecuencia, un divisor previo más corto) reducirá la fluctuación de fase, mientras que un cortocircuito lo aumentará. Probablemente pueda bajar a un acumulador de cuatro bits (y predivisión para 2048) sin una gran diferencia perceptible: entonces se interpolaría tomando 5 relojes para llevar en 2 de los 3 casos, y 6 relojes para llevar en 1 de cada 3 casos.

    
respondido por el user51012
1

Espere el pulso de 1 segundo y realice el primer paso, luego retrase 333 ms antes de realizar cada uno de los otros dos pasos. es posible que no obtenga exactamente pasos iguales, pero debe estar lo suficientemente cerca como para no notar la diferencia (y la frecuencia promedio será exactamente de 3Hz).

    
respondido por el Bruce Abbott
0

El paso a paso se mueve en pasos discretos cada vez que cambia el estado de las bobinas, por lo que es inevitable una cierta cantidad de "salto" si conduce el paso a paso de esa manera.

Si micro-step el motor puede obtener una gran cantidad de pasos por revolución, evite los saltos esencialmente por completo (habrá algo de no linealidad en el movimiento, pero debería ser imperceptible a menos que su aguja sea muy, muy larga), y obtenga un movimiento suave de la aguja (un santo grial entre algunos aficionados a los relojes). También evitaría que cualquier vibración de bajo rendimiento.

Si desea continuar con los pasos de 2 °, puede agregar 0x0C a un registro de 8 bits a 64Hz y pisar el motor cada vez que obtenga un acarreo .

Aquí es cómo se ve el jitter: menos de +/- 8 milisegundos, que no será visible:

Time = 0.328125 delta = 0.328125 Time = 0.656250 delta = 0.328125 Time = 0.984375 delta = 0.328125 Time = 1.328125 delta = 0.343750 Time = 1.656250 delta = 0.328125 Time = 1.984375 delta = 0.328125 Time = 2.328125 delta = 0.343750 Time = 2.656250 delta = 0.328125 Time = 2.984375 delta = 0.328125 Time = 3.328125 delta = 0.343750 Time = 3.656250 delta = 0.328125 Time = 3.984375 delta = 0.328125 Time = 4.328125 delta = 0.343750 Time = 4.656250 delta = 0.328125 Time = 4.984375 delta = 0.328125 Time = 5.328125 delta = 0.343750 Time = 5.656250 delta = 0.328125 Time = 5.984375 delta = 0.328125 Time = 6.328125 delta = 0.343750 Time = 6.656250 delta = 0.328125 Time = 6.984375 delta = 0.328125 Time = 7.328125 delta = 0.343750 Time = 7.656250 delta = 0.328125 Time = 7.984375 delta = 0.328125 Time = 8.328125 delta = 0.343750 Time = 8.656250 delta = 0.328125 Time = 8.984375 delta = 0.328125 Time = 9.328125 delta = 0.343750 Time = 9.656250 delta = 0.328125 Time = 9.984375 delta = 0.328125 Time = 10.328125 delta = 0.343750 Time = 10.656250 delta = 0.328125 Time = 10.984375 delta = 0.328125 Time = 11.328125 delta = 0.343750 Time = 11.656250 delta = 0.328125 Time = 11.984375 delta = 0.328125 Time = 12.328125 delta = 0.343750 Time = 12.656250 delta = 0.328125 Time = 12.984375 delta = 0.328125 Time = 13.328125 delta = 0.343750 Time = 13.656250 delta = 0.328125 Time = 13.984375 delta = 0.328125 Time = 14.328125 delta = 0.343750 Time = 14.656250 delta = 0.328125 Time = 14.984375 delta = 0.328125 Time = 15.328125 delta = 0.343750 Time = 15.656250 delta = 0.328125 Time = 15.984375 delta = 0.328125

El mismo método podría usarse para controlar un motor de micro pasos, solo con pasos más finos como 2 ° / 16.

    
respondido por el Spehro Pefhany
0

Para aquellos de ustedes que les gusta el hardware, a continuación se incluye un esquema de la solución de contador de módulo dual de marcador de posición, pero sin el posible error de 31PPM.

Si desea jugar con el circuito, la lista de circuitos de LTspice y los archivos de soporte son aquí .

El esquema a continuación muestra los ajustes preestablecidos para un reloj de 32768Hz, mientras que la versión LTspice tiene la cuenta y el tiempo reducidos drásticamente para evitar que el sim se ejecute para siempre, pero para seguir mostrando el funcionamiento del contador de módulo doble .

    
respondido por el EM Fields

Lea otras preguntas en las etiquetas