¿Hay algún reloj en tiempo real (RTC) que proporcione resolución de tiempo en microsegundos?

4

He estado buscando RTC de alta precisión en Google, pero casi todos los RTC como DS12C887, DS1307 proporcionan resolución de tiempo en segundos, lo cual está bien para uso general. Pero, ¿hay algún RTC IC que pueda proporcionar una resolución más fina, como en mili segundos y microsegundos?

    
pregunta Osaid

1 respuesta

9

A menudo me resulta frustrante que los dispositivos RTC externos (y, en realidad, incluso los internos, por razones que no puedo entender) rara vez ofrezcan una resolución cercana a la de la base de tiempo entrante, pero me parece extremadamente improbable que cualquier dispositivo RTC convencional ofrecería una precisión de microsegundos en cualquier caso. Los chips RTC están diseñados para minimizar el consumo de energía cuando el sistema está inactivo, y un chip RTC que usa un reloj de 1MHz casi con seguridad usaría más de 30 veces más energía que uno que usa un reloj de 32KHz.

Dependiendo de lo que esté tratando de hacer, y de los patrones de activación / inactividad de su sistema, puede ser posible usar un RTC con una resolución algo aproximada junto con un circuito de contador / temporizador de mayor velocidad que se activa por un evento externo . La operación sería algo así como:

  • Haga que todo espere mientras duerme hasta que ocurra el evento externo

  • Cuando ocurra el evento, inicie un reloj de no precisión de ~ 5MHz y comience a contar

  • Registre el recuento y la hora RTC en el primer tic del reloj RTC que sigue al evento

  • Registre el recuento en la segunda marca del reloj RTC después del evento

La diferencia entre los valores de recuento en los dos tics de RTC indicará la velocidad del reloj de no precisión de 5 MHz, y el valor de recuento en el primer evento indicará cuánto tiempo antes del primer tictac de RTC tuvo lugar el evento.

Por ejemplo, suponga que el RTC se puede leer en unidades de 1/256 segundos. On recibe un evento cuando el reloj RTC marca las 12:34:56 78/256. El reloj RTC avanza a 12:34:56 79/256 cuando la cuenta lee 1,000, y luego avanza a 80/256 cuando la cuenta lee 20,000. Entonces se podría pensar que el reloj de "5MHz" funcionaba a una velocidad de 4,864,000Hz y, por lo tanto, el evento ocurrió 1,000 / 4,864,000 segundos antes de la segunda marca del temporizador, es decir, si el reloj RTC era precisamente correcto, en un tiempo de 12: 34: 56.3122944.

Tenga en cuenta que uno tendría que esperar hasta 1/128 segundos para saber la hora exacta en que se produjo el evento, pero una vez que vio que el RTC avanzaba dos veces, uno sabría dentro de una fracción de microsegundo la hora del evento. [y, por lo tanto, podría determinar con mucha precisión el tiempo entre dos eventos distintos entre los que la CPU había estado durmiendo]. Algunos CPLD de la serie Lattice Mach tienen un oscilador de reloj de arranque rápido que funciona a 5 MHz nominales, y tienen corrientes de reposo relativamente bajas, y por lo tanto podrían utilizarse para este tipo de cronometraje.

    
respondido por el supercat

Lea otras preguntas en las etiquetas