Note sul Frequenzimetro dell’ LC-METER con LM311


 

 

Al valore di Cx ( Lx ) si arriva attraverso una misura di frequenza. La frequenza si ottiene contando il numero di oscillazioni (periodi) dell’ onda quadra (vedi LM 311 nello schema) in un intervallo di tempo prestabilito   detto “base dei tempi”  ( gate time).

Del microcontrollore ATmega32 vengono usati:

– Timer/Counter2 come TIMER per generare la base dei tempi (in questo caso 32.77 msec)

– Timer/Counter1 come COUNTER per contare il numero di oscillazioni complete ( numero  di fronti di salita dell’ onda quadra presente su PB1 dell’ ATmega32 ) all’ interno  della finestra temporale stabilita dal TIMER ( gate time ).  La frequenza viene calcolata accumulando i conteggi delle oscillazioni di n misure  (ogni misura dura 32.77 msec) e dividendo poi per la durata della finestra temporale  effettiva ( total  gate time ).

Fx = numero oscillazioni totali/durata gatetime

Fx= num. oscill. totali /( n * 32.77 msec).

Fx(max) = 1Mhz

Tx(min) = 1/Fx(max) =1/1000000= 1 usec

Numero max conteggi Counter/Timer1 ( contatore a 16 bit) = 65’535

Durata  conteggio max Counter/Timer1 = 65535  1 usec = 65.5 msec

Essendo:

– T=1/FREQ_CPU = 1/8’000’000 = 125 usec

– TIMER/COUNTER2 un contatore ad 8 bit ( conteggio max =256 fronti dell’onda quadra)   si ha:

Base Tempi = numero fronti salita del clock * fattore prescaler * periodo clock   Base Tempi = 256*1024*T =256*1024*125usec= 32.77 msec.

per cui:

(durata Base Tempi) < ( durata conteggio max Counter/Timer1)

e   quindi Counter1 non puo’ mai andare in overflow se Fx(max) <= 1 Mhz!

Calcoli per la determinazione del valore Cx ( riferirsi allo schema ):

1)  per il parallelo L//C        si ha:     f1 =  1/ 2 pi sqrt(LC)

2)  per il parallelo L//(C+Ccal) si ha:     fcal =1/ 2 pi sqrt(L(C+Ccal))

3)  per il parallelo L//(C+Cx)   si ha:     f3 =  1/ 2 pi sqrt(L(C+Cx))

e quindi:

4) f1/fcal = (1/ 2 pi sqrt(LC))/(1/ 2 pi sqrt(L(C+Ccal)))

5) (f1/fcal)^2 = (C+Ccal)/C = 1+Ccal/C

da cui:

6) Ccal/C =(f1/fcal)^2-1 = b

analogamente:

7) (f1/f3)^2 = (C+Cx)/C = 1+Cx/C

da cui:

Cx/C =(f1/f3)^2-1 = a

(Ccal/C)/(Cx/C)= b/a

infine:

Cx = Ccal * b/a