Générateur BF à base d'XR2206

From Eric

Jump to: navigation, search

Contents

Objectifs

Réaliser un générateur BF à l'aide du merveilleux petit XR2206-qui-fait-tout.

Ce montage est dans la lignée du générateur de fonctions à base d'EPROM, du générateur BF à PLL, à base de PIC 16F628A et du Générateur de fréquence à base de DDS AD9850. Un sujet inépuisable...

Réalisation

Ce générateur est une très légère adaptation de la note d'application TAN-005 d'Exar. J'y ai simplement rajouté un ampli op de puissance et un affichage numérique de la fréquence...

Voici la carte une fois achevée, sans et avec la face avant.

Genebf xr2206 board.jpg


Genebf xr2206 buttons.jpg

Et voici le montage une fois achevé, dans sa boite :

Gene xr2206 final.jpg

La génération de fréquence à base de XR2206

Pour l'essentiel, le montage reprend celui donné par EXAR dans sa note d'application (voir ci-après). Je n'y ai apporté que de mineures modifications, indiquées en rouge sur la figure.

Genebf xr2206 schema.jpg

L'alimentation est réalisée par un transformateur 220V/9V, un couple 7806/7906 et leurs capacités de lissage.

Genebf xr2206 alim.jpg

La sortie de l'XR2206 est amplifiée au moyen d'un ampli op de puissance (0.7A) L272 :

Genebf xr2206 ampli.jpg

A noter que le choix de cet amplificateur opérationnel n'est pas très heureux car sa bande passante est faible. Le signal en sortie de l'ampli-op est très bruité dès que la fréquence croît significativement. Il aurait fallu utiliser un ampli-op type AD818, AD811...

L'affichage de la fréquence

L'affichage de la fréquence est réalisée au moyend 'un PIC 16F628 et d'un petit écran LCD type 44780 :

Genebf xr2206 cpu.jpg

L'XR2206 génère un signal rectangulaire de période égale à celle de la sinusoïde sur sa broche 11. Ce signal est en collecteur ouvert (porté à VSS lorsqu'il est actif et en l'air sinon). Dans notre montage, ce signal est polarisé à +5V via une résistance de 10K. On utilise une diode et une résistance supplémentaire avant d'attaquer le PIC16F628, de sorte que le signal varie alors entre OV et VDD-0.6V, environ. Le schéma est donné ci-après.

Genebf xr2206 rect.jpg

Les valeurs de résistances indiquées sur le schéma précédent se sont avérées trop fortes. Voici la forme du signal pour une période d'environ 120us (la courbe du bas représente le signal en sortie du générateur, la courbe du haut représente le signal en entrée du PIC).

Genebf xr2206 signal freq.jpg

On s'aperçoit déjà que le signal a une forme d'exponentielle dans sa partie descendante.

Cet effet est encore plus visible sur les images suivantes :

Genebf xr2206 signal freq exp1.jpg
Genebf xr2206 signal freq exp3.jpg

Enfin, si la fréquence devient trop importante, le signal n'atteint jamais la valeur logique 0 : l'indication de fréquence s'effondre et affiche une valeur erronée.

Genebf xr2206 signal freq exp2.jpg

Le dispositif utilisé pour ramener le signal de fréquence de [+5.0V, -6.0V] à [+5V, 0V] se comporte comme un filtre. En effet, la diode présente une capacité non négligeable (de l'ordre de 1pF pour une 1N4148). Par ailleurs, le niveau haut du signal se trouve à (5-0.6)V du fait de la diode.

En observant la courbe et en connaissant la valeur des résistances, on peut tenter d'évaluer la capacitance. Les détails du calcul (niveau lycée) sont donnés ci-après.

Genebf xr2206 signal freq calculs.jpg

Afin d'améliorer le comportement du dispositif, il convient de réduire la valeur de la résistance de mise à la masse (100K => 27K). Il faut alors impérativement réduire aussi la valeur de la résistance de mise à VCC de façon à assurer que les niveaux hauts seront bien perçus par le PIC (10K => 4.7K).

Le signal rectangulaire issu du XR2206 est connecté à la broche T1CK (clock timer 1). Ainsi, le compteur du timer n°1 est incrémenté à chaque front montant du signal, donc à chaque nouvelle période du signal de sortie sinusoïdal ou triangulaire.

Pour mesurer la fréquence, on adopte la solution suivante :

  • Les impulsions rectangulaires issues de l'XR sont comptabilisées par le compteur sur 16 bits du timer 1 du PIC
  • La valeur du compteur est relevée toutes les 2x65.536ms et mémorisée dans une FIFO de 16 entrées de 16 bits. La période est choisie afin d'éviter le débordement du compteur lorsque la fréquence est maximale (inférieure à 200KHz).
  • La valeur de la fréquence est mise à jour à chaque fois qu'une nouvelle valeur du compteur est mémorisée : on ajoute à la variable qui contient à fréquence la dernière valeur mesurée (en tête de FIFO) et on retranche à valeur en queue de FIFO, ce qui conduit à mesurer la fréquence sur une période glissante de 16 cycles. De cette manière, on dispose d'une valeur de fréquence mise à jour aussi fréquemment que possible, et qui couvre néanmoins une durée asse longue pour pouvoir mesurer des fréquences très faibles...
  • La période de 2x65.536ms est obtenue grâce au timer 2 du PIC. Le pré-diviseur est positionné à 16, le post-diviseur est positionné à 16 (=15+1), la valeur de comparaison est positionnée à 255 (ce qui correspond à une division par 256). La fréquence finale est donc à peu près égale à (4 Mhz / 4) / (16*16*256).
  • Afin d'améliorer un peu la précision à très faible fréquence (quelques dizaines de Hz), cette fréquence est à nouveau divisée par 2 (valeur configurable).
  • Périodiquement, la routine d'affichage récupère la valeur du compteur sur 32bits, y applique un coefficient de correction (qui prend en compte le fait que le comptage s'effectue sur une durée égale à 16*2*65.526ms= 2.097s) et l'affiche.

Conclusions et leçons

Inutile d'acheter ce que l'on peut très facilement faire soi-même...

Personal tools