construcción de reloj de rubidio bricolaje

6

Recientemente encontré mi camino hacia un estándar de rubidio Datum x72 y tenía la mitad de la mente para convertirlo en un reloj atómico de fabricación casera, ya que no lo estoy usando exactamente para un negocio de satélites basado en garaje.

Parece que hay abundantes ejemplos de construcción de relojes atómicos con AVR y PIC en línea, pero la mayoría de estos parecen alimentar una de las entradas derivadas de la fuente (por ejemplo, la señal de 1pps) en un temporizador que cuenta. En la interrupción, hay una acción de software que impulsa el reloj.

Supongo que la pregunta principal es: ¿existe una forma mejor y más directa de hacer esto? No he encontrado ningún módulo RTC que acepte una señal de 10 MHz (ya que eso impulsaría el consumo de energía, anulando el concepto de un RTC), pero ¿hay algún tipo de dispositivo de reloj o IC que pueda hacer referencia a la señal de rubidio? ?

El sistema de temporizador del software tiende a parecerme un poco pirateado, por lo que si alguien pudiera descomponer los componentes de este proyecto un poco mejor, sería muy apreciado.

    
pregunta ecfedele

5 respuestas

3

Si la entrada se reduce a 1PPS, entonces un método para mantener el cálculo del tiempo en ISR es determinístico (ni rápido, ni lento, sino consistente) sería realmente calcular el tiempo de un segundo en el futuro en otro lugar, luego usar el ISR para actualizar el tiempo al tiempo "un segundo por delante". En este caso, incluso un código periódico relativamente lento podría:

  1. Mantener un tiempo anterior y ver el ISR avanzar el tiempo
  2. Use el cambio de hora para calcular el "tiempo del siguiente segundo" para prepararlo para el ISR.

Si el tiempo de la interrupción es más rápido que 1PPS, eso simplemente significa menos tiempo para detectar y calcular el tiempo 1 / x en el futuro en otro lugar.

    
respondido por el David Hunter
7

Si configura una MCU para usar un oscilador externo, entonces podría alimentar la señal de 10MHz a la MCU (es posible que necesite un cambio de nivel si no usa niveles de señal TTL / 5V CMOS) y luego use los prescalers de temporizador para Se reduce a una velocidad de reloj más manejable para un uso posterior.

    
respondido por el Ignacio Vazquez-Abrams
3

Si desea una señal de 1 pps desde una entrada de 10 MHz, puede configurar dos '4059 contadores en serie, digamos dividir entre 5000 y luego dividir entre 2000. (Si desea una onda cuadrada simétrica, divida a 2 Hz, luego póngalo a través de un flip-flop para la última división por 2)

Por supuesto, un microcontrolador también puede hacer la división. Pero a veces soldar es más fácil que programar.

Para la precisión de un reloj, debe especificar cuál es su salida. Si desea una pantalla para que la lea un humano, tomar unos pocos ms para actualizar la pantalla luego de recibir el conmutador PPS no es gran cosa. De manera similar, un poco de jitter está bien para uso humano (la implementación ingenua tardará un poco más cuando los valores se transfieran). Si necesita una salida de jitter bajo o latencia cero, debe indicar sus requisitos con mayor claridad.

    
respondido por el markrages
1

Si se trata de una onda cuadrada de 10 MHz, casi cualquier sistema digital funcionará. La sugerencia de Ignacio de sincronizar directamente un microcontrolador es buena. También puede dividir el reloj de 10 MHz a 1 kHz y conectarlo a un pin de interrupción externo de una MCU. Una interrupción por milisegundo debe ser fácil de manejar sin ningún retraso perceptible. (De hecho, una interrupción por segundo).

Si prefieres evitar las MCU, puedes usar IC de contador de décadas y puertas lógicas para producir valores BCD para segundos, decenas de segundos, minutos, decenas de minutos, etc. Esta página web muestra un circuito de ejemplo. De nuevo, puede hacer esto con un reloj dividido de 1 kHz (si desea mostrar milisegundos) o la señal de 1 PPS. Los valores BCD se pueden alimentar en decodificadores de siete segmentos que manejan pantallas LED de siete segmentos.

Si desea controlar un reloj analógico, puede usar un método similar para generar impulsos para un motor paso a paso.

Independientemente del método que utilice, no debería haber imprecisiones o desviaciones más allá de lo que proporciona el oscilador de rubidio.

    
respondido por el Adam Haun
0

Diseñé y construí un RTC para una PC antes de los RTC se incluyeron en las PC (alrededor de 1980). Usé un oscilador de cristal de 10MHz y lo dividí a 1PPS. Luego, al igual que menciona Adam, conté los pulsos y utilicé pantallas de 7 segmentos para mostrar las horas, los minutos y los segundos. La razón por la que usé la fuente de 10MHz, fue para obtener una precisión muy alta. No hay ninguna razón para que no se pueda usar una fuente más "(su oscilador de rubidio). No se requiere nada "de lujo". Divisores, contadores y pantallas, es todo lo que necesita.

    
respondido por el Guill

Lea otras preguntas en las etiquetas