xr2206 and pic

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

xr2206 and pic

Mensagempor juniorlucival » 29 Set 2012 01:08

Boa Noite pessoal do asm51, mais uma vez preciso da ajuda dos senhores, idéia para o meu projeto, veja tenho um circuito que gera onda senoidal 10VCa usando um xr2206, e preciso fazer o seguinte no sinal de saída, preciso contar 58 ciclos e aterrar o sinal ou seja que o sinal fique sem tensão alguma, zero, durante um tempo determinado pelo microcontrolador, e após isso, volte a oscilar um número de vezes tambem determinado pelo microcontrolador, esse número de ciclos varia de 1 até 100 e os delays sem tensão tambem variam, a frequência de trabalho é de 50hz até 7khz. Senhores!, será que no próprio ci tem algum recurso para isso, ou preciso fazer contagem ad no mcu pra isso ? agradeço a todos que colaborarem. até.
juniorlucival
Nibble
 
Mensagens: 63
Registrado em: 02 Jan 2010 14:44

Re: xr2206 and pic

Mensagempor EvandrPic » 29 Set 2012 06:54

Você pode usar um detetor de passagem por zero (zero cross detector), muito usado em dimmers com microcontrolador.
Usando dois optoacopladores (4N25 por exemplo) você sabe quando passa do negativo para o positivo e do positivo para o negativo, polarizando diretamente ou inversamente os LEDs dos optoacopladores. Dessa forma é so contar os pulsos gerados a partir dos optos.

No circuito abaixo, nos primeiros 3 pulsos você tem os 360º da senoide. A partir daí você vai somando de 2 em 2 pulsos pra cada 360º subsequente.
Imagem

Aquí tem um circuito bem implementado pra isso (não deu pra postar a imagem aquí no fórum):
http://www.microchip.com/forums/downloa ... e=0;603904
Do tópico abaixo:
http://www.microchip.com/forums/m603446-print.aspx

juniorlucival escreveu:Boa Noite pessoal do asm51, mais uma vez preciso da ajuda dos senhores, idéia para o meu projeto, veja tenho um circuito que gera onda senoidal 10VCa usando um xr2206, e preciso fazer o seguinte no sinal de saída, preciso contar 58 ciclos e aterrar o sinal ou seja que o sinal fique sem tensão alguma, zero, durante um tempo determinado pelo microcontrolador, e após isso, volte a oscilar um número de vezes tambem determinado pelo microcontrolador, esse número de ciclos varia de 1 até 100 e os delays sem tensão tambem variam, a frequência de trabalho é de 50hz até 7khz. Senhores!, será que no próprio ci tem algum recurso para isso, ou preciso fazer contagem ad no mcu pra isso ? agradeço a todos que colaborarem. até.
EvandrPic
Dword
 
Mensagens: 2116
Registrado em: 31 Mar 2010 15:05

Mensagempor RobL » 29 Set 2012 10:23

Para mim falta mais informação.
Como será determinado quantos ciclos serão usados ?
Se for pelo micro, terá que contar esses ciclos e desligar o gerador ( o XR2206).
Quem muda a F do XR2206, manualmente ou por programa do micro ?

Para ficar mais sofisticado, compacto e até menor custo, porém, não sei se é o caso, pois não ficou claro, somente pelo microcontrolador dá para fazer o oscilador senoidal nesta faixa de F e o controle dos ciclos.
Obviamente há microcontroladores mais adequados que PIC para tal, no caso de gerar as senoides, mas dá para usar PIC também.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor juniorlucival » 29 Set 2012 10:36

a quantidade de ciclos e continua, ou seja sera de 50 hz até aprox 7000hz conforme expliquei, mas durante esses ciclos contara de 1 a 100 ciclos, dai ele retorna o valor a zero durante 1 a 100 ciclos tambem, ou seja digamos que ligo o xr2206, dai ele começa contar, na contagem 40 por exemplo ele deixa a zero durante o tempo de uns 5 ciclos, dai tudo recomeça, esses valores sera determinado pelo cliente, a frequencia se determinara pelo proprio xr2206, o papel do microcontrolador será apenas o desligamento do xr2206 durante o período determinado, eu não compreendi muito bem o datasheet do xr, pois se pudesse sincronizar o senoide atraves de um clock do ci ja estaria resolvido, veja faço com xr e não com o pic, porque não consigo dois processamento simultaneos mesmo com o interrupt, por causa de varreduras que preciso fazer ao mesmo tempo, já pensei em dois pics, com i2c, mas acretido que a onda do xr2206 tem mais resolução que os 8 bits do pic. agradeço a todos e principamente ao EvandrPic, pela idéia muito boa.
juniorlucival
Nibble
 
Mensagens: 63
Registrado em: 02 Jan 2010 14:44

Mensagempor Djalma Toledo Rodrigues » 29 Set 2012 11:49

O XR como é o Gerador 'roda' contínuo

Da saida do XR um segundo estágio chaveia o Sinal. Isso você consegue com FET, Diodos,
Transistors, ou mesmo um LDR

Tranqüilo.
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor RobL » 29 Set 2012 13:51

Como a frequência varia, terá que contar os ciclos pelo micro e cortar o XR.
Para contar os ciclos, basta um diodo em série com um R, sinal retirado sobre o R (contar ciclos positivos), isto se a senóide for em torno do zero(Vca). Se passar de 5 V terá que ter um zener, como limitador.

NOTA: O XR2206 gera 4 formas de onda ao mesmo tempo, da mesma frequencia, inclusive tem uma saída retangular (quadrada) que através de um divisor de tensão poderá ser usada para contar os ciclos.

Se for uma só peça, fazer com o gerador é aceitável. Se for para várias peças, tudo pode ser feito com um só microcontrolador é só selecionar o micro.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor juniorlucival » 29 Set 2012 16:19

Senhores gostaria de agradecer muito a todos, todas idéias muito boas. valeu mesmo pessoal.
juniorlucival
Nibble
 
Mensagens: 63
Registrado em: 02 Jan 2010 14:44

Mensagempor juniorlucival » 05 Out 2012 10:00

senhores para esse projeto não deu certo com pic, veja para cada byte enviado eu preciso de 10 ciclos para atualização do ad e com isso mudar a frequencia.
(1 / 10 000) / (510 * 10) = 1,96078431 × 10-8 segundos por um ciclo completo

10 000 é a frequencia máxima que preciso.
510 é o número de bytes para a senoide
em teste na bancada não assou de 2000 hz

mesmo com o pic18f de 48mhz
1 / (48 000 000 / 4) = 8,33333333 × 10-8
veja o tempo mínimo é bem mairo que necessido de 1,96*10-8

ou seja da certo mas pra frequencias abaixo de 3000hz

agora estou mudando de idéia ou uso mesmo o xr2206 ou parto para o ad9851

gostaria da opinião dos senhores
e para uso do ad9851, será que consigo controlar seu clock de trabalho
com o pic, e dividir esse clock.

obrigado a todos
juniorlucival
Nibble
 
Mensagens: 63
Registrado em: 02 Jan 2010 14:44

Mensagempor MOR_AL » 05 Out 2012 15:33

Vamos lá:
1 - Use o XR2206 para gerar a senóide. O controle da frequência vem depois.
2 - Coloque entre o XR e a saída do seu sinal, ou um fet, fazendo parte de um divisor de tensão, ou um mosfet 4016 (ou 4066). São chaves bilaterais.
Este circuito vai ser controlado pelo PIC.
3 - Coloque um PIC (pode ser qualquer um simples que possua TIMER0). Talvez possa ser até um mais simples ainda. Vai depender de quais funções você vai querer acrescentar em seu projeto.
4 - A saída do sinal QUADRADO TTL do XR, você faz entrar no pino T0CKI (PORTA,4?). O Timer0 vai contar os pulsos:
a) Para interromper o sinal senoidal na saída. O PIC conta os pulsos e quando o timer0, com o número de pulsos anteriormente programado, gerar TMR0IF, você faz com que outro pino do PIC comande o corte do fet ou do mosfet.
b) Para esperar um número de ciclos até reenviar a senóide para a saída. Você programa o timer0 para gerar TMR0IF quando n pulsos da onda quadrada forem lidos. Ao ocorrer esse evento você libera a passagem da senóide através do fet ou mosfet.
c) Para reiniciar, retorne ao item a.
5 - Para que o PIC controle a frequência do XR.
Use um timer (pode ser o mesmo timer0, já que os eventos ocorrem em tempos diferentes) para ler a frequência. O ponto elétrico é o mesmo. A saída TTL do XR. Talvez seja necessário um divisor resistivo para obter o sinal TTL. Vai depender da sua tensão de alimentação do XR e da escolha do circuito.
6 - para alterar a frequência do XR você pode usar uma porta do PIC e um circuito R-2R-R. A porta atuando nesse circuito forma um Conversor Digital Analógico (CDA) com 8 bit ou 256 valores. A saída desse circuito pode atuar em uma fonte de corrente (um transistor e alguns resistores). Essa fonte de corrente vai atuar em um dos pinos do XR (pino 7 ou 8 ). Note que você dispõe de apenas 256 valores de frequência, de modo que não vai poder variá-la entre 50c/s e 7kc/s. Para poder varrer mais frequência, até chegar a faixa desejada, você vai precisar de algumas chaves que ditarão a faixa usada. Na verdade estas chaves acrescentam outros valores de resistores de emissor na sua fonte de corrente. Isso vai aumentar o "range" da corrente e com isso alterar a faixa de frequência. Você pode fazer isso ser automático, usando alguns pinos do PIC em substituição das chaves. Cada pino, (ou uma combinação dos mesmos) pode acionar fets, que "conectariam" os resistores de emissor de sua fonte de corrente.
7 - Você nem precisa saber qual é a relação entre os pinos acionados e a faixa para setar uma frequência. Basta ir aumentando, ou diminuindo (mais dois pinos como entrada do PIC (+ e -), até chegar ao valor desejado.
8 - Para "VER" a frequência fornecida pelo XR, você precisa de um mostrador LCD. O valor lido no timer0 deve ser enviado ao LCD.

Como você está vendo, dependendo da sua exigência, pode ser coisa simples ou complicada.
No mais é estudar os "application notes" e manuais dos CIs usados, para poder fazer seu projeto. Pesquise também, por "Fonte Corrente Transistor", para saber fazer a fonte de corrente.
Bons projetos.
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


Voltar para PIC

Quem está online

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

x