Frequencimetro

Para "abobrinhas" use o " Boteco"

Moderadores: andre_luis, 51, guest2003, Renie

Frequencimetro

Mensagempor MTC » 26 Set 2008 11:16

Seguinte,

to precisando acompanhar umas medidas de frequencia, e registrar isso em funcao do tempo. Inicialmente pensei em usar um multimetro de bancada com interface, mas agora vi que o buraco eh muito mais em baixo.

O sinal que preciso acompanhar eh de 5MHz, quais as sugestões para medir e registrar isso num pc?

Preciso resolucao de pelo menos 1HZ, e taxa de amostragem de 100Hz eh mais que suficiente.

A varicao do sinal nao passa de +/- 200 Hz.

Tem como converter Frequencia em tensao com a precisao e amostragem que preciso??

No caso de um contador de frequencia alguem sabe se o tempo base de amostragem pode ser 1/100 seg.?

Sugestões!!!???

[]`s
MTC
Byte
 
Mensagens: 159
Registrado em: 20 Out 2006 18:13

Mensagempor renatokodaira » 26 Set 2008 11:34

Se sua base de tempo for 0,01 s e o seu sinal eh de 5MHz e voce precisa de resoluçao de 1Hz, nao vai dar, pois se medir 5MHz por 0,01 s, a contagem será de 50000, entao sua resoluçao minima será de 100Hz.
renatokodaira
Byte
 
Mensagens: 402
Registrado em: 11 Out 2006 15:15

Mensagempor msamsoniuk » 26 Set 2008 13:42

normalmente seria mais simples usar um microcontrolador com dois timers e uma serial. vc usa o sinal de 5MHz como clock de um timer e outro para a referencia de 1 segundo, conta a entrada e simplesmente transfere para o PC via serial. claro, com um timer de 16 bits vc precisa contar parte dos 5MHz com auxilio do software.

porem, com essa solucao simples vc nao calcula jitter.
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor Monk » 29 Set 2008 23:53

Se tiver acesso a um osciloscopio digital fica brincadeira de criança. É só mandar mostrar na tela.

Sobre a resolução, tá meio o confuso sua especificação.

Tenta racionar com o periodo que é mais fácil. Na prática mede-se o periodo.

Por exemplo:

5MHz = 5000000Hz --> 200ns

Adicionando um Hert
5000001Hz --> 199,99996ns

Ou seja, algo dessa frequencia variar um Hertz tem que ter uma precisão FDP

Raciocinando o contrario:

200ns --> 5000000Hz

Retirando 1ns
199ns --> 5025125,628Hz

Ou seja, mudar o periodo 1ns muda 25kHz
Monk
Bit
 
Mensagens: 32
Registrado em: 26 Set 2007 17:14
Localização: Salvador, BA

Mensagempor brasilma » 30 Set 2008 08:15

Para "contar" 5Mhz com resolução de 1Hz, são necessários 23 bits, isto se consegue com um contador de 16 bits mais um totalizador de 8 bits (= 24 bits).

A rotina de totalização precisa ser bem curtinha para dar tempo, talvez no próprio espaço de tratamento da interrupção.

Usar o maior clock que for possivel no sistema.
" A Teoria orienta e a Prática decide" ;-)
Avatar do usuário
brasilma
Dword
 
Mensagens: 3621
Registrado em: 11 Out 2006 15:39
Localização: Planeta Terra

Mensagempor kaoalex » 30 Set 2008 10:40

Esse parece ser um bom e simples projeto.
http://www.myplace.nu/avr/countermeasures/index.htm
Avatar do usuário
kaoalex
Byte
 
Mensagens: 237
Registrado em: 12 Out 2006 01:52

Mensagempor brasilma » 30 Set 2008 12:03

A ideia é boa Koala, porem é necessário fazer uma outra implementação - veja que o número de displays não é suficiente para exibir 5MHz com resolução de 1Hz.
" A Teoria orienta e a Prática decide" ;-)
Avatar do usuário
brasilma
Dword
 
Mensagens: 3621
Registrado em: 11 Out 2006 15:39
Localização: Planeta Terra

Mensagempor pbernardi » 30 Set 2008 13:20

Bom, 1Hz de precisão em um clock de 5MHz é algo meio impossível, não? precisão de 0,0002% :shock:

Mas o que se faz para conseguir leituras com maio precisão, é: pegue o scope digital com melhor precisão que você tem/conhece. Salve vários pulsos de clock para análise (por exemplo, 200 pulsos). meça a diferença de tempo entre esses 200 pulsos e divida por 200.

Daí você tem uma aproximação muito melhor que medir apenas um pulso - até porquê um scope digital é discreto e por isso apresenta perdas.
But to us there is but one God, plus or minus one - Corinthians 8:6±2. (xkcd.com)
pbernardi
Word
 
Mensagens: 707
Registrado em: 12 Out 2006 19:01
Localização: Curitiba-PR

Mensagempor MTC » 30 Set 2008 14:30

obrigado a todos pela atencao no tópico.

Bem, o link do kaoalex eh interessante, deixo aqui tbm esse: http://www.linuxfocus.org/English/September2002/article253.shtml
talvez seja util para alguem.

Qto ao que realmente preciso, talvez eu queira tampar o sol com uma peneira, mas vamo tenta se eXpricar como diria o fabim!!!

Na aplicacao que necessito, tenho um cristal de quartzo oscilando a uma determinada frequencia, pode ser cristal de 5, 6 ou até 10MHz.

Sobre uma das superficies do cristal terei um processo eletroquimico ocorrendo, e com a variacao da massa na superficie do cristal haverá uma mudanda na sua frequencia de oscilacao que é descrita pela equacao de Sauerbrey:
http://en.wikipedia.org/wiki/Sauerbrey_equation

Preciso acompanhar a variacao da frequencia do oscilador com o tempo para relacionar isto com a massa depositada sobre o cristal. Como coloquei no inicio do post, a frequencia do cristal fica em 5MHz, mas eu preciso apenas a diferenca de frequencia entre os instantes t0 e tn.

Tive a ideia de utilizar 2 cristais identicos em 2 osciladores e detectar apenas a diferenca de frequencia entre eles, com isso em qualquer instante tenho o valor de "Delta F".

Se utilizar um flipflop tipo D, 74HC74 eu acho... fica confiavel o valor????

So nao tenho ideia de como implementar isso, mas seria um caminho???


Na pratica geralmente é utilizado para medir a frequencia de oscilacao este contador da Stanford:
http://www.tti.co.uk/products-resale/srs/sr620.htm
Infelizmente nao tenho verba pra um desses, por isso surgiu o topico.

Tambem existem solucoes comeciais prontas:
http://ichf.edu.pl/offers/instrum/quartz_pliki/5610/a_mnu.htm

mas o sonho de consumo de um desses fica pro futuro.

[ ]`s
Editado pela última vez por MTC em 30 Set 2008 15:25, em um total de 1 vez.
MTC
Byte
 
Mensagens: 159
Registrado em: 20 Out 2006 18:13

Mensagempor msamsoniuk » 30 Set 2008 14:32

brasilma escreveu:Para "contar" 5Mhz com resolução de 1Hz, são necessários 23 bits, isto se consegue com um contador de 16 bits mais um totalizador de 8 bits (= 24 bits).

A rotina de totalização precisa ser bem curtinha para dar tempo, talvez no próprio espaço de tratamento da interrupção.

Usar o maior clock que for possivel no sistema.


vc pode usar alguns 74F93 cascateados como "prescaler" para o timer do microcontrolador, isso ampliaria a faixa de frequencias para ateh uns 120MHz e facilitaria a vida do microcontrolador tambem! :)
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor brasilma » 30 Set 2008 15:03

Exatamente Marcelo, similar a proposta do colega Koala, porem com algumas modificações no soft e hard para poder exibio o resultado com uma resolução de 1Hz.
" A Teoria orienta e a Prática decide" ;-)
Avatar do usuário
brasilma
Dword
 
Mensagens: 3621
Registrado em: 11 Out 2006 15:39
Localização: Planeta Terra

Mensagempor Monk » 30 Set 2008 19:22

MTC escreveu:Tive a ideia de utilizar 2 cristais identicos em 2 osciladores e detectar apenas a diferenca de frequencia entre eles, com isso em qualquer instante tenho o valor de "Delta F".

Se utilizar um flipflop tipo D, 74HC74 eu acho... fica confiavel o valor????



Eu já vi essa abordagem aqui(paginas 5, 6, 7):
http://thereminvision.com/version-2/The ... manual.pdf

Me parece uma ótima ideia.
Monk
Bit
 
Mensagens: 32
Registrado em: 26 Set 2007 17:14
Localização: Salvador, BA

Mensagempor brasilma » 30 Set 2008 19:36

Hummmm dependendo do resultado que se queira um PLL tbem faz isso, os receptores FM digitais possuem um oscilador local (na faixa dos MHz) e o som que ouvimos é justamentente a diferença entre este e o que vem da emissora.
" A Teoria orienta e a Prática decide" ;-)
Avatar do usuário
brasilma
Dword
 
Mensagens: 3621
Registrado em: 11 Out 2006 15:39
Localização: Planeta Terra

Mensagempor fabim » 30 Set 2008 19:55

cumpadi..
dizsmelázio..

eu utilizei uma técnica interessante a um tempinho atráz..

veja se te serve..


Tempo de leitura 0.0998mS

eu fiz assim.

2 74F163 serializados, alimentando o TIMER 1 de 16 bits.

o F163 tem Clear, enable etc...

Fiz da seguinte forma..
Variavel de 32 bits.. A
Highest higher high low .. MSB >> LSB.
F163(1) e (2) ligados ao portD do 16f877

1° limpa F163
2° Lima TIMER1H & TIMER1L
3° Enable F163
Delay_mS(10) exatos " em asm calibrado via soft e cristal"
4° disable F163.
A.higher = TIMER1H
A.high = Timer1L
A.Low = PORTD "que é o valor de 8 bits dos F163"

Precisao...

Pic16F877 á 20mhz
1/5mhz = 0,0000002 T
0,000 000 2 * 5 000 000xtal = +/- 1hz..
Este tempo é o tempo que o pic leva para Low to high.
agora soma-se o tempo de disable de low para high do F163

independente .. PQP é uma PTA precisão.

E funciona tranquilamente

Dá proce ?
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor MTC » 01 Out 2008 14:05

Monk, valeu pelo link, este tipo de implementacao parece a mais simples no momento, ja pedi uns Cis e vo montar um simples FDC (frequency difference circuit) e testar a precisao com um osciloscopio digital.

Brasilma, ja andei estudadando um pouco sobre a possibilidade do PLL, mas o buraco parece ser mais embaixo pra simples mortais - como eu - ... rs...

Fabim, ocê destroço de vez, so sincero, não deu pra entender muita coisa. Ia ter q fazer um intensivao contigo pra pega a ideia da coisa. Se o FDC nao der bons resultados, te caço no msn, ok.

[ ]`s
MTC
Byte
 
Mensagens: 159
Registrado em: 20 Out 2006 18:13

Próximo

Voltar para Assuntos Gerais

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x