He estado buscando RTC de alta precisión en Google, pero casi todos los RTC como DS12C887, DS1307 brindan una resolución de tiempo en segundos, lo cual está bien para uso general. ¿Hay algún circuito integrado RTC que pueda proporcionar una resolución más fina, como en milisegundos y microsegundos?
A menudo me resulta frustrante que los dispositivos RTC externos (e incluso los internos, por razones que no puedo entender) rara vez ofrecen una resolución cercana a la de la base de tiempo entrante, pero me parece extremadamente improbable que cualquier dispositivo convencional El dispositivo RTC 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 1 MHz seguramente usará más de 30 veces más energía que uno que use un reloj de 32 KHz.
Dependiendo de lo que esté tratando de hacer y de los patrones de vigilia/sueño de su sistema, puede ser posible usar un RTC con una resolución algo gruesa junto con un circuito temporizador/contador de mayor velocidad que se activa por un evento externo. La operación sería algo 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 ~ 5 MHz y comience a contar
Registre el conteo y el tiempo RTC en el primer tic del reloj RTC después del evento
Registre el conteo en el segundo tic del reloj RTC después del evento
La diferencia entre los valores de conteo en los dos tics de RTC indicará la velocidad del reloj de 5 MHz de no precisión, y el valor de conteo en el primer evento indicará cuánto tiempo antes del primer tic 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 12:34:56 78/256. El reloj RTC avanza a 12:34:56 79/256 cuando el conteo marca 1000 y luego avanza a 80/256 cuando el conteo marca 20 000. Uno podría entonces imaginarse que el reloj de "5 MHz" estaba funcionando a una velocidad de 4 864 000 Hz y, por lo tanto, el evento ocurrió 1000/4 864 000 segundos antes del segundo tic del temporizador, es decir, si el reloj RTC era exactamente correcto, a las un tiempo de 12:34:56.3122944.
Tenga en cuenta que uno tendría que esperar hasta 1/128 de segundo para saber la hora exacta en que ocurrió un evento, pero una vez que hubiera visto el RTC avanzar dos veces, sabría en una fracción de microsegundo la hora del evento [y podría así determinar con mucha precisión el tiempo entre dos eventos distintos entre los cuales la CPU había estado durmiendo]. Algunos CPLD de la serie Lattice Mach tienen un oscilador de reloj de inicio rápido que funciona a 5 MHz nominales y tienen corrientes de suspensión relativamente bajas y, por lo tanto, podrían usarse para este tipo de cronometraje.
osaid
pjc50
Shashank de Chintalagiri
osaid
osaid
marcador de posición
Telaraña
Gustavo Litovsky
osaid