Il mio frequenzimetro? In kit

Il frequenzimetro è uno strumento che non può mancare in un laboratorio degno di tale nome. Molti pensano che disporre di un oscilloscopio digitale significhi poter fare a meno di questo strumento, visto che nelle varie misure è prevista anche la lettura della frequenza dei segnali ma, a meno che non si parli di un DSO professionale del costo di svariate migliaia di euro, non riusciremo mai ad avere la stessa precisione e risoluzione di un frequenzimetro. Lo strumento che vi presentiamo in questo articolo viene venduto in kit (con il codice prodotto 1606-FRE50MHZ) comprendente il circuito stampato, il contenitore e tutta la necessaria componentistica (Fig. 1); il montaggio è molto semplice, alla portata di qualunque hobbista, ed il costo è veramente irrisorio, in quanto i due componenti fondamentali sono un PIC16F628A, opportunamente programmato, ed un display 5 cifre a sette segmenti, con punto decimale su ogni singola cifra.

Fig. 1

Vi diciamo subito che questo kit si adatta alla maggior parte degli utilizzi ed è molto utile quando volete misurare frequenze di cui non conoscete l’entità oppure per testare dei quarzi. In Fig. 2 vediamo il kit montato e pronto all’utilizzo. Nella confezione è disponibile anche un pratico contenitore realizzato in Plexyglass che lo protegge da eventuali urti (Fig. 3).

Fig. 2

Fig. 3

Ma iniziamo subito analizzando le caratteristiche di questo strumento.

Caratteristiche dello strumento

Il nostro Frequenzimetro è in grado di leggere segnali digitali da 1 Hz a 50 MHz ed il valore della frequenza fondamentale dei quarzi da 4 MHz a 40 MHz; ciò significa che se misuriamo un quarzo con frequenza di oscillazione data da una seconda o terza armonica, cioè una frequenza multipla di quella fondamentale, il circuito mostrerà sul display quest’ultima e non il valore nominale stampato sul corpo del quarzo.
Le caratteristiche tecniche complete del frequenzimetro sono le seguenti:

  • microcontrollore PIC 16F628A con quarzo da 20 MHz;
  • display 5 cifre a sette segmenti, con punto decimale su ogni singola cifra;
  • risoluzione a cinque cifre con punto decimale mobile;
  • misura di quarzi e segnali logici standard;
  • circuito opzionale per segnali sinusoidali a bassa ampiezza;
  • gamma di frequenza da 1 Hz a 50 MHz per segnali logici, da 4 MHz a 40 MHz per la misura della frequenza armonica fondamentale dei quarzi;
  • commutazione automatica della gamma di lettura con diversi tempi di gate;
  • aggiunta o sottrazione opzionale di un offset di frequenza (programmabile);
  • modalità di risparmio energetico configurabile, con spegnimento automatico del display in assenza di variazioni di lettura oltre 15 secondi;
  • alimentazione 5÷2V, assorbimento 25 mA max.

Schema elettrico

