DDS - PRESENTATION (suite)






5. LA COMMANDE DE LA FREQUENCE :

Bien évidemment, disposer d’une seule fréquence présente peu d’intérêt, la commande de variation de la fréquence doit donc pouvoir être faite manuellement par l’utilisateur et à sa guise. Cette variation de fréquence se caractérise par trois paramètres :

5.1. La plage ou les plages de fréquences à couvrir :

Dans l’hypothèse d’un VFO, cette plage pourra par exemple être limitée de 5.0 à 5.5 MHz.
Dans l’hypothèse d’un générateur HF, cette plage sera beaucoup plus importante :#0 à 40 MHz par exemple.
Dans la dernière hypothèse de l’oscillateur local d’un récepteur OM, il faudra considérer une excursion de fréquence de 500 kHz par bande, soit 9 plages (voire plus).

5.2. Le pas

C’est la variation de fréquence par « tour de bouton ». Plus précisément, c’est la valeur de l’incrément unitaire de fréquence.
Cet incrément dépendra de l’utilisation du DDS et pour un VFO par exemple, la tentation sera grande de viser un incrément très faible. Une valeur de 1Hz semble souvent paraître idéale.
A ce stade, il faudra prendre en compte les conséquences d’un tel choix ; en effet, une excursion de 1kHz (ce qui est peu), impliquera 1000 chargements du DDS en quelques secondes ou millisecondes ! On voit qu’alors le microcontrôleur aura fort à faire et il n’est pas certain qu’il puisse assumer cette lourde tâche en si peu de temps.
On le constate quelques fois sur certains équipements ou le vernier fréquence semble « patiner » lorsqu’il est rapidement actionné (vérifiez sur votre transceiver…. !) conséquence : il faudra trouver le compromis qui satisfasse l’utilisateur tout en conservant une marge au microcontrôleur. Dans la pratique, un pas de 10Hz est généralement considéré comme « standard » et à cette valeur d’incrément, la note d’un signal CW est réglée sans discontinuité à l’oreille.
Le corollaire d’une faible valeur de pas est l’excursion de larges plages de fréquences.
Si l’on considère un pas de 10 Hz et 20 pas par tour de bouton, soit 200Hz par tour, 2500 tours de bouton seront nécessaires pour balayer une plage de 500 kHz…. ! C’est beaucoup.
Dans ce cas, il sera préférable de passer à une valeur supérieure du pas : 100 Hz, 1kHz, voire 10kHz.

5.3. La préselection :

Elle devient nécessaire pour couvrir des plages de fréquences faibles, éloignées les unes des autres ; c’est typiquement le besoin d’un oscillateur local couvrant les 100 à 500 kHz des bandes amateurs (3.5 à 3.8, 7 à 7.1 etc…).
Dans ce cas, il sera judicieux de pouvoir caler le début de l’excursion en début de bande afin de ne pas avoir à balayer les inter-plages.
Il pourra en être de même pour un générateur HF destiné au réglage d’un récepteur couvrant les seules bandes amateurs.
On voit donc qu’en plus de la commande de la fréquence proprement dite, deux
commandes seront nécessaires : pas et bandes. Des boutons poussoirs rempliront
parfaitement cette fonction et feront appel aux interruptions du PIC.

6. MESURE OU GENERATION DE LA FREQUENCE ?

De prime abord, on pourrait opter pour une mesure de la fréquence issue du DDS et son affichage direct. C’est la solution utilisée jadis lors de l’apparition des premiers VFO digitaux.
Elle nécessite la mise en œuvre d’un compteur / fréquencemètre, pas obligatoirement évidente à implanter dans le microcontrôleur ou à part.
Il est aussi possible de fonctionner en aveugle : on se cale sur une fréquence initiale et ensuite on compte le nombre de pas envoyés au DDS. Il suffit d’incrémenter simultanément la valeur de l’affichage du pas courant.
Cette solution (que j’ai utilisée) à un inconvénient majeur : celle d’être inexacte. En effet, le pas DDS n’est jamais un nombre entier (rappelez-vous la formule). Par contre, l’incrémentation de l’afficheur est toujours une valeur entière (un digit). Aussi, après un certain nombre de pas, il s’introduit un décalage entre la fréquence issue du DDS et celle affichée et ceci proportionnellement au nombre de pas effectués depuis la fréquence de départ. La différence peut ne pas être très importante mais elle s’avère gênante car la fréquence affichée n’est jamais exacte….
La solution est de prendre le problème à l’envers ! On affiche d’abord la fréquence puis on la convertit en valeurs DDS.
Ce n’est pas vraiment compliqué car il suffit alors de prendre le poids individuel de chaque digit (10Hz, 100Hz, 1kHZ …) et de le multiplier par la valeur affichée.
Le poids de chaque digit sera initialisé une fois pour toute en fonction de l’horloge DDS.
Pour une horloge à 125 MHz on aura par exemple :

