VFO Stabilizer

Chi ha provato almeno una volta a realizzare un VFO si sarà reso conto delle difficoltà incontrate nell’adottare metodi tecnici e costruttivi atti a stabilizzare la frequenza generata.

Robustezza della costruzione, ricerca della componentistica adatta, condensatori variabili di buona qualità, condensatori NPO, N750, stabilizzazioni termiche, cotture e alchimie varie su induttanze e condensatori del circuito LC portano a realizzazioni con una deriva in frequenza contenuta in qualche centinaia di Hz l’ora. Chi non si accontenta di tale stabilità. ricorre alla realizzazione di oscillatori ad aggancio di fase (PLL) o alla sintesi di frequenza (DDS) con conseguente aumento della complessità circuitale.

Il principio di funzionamento del circuito che presento non è farina del mio sacco (vds bibliografia) ed è un metodo per compensare la deriva in frequenza di VFO.

Si tratta di un circuito che legge continuamente la frequenza generata dal VFO, la compara con quella letta precedentemente e genera una tensione a rampa applicata a un varicap atta a eliminare le eventuali diversità di lettura; se la frequenza letta è minore di quella letta precedentemente, verrà generata una rampa crescente in modo da aumentare la frequenza generata dal VFO e viceversa.

La bontà di stabilizzazione dipende dalla deriva in frequenza del VFO, dalla periodo di lettura del circuito stabilizzatore e dalla precisione della lettura effettuata.

In pratica, la frequenza generata varia in più e in meno intorno a un punto e l’entità di questa variazione dipende dalla stabilità intrinseca del VFO costruito.

Minore sarà la deriva in frequenza in termini di Hz al secondo del VFO da stabilizzare e minore sarà l’entità di variazione intorno al punto di stabilizzazione.

Con derive in frequenza di qualche Hz al secondo è possibile utilizzare periodi di lettura intorno al secondo, con derive di frequenza di decine di Hz al secondo bisognerà utilizzare periodi di lettura di 0.5 sec o meno.

Il circuito si basa sul famoso PIC 16F84 costruito dalla Microchip Technology Inc.; il suo utilizzo nel mondo SAT ha portato alla nascita di numerosi programmi freeware per la sua programmazione e ad altrettanti numerosi circuiti programmatori oggi disponibili a poche decine di euro.

Si tratta di un Microcontroller a 8 bit (figura 1) avente le seguenti caratteristiche:

Fig. 1

External RB0/INT pin

TMR0 timer overflow

PORTB<7:4> interrupt on change

Data EEPROM write complete

La cosa interessante da sapere e su cui si basano molti progetti che usano il 16F84 e che il prescaler interno a 8 bit accetta impulsi in ingresso fino a circa 40 Mhz. Sfruttando questa caratteristica e quindi possibile realizzare contatori di frequenza con l’aggiunta di pochi componenti esterni ed è lo scopo primario per il quale è stata utilizzato il PIC nel VFO Stabilizer.

Il circuito

Figura 2

Nella figura 2 è visibile lo schema del circuito stabilizzatore; la frequenza proveniente dal vfo è applicata sulla base del transistor Q2 utilizzato come stadio amplificatore e quindi sui pin RA4 e RA3 del 16F84. Il pin RA4, tramite comandi software, viene direttamente connesso al prescaler interno settato con un fattore di divisione pari a 256. Ogni volta che il prescaler raggiunge il massimo conteggio viene incrementato un registro interno chiamato TMR0. Il prescaler, il registro TMR0 e un’altra locazione di memoria utilizzata temporaneamente, vengono utilizzati per memorizzare la frequenza in ingresso.

Il pin RA0 viene utilizzato come uscita e si trova a livello logico basso se la frequenza letta è minore della lettura effettuata nel periodo di conteggio precedente, a livello logico alto se la frequenza letta è maggiore e in alta impedenza nel caso che le due letture sono uguali.

L’operazionale IC2 insieme a R6 e C6 formano un integratore con costante di tempo di 100 secondi; la tensione a rampa di correzione è disponibile sull’uscita JP1. L’integrato IC3, un 78L05, viene utilizzato per ottenere i 5 V necessari al funzionamento del 16F84, mentre l’operazionale IC2 viene alimentato a 12 V per avere una maggiore escursione della rampa di tensione in uscita. Per avere un riscontro visivo del funzionamento dello stabilizzatore ho utilizzato 2 LED (Led1 e Led2) che si accendono rispettivamente nel caso di rampa positiva o negativa. Nel caso di non intervento dello stabilizzatore (frequenze uguali), i due LED si accendono contemporaneamente. La precisione della lettura viene assicurata utilizzando come oscillatore del 16F84 un quarzo a 4Mhz.

 

