PLL CON LMX1501AM



L'integrato LMX1501AM come il TSA6057, trattato nella pagina precedente, è vecchio ma ancora facile da reperire. E' un PLL come il TSA6057 ma a dispetto di quest'ultimo è capriccioso, anche se ha funzionato al primo colpo appena fornita l'alimentazione non ha dato eccellenti risultati, ha mostrato difficoltà ad agganciarsi e disponibilità a sganciarsi al primo disturbo (ad esempio al semplice spegnimento della luce del laboratorio). Questo integrato si sente "la prima donna", vuole che le piste che collegano il filtro al VCO e quelle che da quest'ultimo partono per fornire il segnale al pin FIN siano corte, vuole che il VCO non usi un transistor con FT troppo alta, è allergico in maniera eccessiva alle armoniche del segnale in uscita dal VCO, non lavora bene con bassi guadagni di quest'ultimo, adora masse estese soprattutto sotto la sua pancia, vorrebbe che la scheda sia a doppia faccia e in questo non l'ho potuto accontentare perché non ne possedevo. Insomma non è in integrato che può essere usato in campo hobbistico, il principino si trova a suo agio   a livelli più professionali con VCO ad alto guadagno e componenti passivi SMD.
Qui sotto la scheda fatta a mano (il quarto prototipo) e di seguito lo schema elettrico e una istantanea del segnale su TinySa:







La formula per impostare i divisori è piuttosto semplice:

FVCO = [(P * B) + A] * FOSC/R

dove:

FVCO = Frequenza in uscita al VCO
P = prescaler
B = contatore a 11 bit
A = contatore swallow (A deve essere < o =  B)
FOSC = frequenza dell 'oscillatore di riferimento
R = contatore a 14 bit (step)

Ma facciamo un esempio.

FVCO = 66MHz
FOSC = 1MHz
step = 25KHz

R = FOSC / step = 1MHz / 25KHz = 40  in binario 101000 (i 7 bit in rosso nel registro R_P nello sketch di Arduino)

Posso scegliere P tra due valori o 64 o 128 (posso decidere a caso e cambiare la scelta se risulta A < B)

Per P = 64 il bit 15 nel registro R_P deve essere posto a 1 (in blu nel registro R_P nello sketch di Arduino)

[(P * B) + A] = FVCO / step = 66MHz / 25KHz = 2640

Frazionario = [(P * B) + A] / P = 2640 / 64 = 41.25

da cui

B = 41 in binario 101001 (gli 11 bit in verde nel registro N nello sketch di Arduino)

A =  [(P * B) + A]  MOD P = 2640 MOD 64 = 16 in binario 10000 (i 7 bit in celeste nel registro N nello sketch di Arduino)

(A è il resto (o modulo) di una divisione) dato che A è minore di B la scelta del prescaler è giusta.

Per ultimo, il bit zero del registro R_P deve essere sempre a 1 (bit zero in arancione nel registro R_P nello sketch di Arduino), il bit zero del registro N deve essere sempre a zero (bit zero in viola nel registro N nello sketch di Arduino).


Per il dimensionamento dei componenti che compongono il filtro consiglio, per evitare mal di testa, di usare il seguente calcolatore on line:

https://www.changpuak.ch/electronics/pll_loopfilter_calc.php#

Qui il programma.

Fabio

HOME