GPSDO Distant – Matériel

GPSDO = GPS Disciplined Oscillator

Interface Web du GPSDO

Sous cet acronyme on désigne un oscillateur à quartz dont on mesure la fréquence à l’aide d’une horloge très précise basée sur les signaux GPS et qui génére une ou plusieurs horloges en sortie de boucles à verrouillage de phase (PLL). Cette méthode permet d’optimiser les qualités de précision et de stabilité des horloges.
Avec un ‘ simple ‘ quartz on peut obtenir une précision de 1 x 10 -6 soit 10Hz pour 10 Mhz ou 10 Khz pour 10 Ghz , mais sujet à dérive lente selon la température et son vieillissement. C’est un niveau de précision insuffisant pour un transceiver travaillant en SSB dans les bandes hyperfréquences.

Le système proposé ici fourni 2 horloges dont la fréquence est programmable entre 25kHz et 200 MHz. On peut les utiliser par exemple pour piloter un  LNB (Low Noise Block converter) d’une antenne parabolique et un émetteur / récepteur afin de garantir un parfait calage en fréquence. Les précisions auxquelles on arrive sont de l’ordre de 3 * 10 -8.

L’ensemble peut être piloté à distance avec un simple navigateur web afin de pouvoir le localiser au pied des antennes.

Principe de fonctionnement

Un GPS nous fournit une base de temps très précise avec une impulsion toutes les secondes. Un compteur va compter pendant 40 s une horloge issue du quartz de référence à 2.5 MHz. La mesure du nombre d’impulsions de l’horloge, en théorie 100 Million, au bout de 40s va nous permettre de corriger la fréquence du quartz de référence pour caler l’horloge exactement à 2.5 MHz. Deux autres horloges, synchrones de la première, fournissent les signaux pour piloter notre LNB ou transceiver.

Matériel

GPS

Le GPS Neo 8M est un modèle peu cher ( 5€ chez Aliexpress) qui fournit une impulsion d’horloge toutes les secondes et les données de localisation sur le bus série ou via le port micro USB au format NMEA. Pour plus de détails voir l’article https://f1atb.frconstruire-son-traceur-gps/.

En fait il est plus juste de parler de GNSS ( Global Navigation Satellite System) et non GPS, car ce récepteur traite les 4 systèmes de localisation ou constellations de satellites:

  • le GPS historique d’origine US
  • Galileo développé par l’Europe
  • Glonass développé par la Russie
  • Beidou développé par la Chine

Une LED rouge clignote au rythme des secondes une fois l’acquisition faite des satellites. Cela peut prendre du temps la première fois.

Si5351A

Le Si5351A est un générateur de 3 horloges jusqu’à 200 MHz synchrones d’un quartz à 25 MHz dont on peut corriger la fréquence si celle-ci dérive lentement.

Le Si5351 est programmé pour délivrer un signal de 2,5 MHz sur la broche de sortie CLK0. Cette broche est connectée à la broche D5 d’un Arduino Nano qui est l’entrée d’un compteur interne 16 bits avec un registre de débordement.

Les 2 autres horloges ont la fréquence et le niveau programmables par le bus I2C connecté à l’Arduino. On peut monter jusqu’à 200 MHz.

Pour information, on retrouve le circuit Si5351A dans le SDR HackRF traité dans d’autres articles.

Le module avec les connecteurs de sortie est disponible chez Aliexpress pour moins de 10€.

Arduino Nano

L’Arduino Nano, bien connu des amateurs d’objets programmés, dispose de fonctions très intéressantes de comptage. Ici, il compte le nombre N de périodes de 2,5 MHz reçues durant 40s en se basant sur l’horloge d’une seconde du GPS branchée en D2.

Si le résultat du comptage diffère des 108 = 40 * 2.5 *106 attendus . Le programme Arduino calcule un nouveau facteur d’étalonnage ou correction de la fréquence de référence 25 MHz et l’envoie au Si5351 par un bus I2C.

Orange PI Zero

Pour piloter l’ensemble et le surveiller à distance on utilise un nano ordinateur Orange PI Zero sous Armbian qui fait tourner un serveur Web Apache. Un Raspberry Pi 3 peut faire l’affaire, mais un Orange PI Zero avec ethernet, le wifi, le fait aussi pour une QSJ plus faible. Il communique avec l’Arduino et le GPS par USB, ce qui nécessite un mini-hub pour avoir 2 ports USB.

L’Orange PI est important au redémarrage en fournissant à l’Arduino et le Si5351A la dernière correction connue afin de lancer les oscillateurs au plus proche de la bonne fréquence même en l’absence d’acquisition des satellites.

La carte avec 512Mo de mémoire est disponible chez Aliexpress pour une vingtaine d’€.

Câblage

Câblage des éléments du GPSDO

L’ensemble s’alimente en 5V, 3A max. Bien filtrer l’alimentation générale pour générer des signaux d’horloge propre. Comme l’alimentation du Si5351A peut se faire entre 3.3v et 5v une résistance de 47 ohm suivi d’un condensateur de 470uF filtre son alimentation.

Le Bus I2C pour piloter le module horloge se connecte à l’Arduino:
– SDA – A4
– SCL – A5