Elenco componenti

Part

Valore

C1

22n ceramico

C2 , C7

100n poliestere

C3 , C4

27p ceramico

C5 , C8

10uF elettrolitico 25 VL

C6

1 uF poliestere

D1 , D2

1N4148

IC1

PIC16F84AP

IC2

CA3140N

IC3

78L05

Q1

Quarzo 4 MHz

Q2

2N2222A

R1

100 ohm ¼ W

R2 ,R5

470 ohm ¼ W

R3 , R7

10 kohm ¼ W

R4

47 kohm ¼ W

R6

100 Mohm ¼ W (5 X 20 Mohm)

R8

1 Mohm ¼ W

R9 , R10

270 ohm ¼ W

Il VFO

Fig. 3

Nella figura 3 è rappresentato lo schema di un VFO a 2 FET dove il primo è un oscillatore in configurazione Colpitts e il secondo è un buffer separatore. La tensione di correzione è applicata tramite R9 al diodo varicap D2. Il compensatore C1 è realizzato attorcigliando due fili isolati lunghi 3 o 4 centimetri. In fase di taratura la lunghezza dei due fili verrà poi accorciata per ottenere circa 3KHz di deviazione di frequenza con JP2 collegato prima a 0 Volt e poi a 12Volt. Il valori di C3,L1, C4 e C5 dipendono dalla frequenza del VFO. C4 e C5, per semplicità di valore uguale, avranno valore di circa 1000pF per frequenze intorno ai 2,5 MHz, 500 pF per frequenze intorno ai 5 MHz e 250pF per frequenze intorno ai 10 MHz. I valori di C3 e L1 vanno trovati sperimentalmente. A titolo puramente indicativo, 12 spire in aria avvolte su un supporto di un centimetro per L1 e una capacità totale per C3 intorno ai 200 pF fanno oscillare il circuito a 8,8 MHz.

 

Il Software e il programmatore per il PIC 16F84

Il programma del VFO Stabilizer è formato da 4 routine: start, positivo, negativo e count. Nella routine start vengono inizializzate le porte di I/O, caricato il valore 0x5 (cinque in decimale) nel registro delta e caricato il valore 0x64 (corrispondente ad un periodo di lettura pari a 0,5 sec) nel registro gate. Il periodo di lettura insieme al valore del registro delta determinano il range di intervento del circuito che è pari a : range = delta * 1 / Periodo lettura. Con i valori indicati si ottiene quindi un range di intervento pari a 10Hz e ciò significa che il circuito tra una lettura e la successiva cercherà di intervenire su differenze che non superino i 10 Hz in positivo o in negativo rispetto alla lettura precedente. Così facendo sarà possibile variare la frequenza del VFO senza che il circuito tenti di stabilizzarla. Da notare che affinché la compensazione abbia successo, la tensione applicata al varicap del VFO deve essere in grado di correggere almeno 5 Hz (1,5 volte il valore di delta per essere sicuri) nel periodo di lettura (0,5 sec). Questo vuol dire che la tensione a rampa dovrà variare la frequenza del VFO di un valore pari a df = range * 1,5 * T * 1 / P dove T è la costante di tempo dell’integratore e P è la durata della lettura; con i valori dati si ha 3 KHz.

La routine count si occupa di contare gli impulsi in arrivo sull’ingresso RA4 e di memorizzarli nei registri cnt1, cnt2 e cnt3. I vari NOP utilizzati sono necessari affinché il periodo di lettura non cambi qualsiasi sia il ramo di programma che viene eseguito. Siccome non è possibile leggere il contenuto del prescaler, trascorso il periodo di lettura, il pin RA3 (connesso direttamente a RA4) viene commutato da pin di ingresso (alta impedenza) a pin di uscita; vengono simulati degli impulsi e controllata la variazione di stato del registro TMR0. A variazione avvenuta, il conteggio degli impulsi inviati da indirettamente il valore del prescaler.

Le routine positivo e negativo si occupano di verificare se le frequenze lette sono nel range impostato nel registro delta e quindi di pilotare correttamente l’integratore.

