Todo el mundo sabe acerca de los sistemas de coordenadas satelitales. También le permiten saber la velocidad y la hora actual. Sobre la base de tales sistemas, se construyen servidores de tiempo exactos, que ya se han mencionado muchas veces aquí, y no solo aquí. La precisión de estos sistemas está creciendo, el precio está cayendo, en resumen, el progreso no se detiene. Parece que recientemente fue una cuestión de milisegundos, y ahora los microsegundos no sorprenden a nadie. Y el día no está lejos cuando ...
Honestamente, este día ya ha llegado para mí. No hace mucho tiempo, me llamó la atención la información de que uno de los fabricantes de sus módulos promete una precisión del intervalo de señal de salida PPS del orden de decenas de nanosegundos.
En otras palabras, apareció un segundo estándar con una precisión muy decente. Es cierto que no siempre está a la mano, y a menudo depende de circunstancias externas, pero puede lograr condiciones favorables y obtenerlo. Y, lo más importante, cómo copiarse.
Por si acaso, miré cómo van las cosas con otros fabricantes de productos similares y encontré las mismas especificaciones técnicas. "Tendencia, sin embargo", un pensamiento cruzó por mi mente, más o menos, como el de Shtirlits. Era necesario hacer algo.
Aquellos lectores que saben cómo soldar una resistencia desde una placa de circuito impreso o cómo soldar un microcircuito e incluso saben cómo hacerlo, mentalmente están de acuerdo conmigo en que tener un medidor de frecuencia que proporcione una precisión de 7-8 caracteres nunca va a doler. Especialmente si ocupa poco espacio y no tiene que pedir prestado mucho dinero para comprarlo. Y aquellos a quienes no les gusta dejar de pensar pueden pensar en un reloj que se equivoca durante unos segundos al año (en el séptimo dígito, Clara). Los fanáticos de las comunicaciones de radioaficionados probablemente recordarán el diseño de un buen filtro de banda estrecha hecho en casa en resonadores de cuarzo.
Lo primero que debía hacer era encontrar el hardware adecuado. Me gustó la placa de evaluación simple con un pequeño módulo Teseo-LIV3F de una empresa conocida. A continuación se muestra cómo es ella.

Esto se vende con una antena activa remota, que se puede instalar más cerca de la ventana para que los satélites puedan "ver" bien. Los puentes se colocan en el tablero según sea necesario para nuestra narración y programación exitosa. La foto también contiene mejoras en los circuitos en forma de un solo diodo con buena velocidad.
El esquema de mejoras se mostrará a continuación. El fabricante siempre que esta placa se pueda insertar en una placa de evaluación Nucleo adecuada con un microcontrolador incorporado (de hecho, estos son conectores para el Arduino, pero no quiero dejarlos con 32 bits). En la descripción del propio módulo GPS / GNSS, encontré lo siguiente.

Esto es muy bueno y puede servir como una primera aproximación a un buen contador de frecuencia. Ahora tengo un segundo intervalo muy preciso y puedo calcular la frecuencia de las oscilaciones, por ejemplo, de mi propio oscilador de cristal con control termostático. E incluso, tal vez, sintonizarlo en la dirección necesaria para sí mismo. Será más tarde, probablemente. Mientras tanto, quería medir las frecuencias de los resonadores de cuarzo acumulados en la economía.
Una placa de la serie Nucleo adecuada está construida en el STM32L476RG. Viene sin un resonador de cuarzo (el reloj no cuenta). Debajo de la foto se muestran las flechas donde se tuvieron que soldar los elementos faltantes.