La Clk0 est envoyée sur la broche D5 de l’Arduino. Les 2 autres horloges sont disponibles directement sur les connecteurs SMA ou les broches. Ici une résistance de 50 ohm limite le courant max. Il faut adapter la sortie suivant l’utilisation souhaitée. A vide les sorties fournissent un signal carré 0 à 3.3v.

Le GPS fourni le signal 1pps ( 1 pulse per second) à connecter à D2 de l’Arduino. Une antenne se trouve directement sur la carte. Si elle est masquée pour acquérir les satellites, on peut brancher une antenne active externe.

Une LED sur la pin 23 via une résistance de 330 ohm s’allume si l’Orange PI a démarré et clignote si l’acquisition des satellites est faite.

Réalisation

L’ensemble est monté dans une boite d’électricien. Les oscillateurs sont dans une boite métallique avec 2 fiches SMA en surface pour les sorties d’horloges.

Logiciels

Sur l’Arduino Nano tourne le logiciel de comptage des impulsions et le calcul de la correction à appliquer au quartz de référence à 25 MHz.

Sur l’Orange Pi, une application en Python collecte les informations de l’Arduino et du GPS. Lors d’un appel client web à l’adresse IP du système, l’historique des acquisitions des satellites est renvoyé ainsi que les fréquences des 2 horloges. Tous les fichiers sont à mettre dans le dossier /var/www/html correspond à la configuration de base d’un serveur web Apache.

Les logiciels en version Bêta qui permettent une exploitation du GPSDO présenté sont téléchargeables ici. Il y a un dossier pour l’Arduino et un pour l’Orange Pi Zero.

Test Performances

Pour les GPSDO il est intéressant de tester la stabilité en fréquence et la pureté spectrale. Pour cela j’ai effectué un test en condition d’utilisation, en connectant le GPSDO à l’horloge externe d’un HackRF émettant sur 435.1 MHz.

Un simple analyseur de spectre basé sur une clé RTL-SDR et le logiciel SATAGEN sur PC permet d’observer la qualité du signal généré.

Pour la stabilité en fréquence, c’est parfait. Les écarts mesurés toutes les 40s par l’arduino ne dépasse pas les 5 impulsions sur un total de 100 Million. L’interface web de l’Orange Pi donne la courbe en temps réel.

Du côté su spectre, le résultat n’est malheureusement pas très bon. Des raies parasites apparaissent à – 40 dB / -50dB sous la raie principale à 432.1 MHz. Si l’on utilise l’oscillateur interne au HackRF ou un TCXO interne, ce phénomène n’apparait pas.

La position des raies dépend du coefficient de correction appliqué au PLL de référence du circuit Si5351.

Pas de compensation du quartz du Si5351, le signal semble correct, mais au-dessus de 4.35.1 MHz.
Légère compensation. Coefficient = 10000. Apparition de raies parasites
Compensation en fréquence parfaite. Le signal est à 435.1 MHz avec dans mon cas un coefficient de compensation de 85240. Les raies sont espacées de 67 kHz.

Plus on compense la dérive du quartz du SI5351, plus les raies s’écartent en fréquence et montent en niveau.

Avec le design donné ici autour d’un circuit SI5351, on obtient un résultat acceptable pour générer une balise de faible puissance mais pas un émetteur devant fournir plusieurs watts. Ma conclusion est :

RÉSULTATS INSUFFISANTS

Spectre en sortie du GPSDO

Spectre sans compensation.

Ci dessous 2 spectres autour de 50MHz de la sortie oscillateur sans et avec compensation de la dérive du quartz du SI5351. Dans les 2 cas des raies importantes dépendant du coefficient de compensation.

Spectre avec compensation. F0=50MHz.

Si vous avez des idées pour améliorer. Je suis preneur.
F1ATB
André

F1ATB André

Radio Amateur - Domotique - Photovoltaïque

Vous aimerez aussi...

11 réponses

  1. F6GWE dit :

    Très intéressant!
    73 qro
    Patrick

    • F1ATB André dit :

      Je travaille à présent sur le soft que je publierai sur ce site.
      73
      F1ATB

      • F6GWE dit :

        Hello André

        Avez vous essayé d’alimenter sur batterie le montage?

        73
        Patrick

        • F1ATB André dit :

          Non, mais j’ai essayé différentes alimentations.

          En analysant la doc constructeur, il est un domaine à regarder, les rapports entiers de division des horloges.
          . Integer Divide Values (FBx_INT)
          « If a + b/c is an even integer, integer mode may be enabled for PLLA or PLLB by setting parameter FBA_INT or
          FBB_INT respectively. In most cases setting this bit will improve jitter when using even integer divide values. »

  2. Jean-luc dit :

    Tres joli travail, du coup je suis en train de monter votre projet 😉

    73’s F5PQL

  3. F1CHF dit :

    beau boulot
    de mon coté je cherche a « faire vibrer » un SI5351 via PIC ou Arduino
    sacré bestiole
    puis je te suggerer de mettre les liens aussi bien pour la materiel
    et aussi pour les « includes » style SI5351.H ou autre
    question de « charlot » ou trouver les commandes a envoyer au SI5351
    pour (par exemple) fixer telle ou telle frequence …
    en bref avoir la bonne syntaxe et quelles sont les commandes possibles

    merci d’avance
    le chf

  4. F5LNH dit :

    bonjours André
    je suis intéressé par votre réalisation
    est il possible de se passer de la carte orange pi zéro
    cordialement 73 Didier