Il cuore del circuito è l’eccellente microcontrollore Microchip PIC16F628A, che lavora a 20 MHz, in virtù di un quarzo applicato ai pin dell’oscillatore interno; il micro, oltre a leggere il segnale, si occupa di pilotare i 5 digit del display a LED a catodo comune, con la tecnica del multiplexing. Poiché il numero di pin disponibili non permette di pilotare le cinque cifre, il progettista ha fatto ricorso ad un abile stratagemma tecnico. In pratica, mentre i primi 4 digit sono pilotati rispettivamente dai pin 2, 1, 17 e 18, l’accensione del quinto digit (l’ultimo a destra, cifra meno significativa) dipende, solo per frequenze uguali o maggiori di 10 kHz (condizione dettata dal firmware), dalla combinazione degli altri quattro. I diodi D2, D3 e D4, ed il transistor NPN U3 costituiscono di fatto una porta NAND a 4 ingressi, per cui se anche uno solo dei 4 pin indicati in precedenza si trova a livello LOW (digit acceso), tale livello si troverà sulla base del transistor, mantenendolo in stato di interdizione. Solo nel momento in cui tutti i digit saranno spenti (pin a livello HIGH), il resistore R5, collegato al pin 2, piloterà la base di U3 mandandolo in saturazione e collegando quindi il pin 5 del display a massa, provocandone l’accensione. Per tale ragione all’accensione del frequenzimetro vedrete che lo zero, o la cifra meno significativa, per frequenze fino a 9.999 Hz, saranno visualizzati sul quarto digit. Chi non ha chiaro il funzionamento di un sistema multiplexer potrebbe avere difficoltà a comprendere questo meccanismo, quindi facciamo un piccolo approfondimento. La tecnica del multiplexing, nel caso dei display, consiste nel pilotaggio in contemporanea di tutti i 7 segmenti dei vari digit, e nel pilotaggio sequenziale dei catodi (o anodi, secondo i casi) degli stessi digit. Vediamo un esempio: immaginiamo di dover visualizzare la lettura “67.592” (Fig. 4).
Vengono eseguite 5 operazioni in sequenza (fare riferimento alla Fig. 5):
1. il microcontrollore mette in stato HIGH (livello logico alto) i pin necessari per formare il numero 6 (tutti ad eccezione di “b” e DP), poi mette in LOW il solo pin 2 (gli altri tutti in HIGH), in tal modo il numero 6 viene mostrato solo sul primo digit (partendo da sinistra, cifra più significativa);
2. il microcontrollore pone a livello alto i pin necessari per formare il numero 7 con il punto decimale (segmenti “a”, “b”, “c” e DP), poi mette in LOW il solo pin 1, in tal modo il numero 7 viene mostrato solo sul secondo digit;
3. il microcontrollore mette in HIGH i pin necessari per formare il numero 5 (“a”, “f”, “g”, “c”, “d”), poi mette in LOW il solo pin 17, in tal modo il numero 5 viene mostrato solo sul terzo digit;
4. microcontrollore mette in HIGH i pin necessari per formare il numero 9 (tutti ad eccezione di “e” e DP), poi mette in LOW il solo pin 18, in tal modo il numero 9 viene mostrato solo sul quarto digit;
5. il microcontrollore pone in HIGH i pin necessari per formare il numero 2 (“a”, “b”, “g”, “e”, “d”), ed anche i quattro pin dei catodi (2, 1, 17, 18); questa condizione, come abbiamo visto, manda in conduzione U3 e il numero 2 viene mostrato sul quinto digit.
6. il microcontrollore ricomincia la sequenza dal punto 1, e così finché non cambierà il valore misurato.

