I lettori attenti hanno notato che negli articoli dell'autore sotto il soprannome di WilkoL su un diapason e un orologio con il suo uso, viene mostrato solo un frequenzimetro e nell'articolo su un generatore con un vetro come elemento di impostazione della frequenza, ne è stato aggiunto un secondo e ha persino preso il KDPV. Questa storia parla di lui.
Sono contento di lavorare homebrew ramoscello il master inizia con lo studio della parte teorica, ovvero con la scelta del metodo di misurazione della frequenza. In molti misuratori di frequenza, il numero di periodi del segnale di ingresso per un certo periodo di tempo, ad esempio un secondo, viene conteggiato per questo:
Questo metodo è buono per frequenze abbastanza alte, ma se la frequenza è bassa, non consente di ottenere un numero sufficientemente grande di cifre decimali. Ad esempio, se il ciclo di misurazione impiega un secondo, quindi per una frequenza dell'ordine di 50 Hz, ci saranno zero decimali. Vuoi, ad esempio, tre segni: c'è una via d'uscita, estendiamo il ciclo di misurazione a 1000 secondi. Ma è una cosa quando un PC o uno smartphone rallenta, a cui tutti sono almeno abituati, ed è un'altra cosa: se un misuratore di frequenza si unisce anche a questa divertente compagnia, questo ne toglierà completamente l'utente. In generale, è necessario un altro modo. E se misurassimo il periodo delle oscillazioni, in quel modo?
Anche tu. Prendono un segnale della frequenza di riferimento, che è di diversi ordini di grandezza superiore a quello misurato, e considerano quanti periodi del segnale di riferimento passeranno in un periodo di quello misurato. Ad esempio, ad una frequenza di riferimento di 10 MHz e misurata a 50 Hz, questo sarà di 200.000, il che significa che il periodo è di 20.000,0 ms e un microcontrollore moderno (e, tra l'altro, non molto), se il programmatore lo "insegna", con ricalcola facilmente il periodo su una frequenza pari a 50.000 Hz. Se la frequenza aumenta a 50.087 Hz, quindi in un periodo del segnale di ingresso, si inseriscono 199650 periodi del modello esemplificativo e tale cambiamento il misuratore di frequenza noterà in tempo reale.
Ma con questo metodo di misurazione, il numero di cifre decimali, al contrario, diminuisce con l'aumentare della frequenza del segnale di ingresso. Ad esempio, se è 40 kHz e quello di riferimento è ancora 10 MHz, quindi a 40-161 Hz si ottengono 249 periodi della frequenza di riferimento e a 39840 Hz - 251 periodi. Almeno due misuratori di frequenza sono in ordine: uno per le alte frequenze, operando nel primo modo, l'altro per le basse frequenze, nel secondo. Anche se - aspetta! Non è possibile combinare entrambi i metodi in un solo frequenzimetro? Puoi, e il maestro dice come. Devi prendere un normale grilletto a D, quindi vengono dati il suo simbolo e la tabella della verità:
La procedura guidata mostra quattro segnali sul grafico, il quarto dei quali produce un trigger:
Il primo di questi segnali è la frequenza misurata; viene inviato all'ingresso di clock del D-trigger. La seconda è una frequenza di riferimento, ad esempio, sempre di 10 MHz, che richiede un'elevata stabilità. Il terzo è un segnale con una frequenza dell'ordine di 1 Hz, stabilità da cui non è affatto necessario, viene applicato allo stesso trigger sull'ingresso D. Bene, il quarto è generato dal trigger dal primo e terzo come segue. Quando il terzo segnale passa da zero a uno, il trigger non risponde immediatamente a questo, ma solo quando si verifica tale interruttore con il primo segnale successivo. Pertanto, la parte anteriore di uno degli impulsi del quarto segnale coincide esattamente con la parte anteriore di uno degli impulsi del primo. Quindi il terzo segnale, seguito dal quarto, passa a zero, a cui il microcontrollore non reagisce in alcun modo, quindi il terzo segnale ritorna a uno, ma il trigger non reagisce immediatamente ad esso, ma solo dopo lo stesso passaggio del primo segnale. E ancora, i fronti del primo e del quarto segnale coincidono completamente. E nell'intero periodo del quarto segnale si adatta un numero intero di periodi del primo. Inoltre - una questione tecnica: non dimenticare che abbiamo anche un secondo segnale. Il microcontrollore calcola quanti periodi completi del primo e del secondo segnale sono caduti nell'intero periodo del quarto.
Quindi, abbiamo due numeri. Ad esempio, 32 e 10185892. Moltiplicare 32 per 10.000.000 (frequenza di riferimento) e dividere per 10185892. Otteniamo 31.416 Hz. Tre cifre decimali. E la misurazione rimane accurata sia alle basse frequenze, sia alle alte, avvicinandosi al modello. E se devi misurare frequenze anche più alte, puoi aggiungere un divisore.
Ora dobbiamo decidere su quale microcontrollore far funzionare il frequenzimetro. Il master ha già provato a realizzarli su ATmega328 e persino su STM32F407, con una frequenza di clock di 168 MHz. Ma questa volta è intriso di minimalismo e decide di verificare se può ottenere un risultato simile su ATtiny2313.
Ha conclusioni più che sufficienti, soprattutto se si utilizza un display a LED con un chip driver integrato come MAX7219:
Un diagramma del dispositivo completo è simile al seguente:
Un driver piuttosto complesso per componenti discreti, contenente circuiti RC, un limitatore di diodi, stadi di amplificazione, viene utilizzato per ottenere impulsi rettangolari da un segnale di quasi qualsiasi forma. Il D-trigger si trova all'esterno, il segnale della frequenza misurata (prima) viene alimentato dal driver, i segnali con frequenze di 10 MHz e 1 Hz (rispettivamente seconda e terza) vengono ricevuti dal microcontrollore, il segnale di uscita (quarta) ritorna al microcontrollore. Il secondo trigger di questo tipo serve a generare un segnale in un punto di controllo. È disponibile lo stesso schema PDF nell'archivio ZIP. qui.
Dopo aver compilato un diagramma, il master raccoglie un frequenzimetro su di esso, risulta così:
Nella foto, a differenza del circuito, sono mostrati la batteria e il controller di carica, lo stabilizzatore di impulsi è anche menzionato dal master, ma dove si trova, non è visibile. Tutti questi componenti sono stati aggiunti in seguito, il che ha reso più conveniente lavorare con il frequenzimetro. Una batteria 18650 dovrebbe essere presa con protezione, i cavi di saldatura sono inaccettabili. O il compartimento o la saldatura a punti.
Firmware (bugie qui anche nell'archivio ZIP) il master scrive tenendo conto della necessità di trasferire il microcontrollore dall'orologio al generatore RC per lavorare da quarzo esterno, nonché la possibilità di assegnare varie funzioni a ciascuna delle uscite del microcircuito:
Per caricare il firmware, la procedura guidata prende un programmatore in-circuit da Olimex. Questa è una società bulgara con un profilo vicino ad Adafruit.
Lo scarico principale sigilla il minimo bit sul display, quindi taglia un foro nel coperchio dell'alloggiamento in modo che questo scarico sia chiuso, poiché le sue letture erano inaccurate nonostante tutte le misure adottate.Ciò è influenzato dalle caratteristiche dell'algoritmo e dalla stabilità della temperatura non troppo elevata dell'oscillatore a cristallo. Per configurarlo, il master collega un frequenzimetro esterno al punto di controllo con stabilizzazione della frequenza del generatore di clock dal ricevitore GPS, dopodiché imposta gli esatti 5 MHz ruotando il condensatore di sintonia (il trigger divide la frequenza di clock per due). Un frequenzimetro correttamente sintonizzato fornisce la precisione richiesta nell'intervallo di frequenze misurate da 0,2 Hz a 2 MHz. Le seguenti due foto mostrano come il master ha applicato lo stesso segnale contemporaneamente al riferimento e ha controllato i frequenzimetri: