Tout le monde connaît les systèmes de coordonnées satellites. Ils vous permettent également de connaître la vitesse et l'heure actuelle. Sur la base de tels systèmes, des serveurs de temps exacts sont construits, qui ont déjà été mentionnés à plusieurs reprises ici, et pas seulement ici. La précision de ces systèmes augmente, le prix baisse, bref les progrès ne s'arrêtent pas. Il semblerait que récemment, ce soit une question de millisecondes, et maintenant les microsecondes ne surprennent personne. Et le jour n'est pas loin quand ...
Honnêtement, ce jour est déjà venu pour moi. Il n'y a pas si longtemps, une information a été portée à mon attention selon laquelle l'un des fabricants de ses modules promet une précision de l'intervalle du signal de sortie PPS de l'ordre de dizaines de nanosecondes.
En d'autres termes, un deuxième standard est apparu avec une précision très décente. Certes, il n'est pas toujours à portée de main et dépend souvent de circonstances extérieures, mais vous pouvez obtenir des conditions favorables et l'obtenir. Et, surtout, comment vous copier.
Juste au cas où, j'ai regardé comment les choses se passent avec d'autres fabricants de produits similaires et j'ai trouvé les mêmes spécifications techniques. "Tendance, cependant", une pensée me traversa l'esprit, à peu près, comme celle de Shtirlits. Il fallait faire quelque chose.
Ces lecteurs qui savent comment souder une résistance à partir d'une carte de circuit imprimé ou comment souder un microcircuit et savent même comment le faire, conviennent mentalement avec moi qu'avoir un fréquencemètre qui fournit une précision de 7 à 8 caractères ne sera jamais un obstacle. Surtout si cela prend peu de place et que vous n'avez pas besoin d'emprunter beaucoup d'argent pour l'acheter. Et ceux qui n'aiment pas arrêter de penser peuvent penser à une montre qui se trompe quelques secondes par an (au septième chiffre, Clara). Les amateurs de communications radio amateurs se souviendront probablement de la conception d'un bon filtre à bande étroite fait maison sur des résonateurs à quartz.
La première chose à faire était de trouver le bon matériel. J'ai aimé la carte d'évaluation simple avec un petit module Teseo-LIV3F d'une entreprise bien connue. Voici à quoi elle ressemble.

Cette chose est vendue avec une antenne active à distance, qui peut être installée plus près de la fenêtre afin que les satellites puissent bien "voir". Des cavaliers sont placés sur le tableau selon les besoins pour notre nouvelle narration et notre programmation réussie. La photo contient également des améliorations de circuits sous la forme d'une seule diode avec une bonne vitesse.
Le schéma des améliorations sera présenté ci-dessous. Le fabricant a prévu que cette carte peut être insérée dans une carte d'évaluation Nucleo appropriée avec un microcontrôleur à bord (en fait, ce sont des connecteurs pour l'Arduino, mais je ne veux pas partir avec 32 bits). Dans la description du module GPS / GNSS lui-même, j'ai trouvé ce qui suit.