Spiegando il funzionamento del multiplex abbiamo utilizzato il termine sequenza, perché le cinque operazioni suddette avvengono separatamente, e per ogni digit che si accende, gli altri quattro restano spenti; però noi li vedremo accesi contemporaneamente e ciò è dovuto alla frequenza elevata con la quale il microcontrollore ripete la sequenza ed al fenomeno della persistenza visiva dell’occhio umano, che non consente di percepire cambiamenti molto rapidi, ovvero che ci fa vedere insieme immagini composte molto rapidamente.
Seguendo questo ragionamento si potrebbe obiettare che il quinto digit allora dovrebbe accendersi sempre, quando gli altri sono spenti, durante il multiplexing; in effetti sarebbe così ma, come abbiamo detto, ci pensa il firmware a tenere spento il digit quando si misurano frequenze inferiori a 10.000 Hz, semplicemente tenendo il LOW tutti i pin che pilotano i 7 segmenti ed il DP, nel momento in cui il suo catodo sarebbe attivo. Osservando lo schema elettrico possiamo notare che il segnale da misurare, applicato al connettore a vite H2, giunge al pin 3 (RA4) del micro tramite il diodo D1; la sua funzione è quella di tagliare l’eventuale componente negativa del segnale, riducendola a 0,6÷0,9 V, valore tollerato dall’ingresso del microcontrollore; lo scopo è quello di far leggere al frequenzimetro anche segnali non logici, infatti vengono misurati anche segnali sinusoidali di questo tipo, che altrimenti non potrebbero essere applicati, perché potrebbero danneggiare il microcontrollore. Purtroppo questo espediente ha un costo notevole, in termini di prestazioni, infatti durante i nostri test siamo riusciti a misurare una frequenza massima di 12-13 MHz (sia onda quadra che sinusoidale). Se si ha necessità di andare oltre tale frequenza, occorre sostituire il diodo D1 con un ponticello collegando quindi il pin 3 direttamente al connettore d’ingresso.
Chiaramente in questo caso si possono applicare all’ingresso solo segnali digitali con livello LOW corrispondente a 0 V; però così si va anche oltre i 50 MHz garantiti, infatti abbiamo rilevato senza problemi segnali fino a 54 MHz.
Un’importante funzionalità del nostro Frequenzimetro è la possibilità di misurare la frequenza fondamentale dei quarzi. È previsto un ingresso specifico, costituito dall’header JP1, sul quale bisognerà inserire (nei due pin esterni) il quarzo da misurare. Il circuito necessario per far oscillare il quarzo è un oscillatore Colpitts standard.
Il transistor U2 fornisce il guadagno, mentre la retroazione dell’oscillatore avviene tramite C2 e C3. L’uscita dell’oscillatore viene presa dall’emettitore di U2 tramite C6, che taglia la componente continua e porta il segnale al pin 3 del microcontrollore; l’ingresso diretto e quello per i quarzi non sono utilizzabili indifferentemente, per tale ragione, il circuito prevede i tre pin di J1 sui quali andrà inserito un cappuccio jumper per collegare l’uno o l’altro ingresso al pin 3 del micro.
Il pulsante S1, assieme al resistore di pull-up R2, serve per entrare nella modalità di programmazione del microcontrollore, ne approfondiremo l’uso nella parte relativa al funzionamento.
Chiudiamo la descrizione dello schema elettrico con la sezione di alimentazione. Il circuito richiede una tensione stabile e filtrata di 5V (ma può funzionare anche a 3,3 V, sebbene perdendo in prestazioni), allo scopo è stato dotato di un regolatore lineare LDO (Low DropOut) che permette di applicare al jack JK1 una tensione (va benissimo un qualsiasi alimentatore switching collegabile alla rete elettrica) tra 5 e 12 Vcc. Il circuito ha un consumo ridottissimo, che non supera i 25 mA.

Fig. 4

Fig. 5

Fig. 6

 

Montaggio

Come detto si tratta di un kit da montare, quindi valgono le regole consuete, si inizia dai componenti più piccoli, nell’ordine: diodi, resistori, quarzo, condensatori, zoccolo, transistor, pulsante, connettori vari ed infine il display; quest’ultimo ha i pin molto lunghi, se si usa il contenitore in dotazione essi vanno inseriti completamente nel PCB, in caso di un eventuale montaggio sul pannello di un contenitore diverso, è possibile stabilire a quale distanza deve stare dal PCB. L’identificazione dei componenti è piuttosto semplice; i diodi sono tutti uguali, bisogna solo fare attenzione alla loro polarità, facendo combaciare la fascetta che hanno su uno dei due lati con quella serigrafata sul PCB. I condensatori sono identificabili con le sigle stampigliate sul loro corpo, le abbiamo riportate tra parentesi nell’elenco componenti. I resistori sono di precisione all’1% di tolleranza ed hanno cinque bande; per la loro identificazione si può far riferimento al codice dei colori, con relativo esempio, riportato in Fig. 6; in ogni caso il loro valore si misura molto facilmente con un qualsiasi multimetro digitale o anche un tester analogico. L’integrato 7555 ed i due transistor S8050 hanno la stessa forma, ma sulla loro faccia piatta è stampata la loro sigla, quindi basta leggere. Infine il display deve essere montato seguendo l’orientamento della serigrafia sul PCB e sul piano di montaggio, facendo attenzione alla posizione dei puntini decimali posizionati in basso a destra in ognuno dei 5 digit.

Fig. 7

Fig. 8

Uso dello strumento

