Página 1 de 1

xr2206 and pic

MensagemEnviado: 29 Set 2012 01:08
por juniorlucival
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é.

Re: xr2206 and pic

MensagemEnviado: 29 Set 2012 06:54
por EvandrPic
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é.

MensagemEnviado: 29 Set 2012 10:23
por RobL
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.

MensagemEnviado: 29 Set 2012 10:36
por juniorlucival
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.

MensagemEnviado: 29 Set 2012 11:49
por Djalma Toledo Rodrigues
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.

MensagemEnviado: 29 Set 2012 13:51
por RobL
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.

MensagemEnviado: 29 Set 2012 16:19
por juniorlucival
Senhores gostaria de agradecer muito a todos, todas idéias muito boas. valeu mesmo pessoal.

MensagemEnviado: 05 Out 2012 10:00
por juniorlucival
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

MensagemEnviado: 05 Out 2012 15:33
por MOR_AL
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