Ceci est très bon et peut servir de première approximation à un bon compteur de fréquence. Maintenant, j'ai un deuxième intervalle très précis, et je peux calculer la fréquence des oscillations, par exemple, de mon propre oscillateur à cristal thermostaté. Et même, peut-être, pour le régler dans la direction nécessaire à lui-même. Ce sera plus tard, probablement. En attendant, je voulais mesurer les fréquences des résonateurs à quartz accumulés dans l'économie.
Une carte série Nucleo appropriée est construite sur le STM32L476RG. Il est livré sans résonateur à quartz (l'horloge ne compte pas). Ci-dessous, la photo montre les flèches où les éléments manquants ont dû être soudés.

Cette option de carte est sélectionnée pour trois raisons. Tout d'abord, le générateur à microcontrôleur avec résonateur externe fonctionne de 4 à 48 MHz. Toutes les cartes microcontrôleurs Nucleo n'ont pas de telles tolérances. Nous allons faire fonctionner ce générateur avec notre quartz. Deuxièmement, le port série (UART) peut être synchronisé à partir d'un générateur RC intégré séparé avec une précision de 1% à une fréquence de 16 MHz. Par conséquent, il ne sera pas nécessaire de modifier les paramètres et les diviseurs dans la configuration UART avec un changement de la fréquence du générateur externe. Et surtout, un emplacement pour le montage mural est prévu pour le résonateur à quartz, où vous pouvez installer les connecteurs afin de ne pas souder le prochain résonateur à chaque fois.
Le port série est déjà connecté au port USB virtuel dans le débogueur intégré. Vous pouvez donc utiliser l'émulateur de terminal pour afficher des informations. Après avoir finalisé et installé deux morceaux de quartz à partir du connecteur de la pince, la carte se présente comme suit.

Maintenant, nous devons démarrer le temporisateur pendant exactement une seconde, et il comptera les impulsions de son horloge système, c'est-à-dire la fréquence de notre résonateur à quartz. Heureusement, la minuterie fournit un mode dans lequel elle est simultanément réinitialisée et démarre à partir du front montant de l'impulsion externe.
J'ai tout de suite voulu faire en sorte de ne pas faire la moyenne de quelques secondes de mesure, mais de mesurer la fréquence en dix secondes, c'est-à-dire plus précisément. Pour cela, en fait, il fallait ajouter une diode au circuit et soutenir cette idée par programme. Le raffinement du circuit est illustré ci-dessous.

Les diagrammes suivants montrent comment créer un intervalle de dix secondes à partir d'une seconde.

Le signal PPS est fourni au temporisateur via une diode et directement à l'entrée d'interruption externe supplémentaire. Dans l'interruption de la minuterie, une interruption externe est autorisée, qui, comptant jusqu'à dix, s'interdit et modifie la résistance de rappel de haut en bas.
Les flèches rouges indiquent les moments de l'opération d'interruption de la minuterie et les vertes indiquent les moments du début de l'interruption externe, en fonction desquels les seconds intervalles requis sont pris en compte. Le bleu montre des résistances de tirage tout ou rien. Le projet a été réalisé en IAR et vous pouvez le voir ici . La photo ci-dessous montre le résultat du programme du contrôleur en conjonction avec l'émulateur de terminal, qui montre l'état stationnaire.

Pour voir le graphique, et non les lignes sèches des valeurs de fréquence, j'ai dû composer un petit utilitaire pour Windows. Sa carcasse est au même endroit que le projet de firmware.
Toutes les expériences ont été réalisées selon le même scénario. Avant les mesures, la planche a été laissée pendant quinze à vingt minutes au réfrigérateur, où elle était légèrement inférieure à zéro. Ensuite, il a été naturellement chauffé à température ambiante pendant une demi-heure. Ensuite, la planche et le résonateur ont reçu de l'air chaud du sèche-cheveux pendant plusieurs minutes (ici les mêmes conditions ne fonctionnaient pas).
De bons résonateurs se sont bien comportés, c'est-à-dire conformément à la dépendance en température de la coupe AT du cristal. Ces graphiques (ou plusieurs copies?) Sont faciles à trouver sur le net. Les résultats des mesures de trois résonateurs à 16 MHz sont présentés ci-dessous.

Il s'est ensuite avéré qu'il y avait des exceptions à l'image habituelle du comportement. Les données ci-dessous montrent deux cristaux de quartz du même type et, très probablement, de la même origine, qui se sont comportés différemment.

Sur le résonateur, qui se comporte comme d'habitude, je viens de respirer un peu, et le second a décidé de chauffer plus, car il se montrait différemment. Comme il est facile de voir la dépendance de sa température ou de son décalage, ou juste d'un autre.
Une autre observation intéressante. Après exposition à la température, le résonateur ne revient pas aux valeurs de fréquence passées, ou je n'ai pas eu la patience d'attendre. Dans tous les cas, peu importe si vous ne vous souciez pas des signes après le sixième.
Voici une autre observation. Il s'agit d'un seul et même résonateur, qui a dû être mesuré deux fois, car il a causé la surprise. Je n'ai pas encore trouvé d'explication à un tel comportement et je n'en ai pas trouvé.

Il serait utile de supprimer la dépendance à la température individuelle de la fréquence pour un résonateur individuel. Ensuite, vous pouvez créer un générateur de deuxième intervalle très stable en utilisant un bon capteur de température et en connaissant la courbe de température du résonateur. Cependant, cela nécessitera déjà une chambre de chaleur. Je me demande quels capteurs de température peuvent être considérés comme bons aujourd'hui?