Se il montaggio è stato effettuato correttamente sarà sufficiente collegare un qualsiasi alimentatore di rete da 5÷12 V 0,5 A (dato che viene fornito un cavo USB con plug, consigliamo un alimentatore con uscita USB) per vedere tutti i digit accendersi per un istante e poi spegnersi, lasciando acceso solo il quarto che normalmente mostrerà uno zero.
Se invece il display dovesse mostrare un qualsiasi valore maggiore di zero occorrerà fare un’operazione di azzeramento via menu, vedremo più avanti come.
L’uso dello strumento è molto semplice, essendo facilitati dal fatto che il software seleziona il gate automaticamente, in base al valore misurato, per ottenere la massima risoluzione possibile. La prima operazione da fare è posizionare correttamente il jumper su J1; per la lettura di segnali applicati al connettore H2, il jumper va posizionato come nel particolare della Fig. 7 a sinistra (verde); se invece bisogna controllare la frequenza di un quarzo allora il jumper va posizionato come nel particolare a destra (rosso).
A questo punto basta applicare un segnale di ampiezza sufficiente all’ingresso H2 o, nel secondo caso, inserire un quarzo nell’header JP1, per leggere istantaneamente il valore della frequenza. A proposito della lettura automatica, nella Fig. 8 riportiamo la Tabella delle gamme di frequenza, con relativa visualizzazione sui 4 o 5 digit ed il comportamento del punto decimale; come si può notare la prima portata sfrutta solo 4 digit, dalla seconda in poi invece viene utilizzato anche il quinto.
Abbiamo testato una serie di quarzi standard per verificare il corretto funzionamento dell’oscillatore e del Frequenzimetro stesso.
Nella Fig. 9 abbiamo riportato la tabella dei risultati di questi test.

Fig. 9

Il quarzo da 2 MHz non viene letto, come ci si aspettava, infatti nelle caratteristiche tecniche abbiamo specificato che la frequenza minima è 4 MHz. I quarzi da 4, 10 e 20 MHz vengono letti regolarmente con una precisione di ±1 digit, mentre quello da 40 MHz mostra un valore di 13,334 MHz; anche in questo caso si rientra in quanto riportato nelle specifiche, cioè che l’oscillatore lavora sull’armonica fondamentale, quindi è chiaro che il quarzo provato da noi lavora in terza armonica (13,333 x 3 = 39,999).

Il menu di programmazione

Diamo ora uno sguardo al menu di programmazione; in premessa bisogna ricordare che una pressione breve del pulsante S1 serve per passare alla voce di menu successiva o per navigare all’interno della voce di menu (nel caso di “Table”), mentre per attivare la voce di menu selezionata occorre una pressione lunga (circa 2 secondi). Per entrare nel menu occorre una pressione lunga del pulsante S1, appare subito la voce “Prog”, rilasciando il pulsante appare la voce “Quit”, per uscire senza modificare nulla basta una pressione lunga in questa fase. Nella Fig. 10 abbiamo inserito le voci di menu in sequenza e la funzione svolta con la pressione lunga di S1; inoltre nell’ultima colonna abbiamo riportato le foto del display in quanto, essendo a 7 segmenti e non alfanumerico, non sempre le parole sono di immediata lettura.

Fig. 10

