multiplicador frequencia

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

multiplicador frequencia

Mensagempor juniorlucival » 31 Out 2013 15:51

amigos, Estou com o seguinte caso, tenho um motor com um sensor de rotação do tipo indutivo, eu já realizei o acondicionamento do sinal e tenho na saída um sinal quadrado de amplitude 5v, sua frequência varia de 25hz até 6khz, mas para o sistema funcionar corretamente preciso dobrar esse valor, ou seja quando o motor informar 3khz na saída devera ter na realidade 6khz, ou seja preciso dobrar o valor da frequência, para todas as faixas. A resolução deverá ser de 1hz,
até agora o que fiz, eu usei um pic 16f873a e com o módulo ccp1 realizei a leitura do período, e fiz sua divisão, ou seja eu tenho para todas faixas de frequência o valor de delay de cada ciclo, eu já tentei realizar um interrupt pelo timer0 ou timer 2, mas não consigo sincronismo, primeiro esses timers são de 8bits o de 16bits que é o timer1 já esta sendo usado para captura. os timers de 8bits eu preciso a cada estouro fazer diversos procedimento como realimentar, e tratar o sinal, isso me leva cerca a 42 ciclos a mais por contagem a cada interrupção, ou seja não tenho como sincronizar o sinal em altas frequências, tipo no main principal realiza a leitura e calculo e espera o estouro do timer de 8bits, o timer estoura mas precisa decrementar, salvar e atualizar contexto e afins, ou seja cada vez que interrompe eu gasto tempo e isso desincroniza o sinal, estou pensando em usar outro pic 16f873a, e usar 8 bits do portc para transferir a informação do tempo necessário e no segundo pic usar o timer1 que é de 16bits diretamente no main, senhores gostaria muito da opinião dos senhores.
juniorlucival
Nibble
 
Mensagens: 63
Registrado em: 02 Jan 2010 14:44

Re: multiplicador frequencia

Mensagempor proex » 31 Out 2013 16:44

proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Re: multiplicador frequencia

Mensagempor juniorlucival » 31 Out 2013 18:36

agradeço muito a ajuda, mas montei esse circuito em dois simuladores com o mesmo resultado, não multiplicou a frequencia, apenas inverteu o sinal, ou falta algo no esquema que não vi, mas obrigado mesmo assim,
juniorlucival
Nibble
 
Mensagens: 63
Registrado em: 02 Jan 2010 14:44

Re: multiplicador frequencia

Mensagempor vtrx » 31 Out 2013 20:42

Qual linguagem e compilador esta usando?
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Re: multiplicador frequencia

Mensagempor juniorlucival » 31 Out 2013 21:50

uso asm com mplab ide 8.92 e usando pic 16f873a
juniorlucival
Nibble
 
Mensagens: 63
Registrado em: 02 Jan 2010 14:44

Re: multiplicador frequencia

Mensagempor vtrx » 31 Out 2013 22:11

uso asm com mplab ide 8.92 e usando pic 16f873a

Provavelmente esta trabalhando a 200ns(20 MHZ),correto?
Ja tentou um PIC com maior velociddae,tipo o 18F452(10 MIPS)ou mais?
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Re: multiplicador frequencia

Mensagempor MOR_AL » 31 Out 2013 23:49

Se você precisa dobrar este valor por software, sua resolução será de, no mínimo, 2Hz. Só haverão valores pares...
O que você quer dizer com "sincronizar o sinal"?
Eu fiz um programa que gera um período de 1,000.000s (em assembly), usando o TIMER0, o prescaler (1/256) e mais dois registros GPR. Pode contar 2 elevado a 32. Com isso a medida da frequência é o valor do número de pulsos em 1 segundo. Qualquer que seja o percurso condicional (atualização dos registros ou não), são "gastos" exatos 5.000.000 ciclos de clock (Xtal em 20MHz) e PIC16F873A.

No seu caso você obteria um resultado em um ciclo do sinal, caso seu micro respondesse. Mas como não está conseguindo, mude a estratégica.
Tente aumentar este período. Por exemplo, conte um número maior de ciclos e divida por este número para poder identificá-lo. Este "número maior" poderia ser discriminado em valor. Explico:
Frequências baixas, mede poucos ciclos, frequências altas, mede mais ciclos. Assim você teria mais tempo para a medição e um tempo aproximadamente constante de medição, qualquer que fosse a frequência do seu sinal. Atente apenas que durante a medição, a frequência do seu sinal deverá ser constante.
Não sei se entendi direito seu problema!!!
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Re: multiplicador frequencia

