Generatore di frequenza variabile



 

Introduzione

Il progetto presentato in queste pagine e' un semplice generatore di frequenza utilizzando il versatile microcontrollore a 8 bit della famiglia 10F322 prodotto dalla Microchip. Mediante un pulsante e' possibile scegliere un valore di frequenza tra quelli disponibili. Il segnale di uscita e' un segnale di onda quadra con duty cycle al 50% e con ampiezza pari al valore della tensione di alimentazione del micro che può variare tra 1,8v fino a 5,5V. Le applicazioni di questo semplice progetto sono tanti: oscillatore di riferimento per PLL, generatore di portante , etc

Idea di base

Si parte dal funzionamento del blocco oscillatore interno che genera diverse frequenze e dalla possibilità di portarle fuori su un pin il segnale generato. In figura e' rappresentato lo schema a blocchi del modulo oscillatore del micro in questione.

Come si può vedere ci sono due oscillatori: uno HFINTOSC ad alta frequenza che genera un segnale a 16MHz e un oscillatore a bassa frequenza LFINTOSC a 31 kHz. L'uscita dell'oscillatore HFINTOSC e' a sua volta diviso dando origine a diverse frequenze: 16 MHz, 8 MHz, 4 MHz, 2 MHz, 1 MHz, 500 kHz, 250 kHz. Queste uscite assieme alla uscita del l'oscillatore LFINTOSC sono instradate da un multiplexer controllato da apposito registro per diventare il clock di sistema, Un secondo multiplexer, controllato dal bit di configurazione FOSC, permettere di scegliere come clock di sistema il clock uscente dal primo mux o il clock proveniente dall'esterno applicato al pin CLKIN. Infine il clock di sistema selezionato, diviso per 4, può essere buttato fuori sul pin dedicato (CLKR) settando il bit CLKROE. Dall'analisi del circuito dell'oscillatore possiamo pensare di realizzare un generatore di segnale ad onda quadra a frequenza variabile attivando il percorso che porta il clock/4 di sistema e implementando un rouitne che fa capo ad un pulsante per scegliere quale delle frequenze internamente generate deve essere buttato fuori.

Caratteristiche del segnale

Come accennato il segnale generato in uscita e' un segnale ad onda quadra con duty cycle al 50% e con ampiezza pari al valore della tensione di alimentazione del micro che può variare tra 3.3V fino a 5,5V mentre per la versione LF del micro può variare da 1,8V a 5,5V. La stabilita della frequenza dell'oscillatore al variare della temperatura e della tensione e' la stessa stabilita dell'oscillatore garantita nel datasheet e la precisione della frequenza e' garantita dalla taratura di fabbrica dell'oscillatore. I valori selezionabili sono: 4 MHz, 2 MHz, 1 MHz, 500 kHz, 250 kHz,125 kHz, 62,5 kHz, 8kHz