Una prima pressione breve di S1 passa alla voce “PSave” o “NoPSave”, nel primo caso è attivo il risparmio energetico, per cui dopo 15 secondi dall’ultima lettura, in mancanza di variazioni, il display si spegne, nel secondo caso invece il display resterà sempre acceso, anche in assenza di segnale in ingresso. Una pressione lunga di S1 provocherà il passaggio da una opzione all’altra e poi l’uscita dal menu.
Una seconda pressione breve di S1 farà scorrere il menu sulla voce successiva “Add”; questa opzione serve per aggiungere alla lettura reale un valore prefissato (offset), rappresentato dal valore visualizzato sul display nel momento in cui si entra nel menu oppure da uno dei valori predefiniti presenti in “Table”. È sufficiente una pressione lunga di S1 per memorizzare tale valore e trovarselo stabilmente aggiunto ad ogni lettura effettuata. Un esempio chiarirà meglio questa opzione: poniamo di aver necessità di aggiungere 1.000 Hz ad ogni lettura del Frequenzimetro; la prima operazione da effettuare è quella di applicare un segnale da 1000 Hz al Frequenzimetro, quindi si entra nel menu, si seleziona l’opzione “Add” e poi una pressione lunga di S1, da questo momento qualunque sia la frequenza letta mostrerà 1000 Hz in più, quindi 10 kHz diventeranno 11.000 kHz, 1 MHz diventerà 1.0010 MHz, ecc. Se invece la frequenza da aggiungere rientra in quelle memorizzate nel microcontrollore, e disponibili nel sottomenu “Table”, allora non serve alcun segnale in ingresso, basta selezionare il valore in “Table” e poi una pressione lunga di S1, il menu mostra la voce “Add”, una nuova pressione lunga e la programmazione sarà fatta.
Da “Add” una pressione breve di S1 porta alla voce “Sub”, per la quale vale tutto quanto spiegato per “Add” con la sostanziale differenza che le frequenze saranno sottratte alla lettura reale.
Da “Sub” una pressione breve di S1 porta alla voce “Zero”, il cui scopo è quello di azzerare l’eventuale offset aggiunto o sottratto in precedenza. Nota bene: potrebbe capitare che il Frequenzimetro mostri un valore errato rispetto a quello atteso (ovviamente bisognerà essere sicuri della precisione della fonte di generazione del segnale misurato) anche in assenza di segnale, probabilmente riporta un offset inserito in fase di test del microcontrollore, da parte del produttore del kit. Per eliminarlo sarà sufficiente usare la funzione “Zero”.
Da “Zero” una pressione breve di S1 porta alla voce “Table” che, come detto, contiene una serie di valori prememorizzati in EEPROM, raggiungibili con una pressione lunga di S1 e precisamente: 455,0 (kHz) 3,9990 (MHz) 4,1943 (MHz) 4,4336 (MHz) e 10,700 (MHz); una pressione breve di S1 permette di navigare tra i 5 valori, una pressione lunga di S1 seleziona il valore visualizzato.
A questo punto il menu si porta automaticamente sulla voce “Add”, se si vuole aggiungere la frequenza selezionata alla lettura basta una pressione lunga di S1, se invece la si vuole sottrarre serve prima una pressione breve per passare a “Sub” e poi una pressione lunga per attivare il valore; infine, se non si vuole applicare il valore selezionato, basteranno una serie di pressioni brevi su S1 fino a visualizzare “Quit” e poi una pressione lunga per uscire dal menu.
Apriamo ora una parentesi prettamente tecnica: i valori di offset di frequenza vengono salvati come numeri interi a 32 bit nella EEPROM del PIC (nelle prime quattro posizioni di memoria della EEPROM, primo byte alto, ultimo byte basso). Se non si dispone di un generatore di segnale per produrre la frequenza di offset per la programmazione, oppure non si può usare la frequenza del BFO dell’apparato radio, è possibile inserire il valore di offset con un programmatore PIC adatto. Occorre convertire la frequenza in Hertz (direttamente per “Add”, sottraendola da 4.294.967.296 per “Sub”) in un numero esadecimale e immettere questo valore nel campo EEPROM DATA del programmatore PIC. Alcuni tipi di programmatore richiedono l’abilitazione dell’editor HEX prima di digitare i valori nella finestra della memoria. Nella Fig. 11 troviamo l’elenco delle frequenze prememorizzate nella EEPROM del PIC con le relative corrispondenze esadecimali per la funzioni “Add” e “Sub”.
Per la conversione si può ricorrere ad un convertitore on line come per esempio: https://it.calcuworld.com/convertitori/convertitore-esadecimale/.

Fig. 11

Conclusioni

Abbiamo letteralmente sviscerato un semplice ed economico strumento di misura disponibile in scatola di montaggio e destinato quindi all’autocostruzione; come abbiamo visto, si è ben comportato con ogni tipo di test e quindi possiamo tranquillamente consigliarlo a chi abbia necessità di misurare delle frequenze senza dover per forza fare un investimento nell’acquisto di uno strumento professionale.
La versatilità di questo piccolo strumento è eccellente, tanto che, per esempio, montato nel contenitore in dotazione è un ottimo tester per quarzi; nel nostro caso, una configurazione minimale permette di integrarlo nello stesso box di uno strumento che genera segnali digitali, così da ottenere la visualizzazione dei segnali e implementare un apparato completo.
Dotandolo invece di un semplice stadio di preamplificazione (sulla Rete si trovano moltissimi circuiti di questo tipo) può essere utilizzato per la lettura di radiofrequenze; infine il basso consumo consente di realizzarlo in versione portatile a batteria.
Insomma, i limiti sono solo quelli imposti dalla nostra fantasia!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Menu