Mensagempor msamsoniuk » 01 Nov 2013 00:02

nao eh incrivelmente mais simples, barato e confiavel usar um 4046 e um 7474? (:

Imagem

o 4046 vai ajustar o VCO interno para alinhar o clock de entrada com o feedback, que vai ser o clock de saida do 4046 dividido por 2 pelo 7474.
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Re: multiplicador frequencia

Mensagempor xultz » 01 Nov 2013 07:16

O circuito que o proex sugeriu funciona sim, mas ele tem um problema que é a malha de atraso RC, que funciona bem para uma determinada frequência, mas conforme você aumenta ou diminui essa frequência pode ser que a malha atrase pouco ou atrase demais, e pare de dobrar a frequência.
O PLL que o Sam colocou também é uma boa, apesar que não achei (também não procurei muito) que frequências o VCO do 4046 consegue produzir, então pode ser que ao colocar 25Hz o VCO não atinja os 50Hz que você deseja.
Particularmente, eu acho que a solução mais elegante é com algoritmo mesmo, onde você captura o período do sinal, e usa esse período prá programar a frequência de um PWM ou timer. Eu não vou colocar código porque fazem uns 1500 anos (ou mais) que não mexo com asm, mas colocar um PWM fora prá dobrar um sinal de frequência tão baixa, eu acho meio exagerado. Mas funciona.
98% das vezes estou certo, e não estou nem aí pros outros 3%.
Avatar do usuário
xultz
Dword
 
Mensagens: 3001
Registrado em: 13 Out 2006 18:41
Localização: Curitiba

Re: multiplicador frequencia

Mensagempor MOR_AL » 01 Nov 2013 08:02

Um PLL possui uma faixa de captura (da frequência que entra) e uma faixa de lock.
A de captura significa que a frequência do sinal deve situar-se dentro desta faixa para que ocorra a sincronização.
A de lock, que é maior que a de captura, significa que a frequência do sinal de entrada pode variar dentro dela e ainda manter o sincronismo.
No caso do Junior, a frequência de entrada vai variar entre 25Hz e 6KHz. Isso significa uma variação máxima de 6k/25 = 240!!!
Acho bem difícil ele conseguir um sincronismo com tanta variação na frequência de entrada, mas tudo é possível.
Para dobrar a frequência no circuito apresentado, basta substituir o divisor por 1000 para um divisor por 2; um flipflop (tipo D).
Mas ainda fica a resolução mínima de 2Hz.
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Re: multiplicador frequencia

Mensagempor juniorlucival » 01 Nov 2013 09:51

Pessoal quero agradecer a todos mais uma vez, vejam a leitura do sinal não foi problema, eu fiz com o módulo ccp1, e timer1 tranquilo, com eles eu obtenho o período, essa medição eu fiz no main principal, (eu optei por asm justamente devido a dificuldade de manipular tempos exatos no C), ou seja eu tenho em duas variáveis os valores de meio período (16bits) esses valores teriam que ser usados para fazer meio ciclo em um pino da saída, dai eu inverto o estado do pino e novamente uso esse valor para o restante do período. Minha intenção era usar a interrupção para isso, mas pra frequências altas onde a contagem e menor do número de ciclos os comandos de operação mesmo de salvar contexto e afins mais o fato de ter que usar prescale do timer2, me gastam tempos que são essências para o sinal. o circuito acima eu montei e testei, ele para frequencias baixas não funciona, (claro fiz em simulação) e para as altas funciona mas muito distorcido o sinal. além de provocar uma queda da amplitude conforme a frequência aumenta, esse material e para caminhões diesel, ou seja preciso fazer algo com estabilidade. Amigos sei que não é elegante, mas fiz com dois mcus, dois pic16f873a, no segundo liguei 17 portas com as 17 restante do primeiro, para o segundo com essas portas eu tenho a transferência de 16bits de dados mais 1 bits de confirmação da transferencia. Pensei no modo como os lcds trabalham e fiz parecido, com isso o valor do período que é transmitido para o segundo eu uso um timer1 de 16bits e pronto, o sinal ficou com precisão de 1microsegundo, ou seja eu dobro a frequencia e na saída fica apenas 1microsegundo a mais, isso para qualquer faixa de 16bits além do mais, se o sinal de saída não ficar satisfatório, ou seja digamos que na realidade necessite um pouco mais que o dobro com esse circuito consigo ajustes. Como esse pic é super barato, penso em continuar com essa idéia, já montei o software vou hoje montar o protótipo, mas gostaria das críticas dos senhores por gentileza. E saber se posso postar o resultado em vídeo aqui para os senhores.
juniorlucival
Nibble
 
Mensagens: 63
Registrado em: 02 Jan 2010 14:44

Re: multiplicador frequencia

Mensagempor ze2 » 01 Nov 2013 11:18

ufa. quase perdi o fôlego. Pwm pra este mc - não sei se consegue mudança suave da frequencia. Não vi registradores pra isso. Particularmente gostei + da solução do amigo proex. O circuito é simples e fácil de entender. Com relação à questão de frequencias baixas e altas, permita-me dar um xute (cuidado com o saco): coloque um 4051 - multiplex analogico - chaveando alguns (talvez menos de 8) capacitores xute entre 10p e 10nF em C1. Seu sistema avaliaria a frequencia e chavearia pro capacitor correto. Ou nem. Pensei melhor (ou pior) Meio que é só colocar o valor (devidamente deslocado) que achou dos períodos direto nos pinos do port que chaveiam o 4051. Mas na prática a teoria é outra.
Doeu?
abç
ze2
Byte
 
Mensagens: 193
Registrado em: 09 Fev 2009 13:37

Re: multiplicador frequencia

Mensagempor MOR_AL » 01 Nov 2013 14:15

proex escreveu:http://www.maximintegrated.com/app-notes/index.mvp/id/3327

.


Este circuito realmente gera o dobro de pulsos na saída com relação a entrada.
Mas há um detalhe.
Se a frequência for fixa, pode-se ajustar o filtro RC para que os semi períodos sejam idênticos.
Se a frequência for variável, e com uma relação tão grande como a do colega Junior, a saída somente será quadrada para uma frequência.
O circuito RC atrasa a variação de entrada com um período fixo. Na saída tem-se um período também fixo, depois da transição de entrada.
Com a frequência variando, tem-se um pulso com período fixo logo após cada transição de entrada.
Se a frequência aumentar muito, o circuito RC pode não ter tempo para variar sua tensão, já que é um integrador, a ponto da saída do comparador provocar a transição antes que um novo pulso de entrada ocorra.
Com um PLL, a frequência dobra com semi períodos iguais, o único efeito é que ocorre defasagem entre o sinal de entrada e o sinal do divisor por 2. Esta defasagem pode variar entre 0+º elétricos e 180-º elétricos. Fora desta faixa, o PLL perde o sincronismo (lock) e a frequência não se mantém no dobro da de entrada.
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Re: multiplicador frequencia

Mensagempor norad58 » 01 Nov 2013 17:48

6is complicam muito...

Um dobrador de frequencia dá pra fazer com algumas portas nand e alguns RC usados como diferenciador de borda de sinal. Ou seja, pra cada pulso onda quadrada, o circuito gera um pulso na borda de subida e descida deste pulso. Usei um circuito similar para dobrar duas vezes o sinal de entrada, ou seja x4, um sinal de encoder incremental de 250pulsos. Dependendo da frequencia vai vem.
Também tem como montar um dobrador com um trafo com nucleo de ferrita pequeno, transistor, dois diodos, etc :wink:
norad58
Word
 
Mensagens: 693
Registrado em: 08 Abr 2013 15:56

Re: multiplicador frequencia

Mensagempor juniorlucival » 02 Nov 2013 11:54

Agradeço a todos, já terminei o projeto, e funcionou muito bem com precisão absurda, fiz o protótipo e testei desde 20hz até 10 khz com precisão de 1hz, não sei se posso mas como todos aqui me ajudaram vou postar os resultados para quem tiver o mesmo problema usar https://www.dropbox.com/s/0lup7a6ch3w7j ... Marlos.rar fiz com dois pics mesmo, a ideia de usar um op e uma porta xor, usa circuito rc outra ideia postada aqui falava em usar portas nands e circuitos rc, vejam todos circuitos rc que usei dependente muito da frequência e como o range é extenso, acaba por funcionar bem apenas em uma faixa. Bom quero terminar agradecendo a todos aqui.
juniorlucival
Nibble
 
Mensagens: 63
Registrado em: 02 Jan 2010 14:44


Voltar para PIC

Quem está online

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

cron

x