10Hz 01 58

100Hz 0D 6C

1kHZ 86 37

10Khz 05 3E 29

100kHz 34 6D 9C

1MHz 02 0C 48 13

10MHz 14 7A D0 BF

En supposant que la fréquence lue sur l’afficheur soit de 14 001.73 kHz, la formule suivante fournit les 4 octets nécessaires au DDS :

3(01 58)+7(0D 6C)+(86 37)+4(02 0C 48 13)+(14 7A D0 BF)

Cette opération sur 32 bits n’est pas des plus simples avec un microcontrôleur 8 bits mais on y arrive !
A ce stade, on a donc généré un signal DDS égal à la fréquence affichée et ce n’est déjà pas si mal. Pour un générateur HF c’est suffisant, pour un oscillateur local ou un VFO, ce n'est pas terminé...
Eh oui, la fréquence de l’oscillateur local ou du VFO n’est jamais égale à la fréquence à recevoir…(sauf pour la conversion directe). Il va donc être nécessaire de décaler la fréquence du DDS d’une « certaine » valeur…

Calcul de la valeur de décalage (Offset)

On prendra pour exemple une FI à 5645 kHz. Dans ce cas, la fréquence de l’oscillateur local générée par le DDS pourra être supérieure ou inférieure de 5645 kHz à la fréquence affichée.
Il suffit alors de soustraire ou d’ajouter la valeur 5645 kHz (BE 91 8F 0B) à la valeur afficheur avant de la charger dans le DDS. En réalité….ce n’est pas si simple car il faudra tenir compte de la bande latérale utilisée !
Dans l’utilisation d’un filtre FI unique, la réception de l’une ou l’autre des bandes latérales s’effectue par changement de la fréquence du BFO, fréquence que l’on place de part et d’autre des fréquences de coupures du filtres. Il en résulte un décalage qui se traduisait jadis par la présence de deux repères distincts sur le vernier des fréquences.
Si l’on souhaite conserver un affichage exacte de la fréquence générée par le DDS, il est donc nécessaire de se décaler en fonction de la bande latérale reçue. En fait, « c’est
comme si » la fréquence du filtre FI changeait.
Pour l’exemple considéré, on trouve 5645 kHz pour USB et 5642.060 kHz pour LSB.
Ces deux valeurs seront donc additionnées ou soustraites avant chargement du DDS.

Dans l’hypothèse d’un second changement de fréquence, le principe est identique, seul un oscillateur fixe supplémentaire pour descendre de la première à la seconde FI est nécessaire.
Par contre, le décalage reste le même.

A l’issue des opérations détaillées précédemment, on dispose d’un VFO dont, la fréquence affichée est égale à la fréquence générée plus ou moins les fréquences BFO (et inversement) quelque soit la bande latérale utilisée.
Autant dire que le plus gros est fait…. !
Sans le décalage FI on dispose d’un oscillateur pour récepteur à conversion directe ou encore d’un générateur HF, sachant que seule la programmation du microcontrôleur est à adapter en fonction du besoin. Cette programmation pourra être également adaptée à la fréquence FI utilisée (10 .7 MHz, 9MHz, 4.9 MHz, 455 kHz..) pour ne citer que les plus courantes, toutes les valeurs pouvant évidemment être prise en compte. A ce propos, il faudra cependant prendre en compte les limites du DDS annoncées précédemment, à savoir que la fréquence de sortie maximale sera égale à F Horloge /3, soit 40 MHz pour une horloge à 125 MHz.
On s’aperçoit alors que l’utilisation d’une FI à 10.7 MHz amène le DDS à 40 MHz pour la bande 10 mètres. Si la bande 50 MHz était visée, il faudrait préférer le mélange soustractif (50-10.7) afin de rester à l’intérieur de la plage de fréquence « utile » du DDS.

Limitation des DDS
Retour






 
© 2002 f6blk.net - f4auo