|
Base de temps GPS 10 MHz par Yves, F4IMG
|
|||
Crédit photos : F4IMG - F5PAX
Schémas : F4IMG
|
|||
Beaucoup d'appareils de mesures ainsi que les TX récents, les transverters possèdent une entrée pour une fréquence de référence de 10 MHz. Les mesures de fréquence de nos réalisations ont montré les limites du fréquencemètre en notre possession. Hors, ce dernier possède une entrée de référence de 10 MHz et ayant une base de temps 10 MHz "France Inter", la mesure s'est avérée très précise.
Les signaux horaires de France Inter ayant été maintenus alors que les émissions ont cessé, pourquoi ne pas réaliser une base temps qui utiliserait la réception des signaux GPS. En effet, le maintien en activité de l'émetteur de France Inter risque d'avoir une fin dans un avenir plus ou moins proche.
Voir ci-dessous, l'article de l'ANFR :
Qu’est-ce que le signal horaire ? Depuis 1977, la fréquence 162 kHz, qui servait jusqu’à la fin de l’année 2016 à diffuser le programme de France Inter sur les grandes ondes, transmet un signal horaire de référence élaboré à partir d’horloges atomiques. Ce signal est inaudible mais, lorsqu’il est capté par un appareil approprié, il fournit l’heure légale française. Certaines entreprises assurant une mission de service public ont recours à ce signal, ainsi que des collectivités locales. Souvent appelé « signal horaire France Inter », ce service est largement utilisé dans des secteurs clés de l’industrie française pour synchroniser plus de 200 000 horloges. Ce service fournit une référence de temps d’une précision très élevée et d’une grande fiabilité. Il a l’avantage de pouvoir être mieux reçu dans des espaces intérieurs que d’autres bases de temps, comme celles du GPS ou des réseaux de téléphonie mobile. Néanmoins, il faut noter que la diffusion du signal horaire cesse chaque mardi durant la matinée, pour des raisons de maintenance. Les horloges étant résilientes, leur fonctionnement n’est pas affecté. Depuis le 4 février 2020, la configuration de référence pour la diffusion du signal horaire est la suivante : pylône nord avec une puissance de 800 kW. Après en avoir discuté, j'ai entrepris la réalisation d'une base de temps 10 MHz avec des modules et composants faciles à trouver.
|
|||
|
|||
Façade avant de la base de temps
|
|||
|
|||
Description des modules de haut en bas et de gauche à droite :
Alimentation 12 Volts (merci à André F0GUI)
Alimentation 5 V - fournie à partir du 12 V (merci à André F0GUI)
Module GPS U-Block Neo-7M WPI430 (29,90 € chez GO TRONIC)
ARDUINO (L'Impulsion)
Amplificateur signal 10 MHz (composants de L'Impulsion) |
|||
|
|||
Module GPS (fourniture GO TRONIC) |
|||
|
|||
Amplificateur 10 MHz (en haut de l'image) |
|||
|
|||
Arrière du boitier :
Entrée antenne GPS (fiche N) Sorties signaux (sinusoïdal et carré)
|
|||
|
|||
L'élément principal est le module GPS de U-BLOX NEO7M
|
|||
Il reçoit les émissions des satellites du système GPS et fournit les messages de navigation NMEA, en particulier par une interface série UART, et une broche dite PPS qui donne une tension en créneau dont la fréquence peut se synchroniser sur la référence de temps des GPS. Par défaut cette fréquence est de 1 Hz, mais elle est configurable par pas de 1 Hz, théoriquement jusqu'à 24 MHz. |
|
||
. Les informations détaillées sur ce module NEO7M se trouvent sur le site de U-BLOX. https://www.u-blox.com/en/product-resources?query=neo-7m&legacy=Current En particulier : et spécialement : u-blox7 (V14) Receiver Description Protocol Specification
et pour tester le module NEO7M à partir du PC j'ai télécharger le logiciel u-center2-21.11.13554.exe.zip De nouvelles versions sont disponibles : Adresse : https://www.u-blox.com/en/product/u-center
Une excellente description des possibilités d'utilisation de ce logiciel est faite sur le site : https://copperhilltech.com/blog/programming-the-ublox-neo7mc-uart-gps-module/ |
|||
-Les autres éléments de la base de temps.
* Le filtre Lors des essais réalisés à l'aide du logiciel "u-center2", il est apparu que le signal généré sur la sortie PPS à 10MHz était dénaturé par un "jitter". On a pu l'éliminer par un filtrage : d'abord un filtre passe-bas L-C en Pi, suivit d'un passe-bande étroit, avec un quartz à 10 MHz
L'amplificateur En sortie du filtre le signal sinusoïdal doit être amplifié pour obtenir un niveau correct pour piloter d'autres appareils. Une sortie de tension sinusoïdale 10MHz capable de fournir 20dBm à une charge de 50 ohms est désirée. Ensuite cette tension est écrêtée pour commander des portes logiques capables de fournir une seconde sortie de tension de niveaux TTL ou CMOS pour piloter des appareils qui demandent ce type de signal.
Un module Arduino Il est bien entendu que la base de temps 10MHz à réaliser doit fonctionner de manière autonome. La modification de la configuration du module NE07M se fera par la liaison UART entre le module lui-même et un module Arduino .Il est tout à fait adapté pour envoyer la trame qui configure le module NEO7M afin qu'il délivre sur sa broche PPS le signal à 10MHz. Le module Arduino est aussi programmé pour qu'il décode les trames NMEA de la navigation par GPS. Il affiche sur écran LCD alphanumérique, des indications sur la réception des informations des satellites, ce qui permet de déduire la qualité de la synchronisation de la sortie 10MHz.
Description des éléments de la base de temps
Test et identification de la configuration du GPS par logiciel "u-center2" Une fois le logiciel installé sur le PC "Windows", la liaison entre le module GPS et un port USB du PC peut se faire en utilisant un convertisseur UART-USBl comme le montre la photo. La configuration du convertisseur UART-USB à un port USB du PC créera un port COM virtuel. Attention à l'ordre respectif des broches qui ne sont pas en regard les unes des autres et nécessite un croisement des connecteurs ! (voir un exemple sur l'image).
|
|||
|
|||
Pour avoir une bonne réception des émissions des satellites, si l'on travaille à l'intérieur d'un bâtiment, il est nécessaire d'utiliser un antenne déportée vers l'extérieur (auprès d'une fenêtre par exemple), en utilisant le connecteur SMA du module, connecteur prévu à cet effet.. Après quelques essais de configurations possibles avec "u-center2" il n'a pas paru nécessaire de changer la configuration de base du module NEO7M, sauf bien sûr la fréquence de sortie de la broche PPS qui doit devenir égale à 10MHz. Au montage final de la base de temps 10MHz, c'est au module Arduino qu'est dévolu l'envoi de la trame de la série d'octets qui configurent la sortie PPS à 10MHz. Il faut connaître le contenu de cette trame. Cette information se trouve au chapitre 26, qui débute à la page 73 de " u-blox7 (V14) Receiver Description Protocol Specification" déjà cité. En réalité, seule la lecture des pages 73 et74, puis 135 et 136 est vraiment nécessaire.
|
|||
Une astuce pour ne pas se tromper : Puisque le logiciel "u-center2" sait envoyer cette commande, il suffit de l'enregistrer.
Du point de vue matériel, "u-center2" étant en fonctionnement sur l'ordinateur on déconnecte le module GPS du convertisseur UART-USB. Un second convertisseur UART-USB est connecté à un autre port USB et un second port COM virtuel est créé. Les broches UART des deux convertisseurs sont reliées entre elles, en prenant la précaution de relier les broches RX de l'un, aux broches TX de l'autre.
|
|
||
Un port COM est utilisé par "u-center2", sur la copie d'écran suivant, c'est le COM 6 . Un logiciel de type "Terminal" est lancé, il utilise l'autre port COM virtuel, ici c'est le COM 9.
|
|||
|
|||
Le logiciel " Terminal" utilisé est TeraTermPro, logiciel gratuit, téléchargeable. Il est configurable pour afficher tous les caractères reçus au format hexadécimal : c'est ce qui est fait. La copie d'écran montre la fenêtre "u-center2" à la ligne de configuration TP5, une configuration possible de la sortie PPS du module NEO7M. La sortie obtenue serait à 10MHz en signaux "carrés". Au "clic" sur la commande d'envoi, la trame envoyée par "u-center2" apparaît dans la fenêtre de TeraTermPro. C'est un fichier texte : il n'y a plus qu'a faire un copier-coller dans un programme Arduino, sans oublier d'ajouter à chaque octet le " 0x " qui caractérise la notation hexadécimale en langage C.
Voici les tableaux utilisés dans le programme Arduino de la base de temps. (légèrement différent : retard arbitraire de 50ns pour la liaison d'antenne, et référence au temps GPS au lieu de UTC. Ceci n'a pas incidence sur la fréquence PPS).
const byte packetBase10MHz[] = { 0xB5, // sync char 1 0x62, // sync char 2 0x06, // class 0x31, // id 0x20, // length 0x00, // length
0x00, 0x01, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, 0x00, 0x80, 0x96, 0x98, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0xEF, 0x00, 0x00, 0x00, 0xD5, // CK_A 0x7A // CK_B }; const byte packetPollTimePulse[] = { 0xB5, 0x62, 0x06, 0x31, 0x01, 0x00, 0x00, 0x38, // CK_A 0xE5 // CK_B };
Réalisation du filtre 10MHz
|
|||
|
|
||
La première image de l'écran de l'oscilloscope montre le "jitter" de la sortie PPS à 10 MHz. Ce "jitter" produit des décalages des fronts de tension de 20 ns environ. La seconde image montre le signal"nettoyé" par le filtre, puis amplifié. La trace du bas est la tension de sortie d'une autre base de temps, synchronisée par la porteuse 162 kHz de "France Inter", grandes ondes.
|
|||
|
|||
Ce filtre est formé d'une première partie placée directement en sortie du GPS, sur la même plaquette qui supporte les connecteurs de la liaison UART vers le module Arduino.
|
|||
|
|||
Il est constitué d'inductance et capacités (C2, L1 et C1), sa liaison aux circuits suivants est faite par le câble coaxial de petit diamètre. Une seconde partie, passe-bande formée du quartz à 10MHz, du condensateur ajustable 22 pF et la résistance de charge de 39 ohms. Cette partie est placée sur le circuit imprimé où se trouve l'amplificateur de 10 MHz. Le condensateur ajustable est réglé pour obtenir le maximum de signal.
Schéma de l'amplificateur 10 MHz, et de la sortie au format TTL Il a été conçu pour utiliser les composants disponibles dans les réserves : les tiroirs étiquetés "ça peut servir" !!!
Il est formé de 2 étages "Emetteur Commun", suivit d'un étage à transistors complémentaires et un tore pour adapter l'impédance de sortie à 50 ohms avec une puissance de 20 dBm ou un peu plus. Un schéma est fait dans LtSpice pour affiner les valeurs de quelques résistances et une réalisation est faite. Elle a permis d'obtenir une sortie sinusoïdale de 22 dBm, donnant satisfaction.
Sa sortie est connectée en interne, à un réseau de résistances et diodes pour écrêter la tension et l'amener à un niveau de tension "logique", compatible avec une porte TTL rapide 74F00. Elle fournit la tension de sortie en créneau, parfaitement compatible avec l'entrée de référence externe du fréquencemètre du radio-club. Le but étant obtenu, aucune optimisation de l'amplificateur n'a été faite ensuite .
A titre d'information, voici son schéma.
|
|||
Le schéma au format PDF peut-être téléchargé ICI [ 112 Ko ]
Module Arduino pour la configuration du module GPS et pour l'affichage de l'état de la réception GPS . Le module Arduino utilisé est un Mega 2560 PRO MINI. Un Arduino uno ou Arduino nano est suffisant . L'avantage de l'Arduino Mega est de posséder plusieurs liaisons UART, ce qui est plus facile pour connecter à la fois le module GPS et le PC, pour la programmation de l'Arduino, ou pour une utilisation en parallèle du logiciel "u-center2". Pour la mise au point une vérification plus fine de l'état de réception des satellites peut être utile. Enfin, il dispose de nombreuse broches logiques et analogiques qui pourraient servir à des développement ultérieurs. Actuellement, en dehors du module GPS relié aux broches RX et TX de l'UART n°3, seul un afficheur alphanumérique LCD 2x16 caractères est utilisé. Il renseigne de l'état de la réception des satellites et de la qualité de la fréquence 10MHz de la base de temps. Le programme peut-être téléchargé ICI (fichier au format ZIP)
|
|||
|
|||
Voici le schéma spécifiant les broches utilisées pour les connexions, afin de pouvoir retrouver leur correspondance dans le fichier de programmation de l'Arduino, joint en annexe.
|
|||
Les informations affichées sur l'écran LCD. Peu de choses affichées à la mise sous tension, le temps que le module GPS s'initialise et repère quelques satellites à sa portée. Ensuite, le décodage des messages NMEA à l'aide de la librairie TinyGPS++, permet d'obtenir quelques renseignements. (Il faut la télécharger : http://arduiniana.org/libraries/tinygpsplus/).
|
|||
Sur la première ligne , derrière l'abréviation SvVu, (pour Space Vehicule in View), s'affiche le nombre de satellites théoriquement accessibles. Puis derrière l'abréviation Util (Satellites utilisés), s'affiche le nombre de satellites reçus dans des conditions suffisamment bonnes. Ils sont utilisés pour la navigation GPS et la synchronisation PPS. On peut considérer qu'a partir de 3 satellites utilisés la fréquence PPS est très bonne. Sur la seconde ligne, au début, pour information, le locator du lieu où se trouve l'appareil est affiché.
|
|
||
Ensuite, au bout de la seconde ligne s'affiche 10MHz, quand cette fréquence est établie et synchronisée. S'il y a perte de réception des satellites en cours d'utilisation, la broche PPS continue de fournir une tension à 10MHz. Il se produit une dérive progressive de la fréquence. On a constaté que cette dérive restait inférieure à 1 Hz si la perte de réception ne dépassait pas une trentaine de secondes. Pour en avertir l'utilisateur, l'affichage 10MHz est remplacé par "Doute", au bout d'une dizaine de secondes de perte de réception. Dès que celle-ci est rétablie, 10MHz est à nouveau affiché.
Images de quelques mesures réalisées au radio-club. La référence de fréquence 10 MHz du fréquencemètre est la base de temps décrite ici.
|
|||
|
|||
Les fréquences mesurées sont obtenues par un autre générateur, lui aussi synchronisé à partir d'un module U-BLOX GPS NEO7M. A la précision de la mesure du fréquencemètre, la concordance est parfaite.
|
|||
|
|||
Mesure du 3 MHz du générateur. |
73 à tous Yves F4IMG, en collaboration avec Dominique F5PAX et André F0GUI |
Mis à jour le 01/08/2022
|