Générateur HF |
![]() |
![]() |
![]() |
Le
but de cette étude
n'est pas de réaliser un émetteur de radio mais un générateur de
laboratoire de très faible puissance (<1mW c.a.d < 0 dBm),
permettant
d'expérimenter et de régler des
circuits VHF comme des filtres par exemple (c'est d'ailleurs ce
à quoi il va servir immédiatement), afin de confronter
la théorie à l'expérience, sans rayonner.
L'appareil doit être enfermé dans un boîtier
métallique relié à la
masse. La sortie du signal se fera sur une prise BNC. Un filtre VHF
sera intercalé sur l'alimentation. Voir les liens en bas de page concernant l'attribution des fréquences radio. Les fréquences générées par cet appareil couvrent des bandes aviation(autour de 120MHz), amateur (144MHz ou "bande des 2m"), militaire... des perturbations occasionnées dans ces bandes peuvent avoir des conséquences graves, autant dire que toute tentative d'émission dans ces bandes serait rapidement repérée et peut vous amener directement en prison. A la rigueur les radio-amateurs en possession de la licence et ayant des connaissances en électronique et en VHF pourront envisager d'adapter cette réalisation pour leurs besoins propres. Cette étude fait suite à celle du générateur 90MHz à PLL de type MC145170 décrit sur ce site. |
![]() |
Le
but de cette réalisation étant d'obtenir un signal de
fréquence très
précise, on utilisera une boucle
d'asservissement de fréquence (PLL) et un oscillateur à
quartz comme
référence. J'ai choisi comme PLL le LM7001 qui permet de synthétiser des fréquences par pas de 100, 50 et 25kHz jusqu'à 160MHz. Ci-contre un extrait du data sheet du LM7001. |
![]() |
J'ai décrit
précédemment l'étage
VCO à transistor JFET 2N3819 (voir ma page sur le
générateur 90 MHz à
LM145170). J'aurais pu remplacer purement et simplement cet
étage par
un VFO intégré, par exemple un POS150 mais le prix (35
euro) de ce
dernier me semble injustifié. Et puis vous l'aurez
remarqué, je suis
adepte du "je réalise tout moi-même", c'est tellement plus
satisfaisant! Le signal de référence est fixé = 100kHz (ou 50kHz ou 25kHz) afin d'obtenir le pas de synthèse correspondant. Il est obtenu par division par 72 (ou 144 ou 288) de la fréquence d'un oscillateur à quartz de 7,200 MHz (oscillateur intégré compensé en température. Un simple quartz de 7,2MHz est possible). Ces valeurs de division sont pré-câblées dans le LM7001 et sélectionnables par envoi d'un mot de commande adéquat par l'ATmega8 (en mode série sur DATA, CL, CE voir datasheet du LM7001). Le signal du VCO est injecté sur l'entrée FM-IN du LM7001 afin d'être divisé par une valeur N (codée par les bits D0..D13) choisie de façon à obtenir également la valeur du signal de référence . Si on veut obtenir un signal de sortie de 144,000 MHz en mode pas de 100kHz, l'ATmega8 devra écrire N = 1440 dans le registre N de la PLL. (144MHz / 1440 = 100kHz) de même: Si on veut obtenir un signal de sortie de 145,325 MHz en mode pas de 25kHz, l'ATmega8 devra écrire N = 5813 dans le registre N de la PLL. (145325 kHz / 25kHz = 5813) etc... On voit que le mode opératoire diffère quelque peu de celui du MC145170... Les deux signaux de 100kHz (ou 50 ou 25kHz) (quartz/R , VCO / N) sont comparés au sein du LM7001 et le signal d'erreur est disponible sur le pin14. Ce signal d'erreur sert à piloter la varicap (D1) après calibrage en tension (24V) par T1, filtre passe bas (R4 - C5 - R5 - C6). La variation possible de fréquence obtenue avec une seule self est de l'ordre de 2 / 1 compte tenu de la tension de commande élevée pour la varicap, obtenue à partir du 12V par le doubleur de tension (40106 et diodes Schottky). La variation possible de fréquence obtenue permet de synthétiser des fréquences de 90MHz à 160MHz sans commutation de selfs ni de condensateurs. A NOTER: Contrairement au générateur 90MHz à PLL de type MC145170 décrit précédemment sur ce site, le signal obtenu, bien que sinusoïdal, n'est pas dépourvu d'harmoniques. Il reste à concevoir un étage de sortie avec filtrage musclé ( filtre passe bas du second ordre (ou mieux) coupant à 160MHz). Chose passionnante elle aussi, et application directe de cette réalisation! Je vous tiens au courant. |
![]() |
Tout est réalisé en composants classiques. La CMS permettra de miniaturiser tout ça. |
![]() |
Détails de la self
à prise médiane:
-6 spires avec prise médiane (2 x 3 spires donc) -fil de cuivre émaillé de diamètre 6/10mm -bobinée sur un cylindre de 4mm de diamètre -spires non jointives -longueur totale de la bobine = 6mm Un fil de plus gros diamètre fausse totalement le fonctionnement... Donc ces caractéristiques sont critiques. On notera C3 (1nF, le tout petit jaune en bas à gauche) de type céramique. Quant à l'oscillateur intégré, il peut-être remplacé par un simple quartz, au détriment de la stabilité en température de la fréquence. |
![]() |
![]() |
Fréquence désirée... (Pourquoi 144MHz? Allez savoir...) | Et fréquence obtenue. Une fois la PLL verrouillée, la précision ne dépend plus que de celle de l'oscillateur 7,2MHz. |
![]() |
Des pistes
courtes pour les signaux VHF (partie en haut à gauche). |
![]() |
La diode
varicap du VCO est alimenté par la combinaison de deux tensions: -une première tension générée classiquement par le comparateur de phase de la PLL après filtre passe-bas -une seconde tension générée par l'ATmega (par intégration d'un signal PWM [modulation à largeur d'impulsion]) afin de centrer en permanence la fenêtre de capture de la PLL sur la fréquence désirée, ce qui permet d'étendre considérablement la plage de fréquences couvertes. La largeur d'impulsion (et donc la valeur de la tension obtenue après filtrage) est directement fonction de la valeur écrite dans le registre "OCR2" de l'ATmega. (à noter en passant que l'obtention de ce signal PWM n'utilise pas d'interruption, et par voie de conséquence ne consomme PAS de temps machine sur le microcontrôleur) Voici la méthode empirique que j'ai utilisée pour obtenir une fonction analytique représentant la valeur de OCR2, fonction mise en œuvre dans le programme de l'ATmega8. (J'ai mesuré les valeurs maximales et minimales admissibles de OCR2 pour quelques fréquences réparties sur la gamme couverte, et j'ai pondu une fonction (en vert) qui entre dans le gabarit obtenu) |
![]() |
![]() |
A noter: Pour
cette réalisation, le récepteur de
télécommande infra-rouge n'est pas
utilise, et peut donc ne pas être câblé. Un connecteur (au pas de 2.54mm) pour relier les ports permet d'utiliser la carte pour tester diverses réalisations. |
![]() |
La carte logique
Sous l'ATmega8 on voit le connecteur de programmation "en-circuit". Le composant noir rectangulaire à droite est le récepteur infra-rouge dédié à la liaison RC5 par télécommande universelle TV. Où trouver l'afficheur 4 lignes 20 caractères? sur Ebay! |
Un bouton rotatif qui permet de faire évoluer la fréquence pas-à-pas et très rapidement, en avant ou en arrière. Les digits ne buttent pas sur les valeurs 0 et 9, la retenue est reportée sur le digit adjacent, on passe par exemple automatiquement de 100,900 à 101,000 MHz... et vice-versa. | |
![]() |
Le "bouton rotatif"
Ce bouton rotatif est un commutateur à résistances
CMS (19
résistances de 3k3 câblées en série),
commutateur récupéré sur un
lave-linge à
programmateur électronique (et servant sur cette machine
à sélectionner
les programmes de lavage). |
![]() |
Détail du commutateur. On peut le remplacer par un commutateur rotatif classique et câbler des résistances classiques (d'ailleurs pour cette application, il est nul besoin de 19 positions, 3 suffiraient pour discriminer le sens de rotation, mais une dizaine ou plus permettent d'obtenir un plus grand confort d'utilisation) en modifiant le soft en conséquence. L'avantage des résistances commutées consiste en l'utilisation d'un seul bit de port en entrée de l'ATmega8 (en utilisant son convertisseur analogique-numérique). |
![]() |
A noter le connecteur qui me permet d'utiliser la carte logique avec d'autres montages. |
![]() |
Le
signal issu directement de l'oscillateur n'est pas
sinusoïdal pur.
Vu à l'oscilloscope la partie montante de la sinusoïde (sur
le drain du
3819) est un peu moins raide que la partie descendante, ce qui se
traduit par des harmoniques 2, 3, 4, 5 etc s'échelonnant de
-10dB en
-10dB , bien visibles à l'analyseur de spectre. C'est tout
à fait
inacceptable pour un géné HF. Il est toutefois très simple de les atténuer fortement sans toucher à la fondamentale car la plage de fréquences couvertes s'étend sur un peu moins d'une octave. (90MHz à 160MHz, avec 160MHz < 180MHz ( 2 fois 90MHz) L'harmonique la plus basse à supprimer étant égale à deux fois la fréquence la plus basse générée, ( 2x90 = 180MHz), il est facile de concevoir un filtre passe bas en PI qui coupe à partir de 170MHz par exemple, ce qui ne touchera pas la fréquence fondamentale la plus haute générée qui est égale à 160MHz. et atténuera fortement TOUTES les harmoniques de TOUTES les fréquences générées. Pour calculer un tel filtre, j'ai utilisé le programme RFSim99 bien connu des radioamateurs. Ci-contre des saisies d'écran de ce logiciel, pour le filtre envisagé ici. Il faut également concevoir un étage séparateur et abaisseur d'impédance pour attaquer le filtre sans perturber l'oscillateur. (avec un transistor BFR93 par exemple). |
Voici le
filtre passe bas précédé de l'étage
séparateur. Les fils de liaison avec la carte PLL doivent êtres aussi courts que possible. Idem pour la liaison de la prise BNC. |
||||||||
![]() |
||||||||
![]() |
||||||||
![]()
Atténuations de l'harmonique h2 mesurées à l'analyseur de spectre:
|
||||||||
J'avais
prévu, comme on le voit sur le circuit imprimé, un
étage à transistor supplémentaire à la
sortie du
filtre, ce qui est une erreur car tout étage à composant
actif utilisé
aux grandes amplitudes crée des harmoniques par sa
non-linéarité. Donc il est préférable de
terminer par le filtre. D'ailleurs dans un émetteur radio, les étages de sortie, pour des raisons de rendement, travaillent en général en classe C (le transistor est polarisé de telle manière que l'angle de conduction soit très faible), ce qui génère bien évidemment un maximum d'harmoniques (on obtient des impulsions de courant, pas des Diracs mais presque, dont la décomposition spectrale est bien connue pour sa richesse en harmoniques), et c'est le filtre de sortie qui permet de n'obtenir que la fréquence fondamentale. |
![]() |
J'ai ajouté cette
petite carte comprenant 5 LED et deux boutons
poussoirs de commande, accessibles sur la face avant du boitier. Les
LED, disposées verticalement, fonctionnent comme celles qu'on
trouve
sur les oscilloscopes, une seule allumée à la fois,
sélection par les
deux boutons (monter, descendre). Elle indiquent le pas de sauts en
fréquence
(10MHz - 1MHz - 100kHz - 50kHz - 25kHz). Du coup il n'y a plus de boutons sur la platine HF (qui n'est pas vraiment leur place). Les LED sont commandées par un compteur décimal décodé CD4017, lié au uC par seulement deux signaux (RAZ et Clock). Les boutons consomment deux autres bits sur le portD, ce qui fait 4 bits, plus 3 pour écrire dans la PLL LM2901, ce qui fait en tout 7 bits. Reste un de libre. Le panneau fonctionne correctement. Le soft est à jour pour la prise en charge de ce panneau. |
![]() |
![]() |
![]() |
Nouvelle vue d'ensemble |
![]() |
Le
signal (F=100MHz) en sortie du filtre. Amplitude = 220mV crête à crête sur 50 ohm. (soit P < 0 dBm) Une jolie sinusoïde me direz-vous? Il ne faut toutefois pas trop s'y fier. Il est normal qu'un oscillo de bande passante 100MHz représente un signal de 100MHz de n'importe quelle forme comme une sinusoïde, étant donné que ce qui donne la forme d'un signal ce sont les harmoniques. Et un oscillo 100MHz ne peut pas afficher les harmoniques de 100MHz dont les fréquences sont 200, 300, 400MHz etc.. (en fait la coupure est progressive, de sorte que H2 est encore visible...) Il faut donc utiliser un autre appareil pour juger de la qualité du signal (on parle de "pureté spectrale"). Nous allons donc nous servir d'un analyseur de spectre 1GHz. |
Voici
une mesure faite (sans rayonner) à l'analyseur de spectre
montrant
l'utilité et
la
nécessité du filtre en sortie.
|
|
![]() |
![]() |
Signal de sortie (100MHz) sans le filtre,
c'est la cata. |
Signal de sortie AVEC le filtre, reste un
petit peu de H2. |
On
notera qu'il serait utile (et nécessaire pour certaines
applications
comme l'émission radio) d'augmenter l'ordre du filtre (ou
d'ajouter des
étages de sortie et un second filtre) afin d'atténuer
d'avantage H2
(réjection par exemple à -60dB au lieu de -40dB). Il y a
des réglementations
à respecter
suivant
les domaines concernés. (Voir la règlementation de l'ART
citée en lien externe). Petite précision: dans un émetteur radio, l'étage de sortie travaille le plus souvent en classe C (brefs pics de conduction du transistor) pour des raisons évidentes de rendement. Des lors le filtre doit être place après cet étage amplificateur et non avant. Dans un générateur de labo, avec de faibles puissances mises en jeu, les choses peuvent être vues différemment (amplis linéaires). Bonne nouvelle: je me suis aperçu que les harmoniques résiduelles à la sortie du filtre ne passaient pas par le filtre mais étaient tout simplement induites en sortie par rayonnement (eh oui, la VHF ce n'est pas de la BF!) En plaçant un blindage en cuivre faisant également plan de masse on obtient une amplitude des H2, H3 et H4 à -30dB pour Fo=160MHz et à -40dB à Fo=100MHz (dB mesurés par rapport à la fondamentale). En utilisant un filtre de Tchebychev strict (moi j'ai utilisé des valeurs des selfs et de capas arrondies), en augmentant l'ordre du filtre et en soignant les blindages (boites fermées, les miens sont "ouverts", justes une surface plane), on doit pouvoir descendre sous les -60dB ce qui devient vraiment sérieux. Je dis "on doit pouvoir" et non on peut, parce que si le calcul d'un filtre, qui est une affaire totalement déterministe permet en théorie d'atténuer une fréquence autant qu'on le désire, les fuites de rayonnement hors des blindages, les pistes de masses difficiles à optimiser, les bouclages par courants dans les plans de masse, créent des résiduelles qui deviennent en fait prépondérantes. Heureusement il y a moyen de savoir par où passent les signaux (ou plutôt par où il ne passent PAS !), tout simplement en ouvrant les circuits du filtre à des endroits judicieusement choisis et en constatant les variations d'amplitude en sortie qui en résultent. C'est comme ça que j'ai vu que les harmoniques contournaient le filtre sans les blindages. Afin de se familiariser avec les filtres passifs, je conseille vivement la consultation et l'étude sérieuse des pages citées en liens externes concernant les filtres de Butterworth, Tchebychev, et elliptique. Cela est tout à fait abordable (et passionnant) avec un niveau BAC+2 (BTS, IUT...) en électronique. C'est d'ailleurs (enfin c'était) au programme, ainsi que les transformées de Laplace, lorsque j'ai eu mon DUT. |
![]() |
![]() |
De
nombreuses informations complémentaires peuvent être
trouvées dans
les commentaires du programme source pour l'ATmega. 12 novembre 2008: Il reste à concevoir un circuit de sortie avec réglage et calibrage de l'amplitude (digital par diodes PIN) et filtrage. La possibilité de moduler le signal serait aussi intéressante afin d'obtenir un générateur exploitable dans une large gamme d'applications. 21 novembre 2008: Le circuit imprimé est terminé, les composants sont soudés. 29 novembre 2008: L'ensemble fonctionne correctement. La réalisation de l'étage de sortie avec filtrage par réseau LC en "PI" est en cours. 30 novembre 2008: J'ai grillé le 3819 (la masse de la sonde de l'oscillo à fait un bouclage à la terre des fuites de mon alim 15V en passant bien entendu par la gate du 3819 ce qui l'a claqué), rien de grave MAIS cela m'a permis de m'apercevoir, lors du remplacement du transistor 2N3819, que l'oscillation n'était pas garantie, en fonction des dispersions de caractéristiques d'un transistor à l'autre. Solution: j'ai ajouté un 22p entre les pins 11 (entrée signal) et 9 (masse) du LM7011, ce qui a pour effet d'augmenter le gain de l'étage en découplant la résistance de drain. Et cette fois l'oscillateur fonctionne avec tous les transistors à ma disposition. 6 décembre 2008: L'étage de sortie comprenant un petit ampli à BFR93A + filtre en PI 160MHz + un étage de sortie séparateur est au point. 12 décembre 2008: L'étage de sortie réalisé en CMS fonctionne correctement. Reste à loger le tout dans un boitier métallique et à publier des photos de l'ensemble ainsi que de l'écran de l'analyseur de spectre. Je vais également apporter quelques améliorations au soft. 14 décembre 2008: Voici un petit dessin du projet de présentation en boitier réalisé avec le logiciel libre Open Office draw: ![]() Les indications sur l'afficheur sont différentes sur les dernières versions... 15 mars 2009: heu.. faut jamais dire "ne saurait tarder", c'est le meilleur moyen de faire tarder les choses, la preuve! En attendant je confirme que l'ensemble des cartes fonctionnent correctement. Il ne reste donc plus qu'à loger le tout dans le boîtier. Pourvu que ça ressemble au dessin! 26 mars 2009: Voilà, la bête est dans la boite. Youpiii, c'est plus beau en vrai que sur le dessin! 13 avril 2009: Je suis en train de réécrire (Linux Ubuntu) le source du programme en langage C avec le logiciel libre KrontrolleurLab. (Voir ma page sur les microcontroleurs ATmega). Le code obtenu sera moitié moins volumineux ( en Pascal, il atteignait les 8ko max de l'ATmega8). Et puis VIVE LE LOGICIEL LIBRE ! Silicium628 Pour me joindre: voir l'Email au bas de la page d'accueil du site. |
|
![]() |
|
|
Partenaires : rencontre target="_blank">vendre un bien immobilier |