Esta opción de tablero se selecciona por tres razones. Primero, el generador de microcontrolador con un resonador externo opera de 4 a 48 MHz. No todas las placas de microcontroladores Nucleo tienen tales tolerancias. Vamos a ejecutar este generador con nuestro cuarzo. En segundo lugar, el puerto serie (UART) puede sincronizarse desde un generador RC incorporado separado con una precisión del 1% a una frecuencia de 16 MHz. Por lo tanto, no será necesario cambiar la configuración y los divisores en la configuración de UART con un cambio en la frecuencia del generador externo. Y lo más importante, se proporciona un lugar para el montaje en la pared del resonador de cuarzo, donde puede instalar los conectores para no soldar el siguiente resonador cada vez.
El puerto serie ya está conectado al puerto USB virtual en el depurador integrado. Entonces puede usar el emulador de terminal para mostrar información. Después de finalizar e instalar dos desechos para el cuarzo desde el conector del collar, la placa tiene el siguiente aspecto.

Ahora necesitamos iniciar el temporizador por exactamente un segundo, y contará los pulsos de su reloj del sistema, es decir, la frecuencia de nuestro resonador de cuarzo. Afortunadamente, el temporizador proporciona un modo en el que se reinicia simultáneamente y comienza desde el borde ascendente del pulso externo.
Inmediatamente quise hacerlo para no promediar unas pocas mediciones de segundos, sino para medir la frecuencia en diez segundos, es decir, con mayor precisión. Para esto, de hecho, se requería agregar un diodo al circuito y apoyar esta idea mediante programación. El refinamiento del circuito se muestra a continuación.

Los siguientes diagramas muestran cómo hacer un intervalo de diez segundos desde un segundo.

La señal PPS se suministra al temporizador a través de un diodo y directamente a la entrada de interrupción externa adicional. En la interrupción del temporizador, se permite una interrupción externa que, contando hasta diez, se prohíbe a sí misma y cambia la resistencia pull-up de arriba a abajo.
Las flechas rojas indican los momentos de la operación de interrupción del temporizador, y el verde indica los momentos del inicio de la interrupción externa, según los cuales se consideran los segundos intervalos requeridos. El azul muestra resistencias pull-up de encendido y apagado. El proyecto se realizó en IAR y puedes verlo aquí . La foto a continuación muestra el resultado del programa del controlador junto con el emulador de terminal, que muestra el estado estable.

Para ver el gráfico, y no las líneas secas de los valores de frecuencia, tuve que componer una pequeña utilidad para Windows. Su carcasa está en el mismo lugar que el proyecto de firmware.
Todos los experimentos se realizaron de acuerdo con el mismo escenario. Antes de las mediciones, la placa se dejó durante quince a veinte minutos en el refrigerador, donde estaba ligeramente por debajo de cero. Luego se calentó naturalmente a temperatura ambiente durante media hora. Luego, la placa y el resonador recibieron aire caliente del secador de pelo durante varios minutos (aquí las mismas condiciones no funcionaron).
Los buenos resonadores se comportaron bien, es decir, de acuerdo con la dependencia de la temperatura del corte AT del cristal. Estos gráficos (¿o copias múltiples?) Son fáciles de encontrar en la red. Los resultados de las mediciones de tres resonadores a 16 MHz se muestran a continuación.

Luego resultó que hay excepciones a la imagen habitual del comportamiento. Los datos a continuación muestran dos cristales de cuarzo del mismo tipo y, muy probablemente, del mismo origen, que se comportaron de manera diferente.

En el resonador, que se comporta como siempre, solo respiré un poco, y el segundo decidió calentar más, porque se mostró de manera diferente. Qué fácil es ver la dependencia de la temperatura de él o desplazado, o simplemente otro.
Otra observación interesante. Después de la exposición a la temperatura, el resonador no vuelve a los valores de frecuencia pasados, o no tuve la paciencia para esperar. En cualquier caso, no importa si no te importan los signos después del sexto.
Aquí hay otra observación. Este es el mismo resonador, que tuvo que medirse dos veces, porque causó sorpresa. Todavía no he encontrado una explicación para tal comportamiento y no se me ocurrió.

Sería útil eliminar la dependencia de la temperatura individual de la frecuencia para un resonador individual. Luego puede hacer un generador de segundos intervalos altamente estable usando un buen sensor de temperatura y conociendo la curva de temperatura del resonador. Sin embargo, esto ya requerirá una cámara de calor. Me pregunto qué sensores de temperatura pueden considerarse buenos hoy.