Lorsqu’on construit un récepteur ou un émetteur HF, une question arrive très rapidement : comment produire une fréquence stable et facilement réglable ?
Pendant longtemps, la réponse était le VFO analogique : bobine, condensateur variable, transistor oscillateur et beaucoup de précautions pour éviter que la fréquence ne dérive avec la température. Puis sont arrivés les synthétiseurs numériques et les DDS.
Aujourd’hui, un minuscule circuit à quelques euros est devenu extrêmement populaire dans les montages radioamateurs : le Si5351.
Associé à un Arduino, un ESP32 ou un RP2040, il permet de construire très simplement un VFO numérique couvrant une bonne partie du spectre utilisé par nos montages.
Le Si5351, c’est quoi exactement ?
Le Si5351 est avant tout un générateur d’horloges programmable par I²C. À l’origine, il n’a d’ailleurs pas été conçu spécifiquement pour la radio.
Son rôle est de remplacer plusieurs quartz, oscillateurs et circuits PLL par un seul composant programmable. Selon les versions, il peut disposer de plusieurs sorties indépendantes. Le petit Si5351A à trois sorties CLK0, CLK1 et CLK2 est celui que l’on rencontre le plus souvent sur les modules destinés aux Arduino.
À partir d’un quartz, généralement de 25 ou 27 MHz, le circuit peut synthétiser de très nombreuses fréquences. Les versions récentes du composant sont spécifiées jusqu’à 200 MHz, même si, pour nos applications radioamateurs, il est souvent préférable de rester bien en dessous de cette limite.

Le Si5351A se pilote simplement en I²C et offre trois sorties de fréquence programmables.
Non, le Si5351 n’est pas un DDS !
C’est une confusion fréquente.
Un AD9850, AD9851 ou AD9833 est un DDS – Direct Digital Synthesizer. Le Si5351 utilise une architecture différente basée sur des PLL et des diviseurs MultiSynth.
On peut simplifier son fonctionnement ainsi :
Quartz → PLL → MultiSynth → diviseur → sortie CLK

Architecture simplifiée du Si5351 : le quartz alimente les PLL, puis les MultiSynth génèrent les trois fréquences de sortie.
Le quartz fournit la référence. Une PLL génère une fréquence interne élevée, puis les circuits MultiSynth effectuent les divisions nécessaires pour obtenir la fréquence demandée.
Le Si5351 possède notamment deux PLL internes, PLLA et PLLB. Les rapports de multiplication et de division peuvent être fractionnaires, ce qui autorise un choix extrêmement fin des fréquences de sortie.
Les divisions entières sont néanmoins intéressantes lorsque cela est possible, notamment pour réduire le jitter ; la documentation de la bibliothèque Adafruit recommande d’ailleurs de privilégier les valeurs entières lorsque l’application le permet.
Trois sorties qui changent beaucoup de choses
C’est probablement ce qui explique une partie du succès du Si5351 chez les radioamateurs.
Imaginons un petit transceiver HF.
Nous pourrions utiliser :
CLK0 → VFO
CLK1 → BFO
CLK2 → second oscillateur local
Le microcontrôleur peut alors modifier ces fréquences par logiciel.
Ajoutons un encodeur rotatif, quelques boutons et un petit écran OLED : nous obtenons déjà les bases d’un VFO moderne avec pas de 10 Hz, 100 Hz ou 1 kHz, mémoires, RIT, décalage de fréquence intermédiaire, changement de bande, etc.
Et tout cela sans modifier la partie HF du montage.
Attention : ce n’est pas une belle sinusoïde
Il faut cependant éviter un piège.
Les sorties du Si5351 sont des signaux numériques proches du carré, et non les belles sinusoïdes que l’on pourrait attendre d’un générateur RF de laboratoire.
Or un signal carré contient de nombreuses harmoniques impaires :
fondamentale + 3e harmonique + 5e + 7e…

Le signal carré du Si5351 contient de nombreuses harmoniques : un filtrage permet d’obtenir un signal RF beaucoup plus propre.
Un signal produit à 7 MHz possède donc également des composantes à 21, 35 MHz, etc.
Cela n’empêche absolument pas d’utiliser le Si5351 comme oscillateur local pour attaquer certains mélangeurs numériques ou logiques. En revanche, si son signal doit être utilisé dans une chaîne d’émission, filtrage et adaptation deviennent indispensables.
Le niveau de sortie peut également être programmé. Les bibliothèques courantes proposent quatre valeurs de courant : 2, 4, 6 ou 8 mA.
Et la précision ?
Le Si5351 ne peut évidemment pas être plus précis que sa référence.
Si notre quartz possède une erreur de 10 ppm, à 28 MHz cela représente :
28 000 000 × 10 / 1 000 000 = 280 Hz
Pas vraiment négligeable !
Heureusement, il est possible de calibrer le Si5351 par logiciel. Une méthode courante consiste à générer par exemple 10 MHz, mesurer précisément la fréquence obtenue puis introduire un facteur de correction dans le programme. La bibliothèque Etherkit prévoit directement cette possibilité.
Pour obtenir une meilleure stabilité thermique, on trouve également des modules utilisant un TCXO plutôt qu’un simple quartz.
C’est particulièrement intéressant pour les modes numériques et les montages nécessitant une excellente stabilité.
Arduino + Si5351 : un couple presque idéal
Le pilotage est particulièrement simple puisque le Si5351 communique en I²C. Il suffit donc essentiellement de SDA et SCL entre le microcontrôleur et le module.
Des bibliothèques existent déjà pour Arduino et permettent de demander une fréquence sans avoir à calculer soi-même tous les paramètres des PLL et MultiSynth. Adafruit propose par exemple une bibliothèque et des exemples de câblage et de programmation ; Etherkit maintient également une bibliothèque Si5351 très utilisée dans les projets radioamateurs.
C’est précisément ce qui rend ce composant aussi séduisant : derrière une apparente simplicité se cache un véritable synthétiseur de fréquences.
Un composant presque incontournable pour expérimenter
Le Si5351 n’est pas parfait. Son signal carré impose de surveiller les harmoniques, le jitter peut devenir important dans certaines configurations et la stabilité dépend fortement de la référence utilisée.
Mais son faible prix, ses multiples sorties et son pilotage extrêmement simple compensent largement ces limitations.
Pour quelques euros, nous disposons finalement d’une petite boîte à fréquences programmable capable de devenir VFO, BFO, oscillateur local ou générateur de laboratoire expérimental.
Et maintenant que nous savons ce qu’il contient, il reste une chose beaucoup plus amusante à faire : prendre un Si5351, un Arduino, un encodeur et un écran OLED… et construire notre propre VFO HF.