Utilizzando un PIC come circuito della compensazione della deriva in frequenza di un VFO è possibile variare i parametri del programma adattandolo alle proprie esigenze in base alle caratteristiche di stabilità del VFO che si ha a disposizione.

Sul sito della Microchip è possibile scaricare un ambiente di sviluppo completo per quasi tutti i microcontroller forniti; chi non fosse interessato può scaricare solo l’assemblatore MPASM con il quale sarà possibile variare i parametri e compilare il sorgente.

Nelle figure 4,5 e 6 sono visibili lo schema, il circuito stampato e il piano componenti di un programmatore seriale per PIC 16F84 che utilizzo ormai da anni.

La costruzione è semplicissima e, date le correnti in gioco, non c’è nessun pericolo ne per il PIC ne per la porta seriale del PC. La resistenza R1 e lo Zener D2 abbassano la tensione proveniente dalla porta seriale del PC ai valori consentiti per il PIC. Per quello che riguarda la programmazione del PIC, in rete sono disponibili decine di software sia in ambiente DOS che Windows utilizzabili con il programmatore seriale proposto; io consiglio ICPROG.

Fig. 5 Circuito stampato 1:1 lato rame del programmatore PIC 16F84

Fig. 6 Circuito stampato lato componenti del programmatore PIC 16F84

Realizzazione Pratica

In figura 7 e in figura 8 sono raffigurati il disegno in scala 1:1 del circuito stampato e del relativo piano componenti dello stabilizzatore. Non avendo molto tempo a disposizione non ho elaborato molto lo stesso e quindi la basetta è molto più grande rispetto all’ingombro dei componenti utilizzati. In una mia realizzazione su basetta millefori sono riuscito ad ottenere delle dimensioni molto contenute. La resistenza R6 da 100 Mohm è ottenuta tramite una serie di 5 resistenze da 20 Mohm

Fig 7 Circuito stampato 1:1 lato rame del VFO Stabilizer

Fig. 8 Circuito stampato lato componenti del VFO Stabilizer

Particolare attenzione deve essere posta, una volta realizzato il circuito, alla schermatura dello stesso, montandolo all’interno di un contenitore metallico di idonee dimensioni.

Per quanto riguarda il VFO in figura x,x è visibile il circuito stampato lato rame e lato componenti. Nel circuito non sono inseriti i componenti necessari per la messa in gamma del VFO in quanto nella mia realizzazione sono stati aggiunti dopo. Infatti con una costruzione del VFO ridotta all’osso sarà più facile controllare e correggere la deriva termica. Collegato il frequenzimetro e scaldando il circuito, ad esempio avvicinando la punta del saldatore, si può limitare la deriva in frequenza con l’aggiunta o sostituzione di condensatori con coefficiente di temperatura positivo o negativo. Si raccomanda l’utilizzo di componenti di buona qualità specialmente per quello che riguarda C3,L1, C4 e C5. L’induttanza L1 deve essere avvolta in aria o su supporto in ceramica o eventualmente su toroidi AMIDON (indicare tipo) e fissata stabilmente allo stampato. Il condensatore variabile C3 (raffigurato sul piano componenti solo per comodità durante la progettazione con il CAD) e bene che sia in aria con contatti striscianti e cuscinetti e collegato allo stampato con due rigidi spezzoni di filo.

Fig. 9 Circuito stampato 1:1 lato rame del VFO

Fig. 10 Circuito stampato lato componenti del VFO

Conclusioni e Migliorie

Non sono un programmatore professionista ma autodidatta e probabilmente alcune routine del VFO stabilizer possono essere migliorate e/o unificate come ad esempio le routine positivo e negativo. Tra le migliorie che si possono fare c’è quella di utilizzare un uscita del PIC per azzerare l’integratore e riportare la tensione in uscita ai 2,5 Volt iniziali quando la differenza tra valore letto e quello letto precedentemente supera il valore fissato dal registro delta.

Chi ha tempo puo’ utilizzare un Led driver come ad esempio il GM6486 per pilotare dei display a 7 segmenti, modificare il programma e ottenere un valido frequenzimetro.

Per eventuali chiarimenti potete scrivermi via EMAIL al seguente indirizzo lmike@tiscali.it .

73 and best DX de IK0LCA

Bibliografia

Microchip Technology Inc http://www.microchip.com (AN689,MPASM,PIC 16F84)

Ham Radio magazine, 1977 FLL by PA0KSB