Synthétiseur de fréquence fractional-N

publicité
1
Synthétiseur de fréquence fractional-N
Principe
Dans un synthétiseur classique le diviseur est un nombre entier :
Fvco = M fref
avec M entier
Le pas du synthétiseur est égal à la fréquence de référence.
Dans un synthétiseur fractional-N, le diviseur M n’est plus un nombre entier :
M = N + NUM/DEN
où N, NUM et DEN sont des nombres entiers
NUM/DEN est une fraction (nombre rationnel) d’où l’appellation fractional N
La résolution du synthétiseur est donc 1/DEN, bien inférieure à la fréquence de comparaison.
Un tel système peut être implémenté à l’aide d’un compteur capable de diviser par N et N +1.
M = N + NUM/DEN = (N.DEN + NUM)/DEN
On ajoute et retranche N.NUM au numérateur:
M = (N.DEN + NUM + N.NUM – N.NUM)/DEN
M = [(N).(DEN-NUM) + (N+1).NUM]/DEN
Exemple
Fvco = 1152 MHz
Fref = 10 MHz
Dans ce cas N=115
NUM=2
M = 115,2 = 115 + 2/10
DEN=10
ce qui peut être réalisé si l’on dispose d’un compteur capable de diviser par 115 et 116
Fvco = Fref . [(N).(DEN-NUM) + (N+1).NUM]/DEN
Fvco = 10 .(115. (10-2) + 116.2)/10 = 920 + 232 = 1152
Le pas du synthétiseur est maintenant de 1 MHz alors que la fréquence de référence est de 10
MHz.
F6CSX
Synthétiseur fractional N
Version1 - janvier 2011
2
Cas réel : l’ADF4157
Dans l’exemple précédent, nous avons raisonné dans notre bon vieux système de numération
en base 10. Dans les applications réelles, il va falloir transposer en binaire.
Prenons le cas de l’ADF4157 qui est l’un des circuits les plus évolués aujourd’hui.
Fvco = Fref (N + FRAC/MOD)
N est la partie entière du diviseur, sur 12 bits
MOD est la valeur maximale du diviseur (Modulus) et vaut ici 2 25
FRAC est la partie fractionnaire (en fait le numérateur de la fraction) sur 25 bits.
La résolution du synthétiseur, c'est-à-dire la plus petite variation de la fréquence de sortie
(quand on incrémente FRAC d’une unité) est :
Résolution = Fref/MOD = Fref/2 25
Par exemple pour une fréquence de référence de 10 MHz, la résolution est de 0,298 Hz.
Il faut noter que la fréquence réelle du VCO sera toujours une valeur approchée (à mieux que
la résolution) de la fréquence désirée.
La valeur FRAC, codée sur 25 bits, est en fait programmée dans deux registres de 12 et 13
bits.
FRAC = FMSB . 2 13 + F LSB = FMSB . 8192 + F LSB
FMSB représente les 12 bits de poids forts
FLSB représente les 13 bits de poids faibles.
En définitive, nous avons donc :
Fvco = Fref (N + (FMSB . 2 13 + F LSB)/ 2 25 ) = Fref (N + FMSB / 2 12 + F LSB/ 2 25)
Soit
Fvco /Fref = (N + FMSB / 2 12 + F LSB/ 2 25)
On effectue la division euclidienne de Fvco par Fref.
La partie entière (quotient) est égale à N
On multiplie ensuite le reste de la division précédente par le module (2 25 ).
Cette opération ne tombe pas juste et il faut en prendre la partie entière (arrondie pour
minimiser l’erreur). On obtient ainsi la valeur de FRAC.
En effectuant une division euclidienne de FRAC par 8192 on obtient FMSB et F LSB
FMSB = Partie entière de la division de FRAC par 8192
FLSB = Partie entière du reste de la division précédente multiplié par 8192
F6CSX
Synthétiseur fractional N
Version1 - janvier 2011
3
Ces calculs sont facilement automatisables dans une feuille de calcul Excel.
Exemple
On veut Fvco = 5760,2 MHz avec une fréquence de référence de 10 MHz.
Fvco/Fref = 576,02 = 576 + 0,02
N= partie entière = 576
Reste = 0,02
FRAC = 0,02 x 2 25 = 671088,64 On arrondi cette valeur au nombre entier le plus proche
FRAC = 671089
On calcule ensuite les valeurs de FMSB et FLSB
FRAC/8192 = 671089/8192 = 81,92004394531
FMSB = partie entière = 81 soit $51 (en hexadécimal)
FLSB = 0,92004394531 x 8192 = 7537 soit $1D71 (en hexadécimal)
Calculons la fréquence réelle du VCO
Fvco = Fref (N + FRAC/MOD) = 10 (81 + 671089/ 2 25 ) = 5 760,200 000 11
L’erreur est de 0,11Hz
F6CSX
Synthétiseur fractional N
Version1 - janvier 2011
Téléchargement