Mini Osciloscópio Digital com PIC18F4520

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Mini Osciloscópio Digital com PIC18F4520

Mensagempor Francys Reymer » 15 Abr 2010 01:06

Olá a todos,

pessoal estou fazendo um projeto de um mini osciloscópio digital com display gráfico 128x64 e quero utilizar o pic18f4520 mas estou com algumas dúvidas.

Pra mim converter sinal AC eu teria q utilizar algum conversor especial ou o conversor AD do pic já serve (bom pelo menos eu acho q ele converte somente DC)?

Eu sei q posso definir a Vref+ e Vref- dele, mas no Vref- posso colocar sinal negativo ou ali só será a minha menor referencia positiva?

Eu já vi alguns projetos parecidos q utilizam um amplificador operacional, mas para que ele serviria neste projeto?

Minha largura de banda seria definida calculando a frequencia do tempo mínimo de aquisição? No datasheet fala q o tempo minimo seria de: 2,4 us então minha largura de banda seria de aproximadamente 400 KHz seria isso ou tem outro calculo?
Avatar do usuário
Francys Reymer
Byte
 
Mensagens: 102
Registrado em: 10 Dez 2009 15:21

Mensagempor renatokodaira » 15 Abr 2010 09:19

Os PICs 18F nao tem uma taxa de conversao analogico-digital muito alta (de 20 a 40 ksamples/s), servindo apenas para mostrar sinais de audio na casa de 10kHz.

Tem a opçao de se usar os dsPIC30 que tem alguns modelos com taxa de amostragem de 500ksample/s a ateh 1000ksample/s.

Para sinais AC com excursao por tensoes negativas, voce tem que condicional o sinal para que seja adicionado um nivel DC, pois os PICs somente convertem sinais com tensao positiva. Nao adianta ter Vref- com tensao negativa. O Vref- significa tensao de referencia minimo, mas nao negativa. Esse condicionamento pode ser feito por amplificadores operacionais.

Veja um projeto em:
http://www.semifluid.com
renatokodaira
Byte
 
Mensagens: 402
Registrado em: 11 Out 2006 15:15

Mensagempor Francys Reymer » 15 Abr 2010 12:56

renatokodaira escreveu:Os PICs 18F nao tem uma taxa de conversao analogico-digital muito alta (de 20 a 40 ksamples/s), servindo apenas para mostrar sinais de audio na casa de 10kHz.


renatokodaira, obrigado pela dica mas vou utilizar o pic18 mesmo, eu vi um projeto com pic16f877a que conseguia medir até 60khz, por isso achei q a do pic 18 seria um pouco maior.

renatokodaira escreveu:O Vref- significa tensao de referencia minimo, mas nao negativa. Esse condicionamento pode ser feito por amplificadores operacionais.


Como assim fazer um condicionamento?
Avatar do usuário
Francys Reymer
Byte
 
Mensagens: 102
Registrado em: 10 Dez 2009 15:21

Mensagempor renatokodaira » 15 Abr 2010 13:57

Com os PICs 16F vc nao consegue amostrar sinais de 60kHz, pois a maxima amostragem fica em torno de 33ksample/s isso sem ter nenhum processamento no PIC, o que no fim resulta em 16 a 20 ksps com processamento (por exemplo armazenar os dados numa memoria). Com os 18F eh possivel teoricamente uns 40 ksps com tempo gasto tambem para processamento (ou 100ksps sem processamento algum e a 40MHz de clock).

Condicionar o sinal quer dizer limitar a excursao do sinal medido para o intervalo entre as duas tensoes de referencia do conversor AD.

Por exemplo, voce usa Vref+ em 5V e Vref- no GND (0V). Assim, pra voce medir um sinal AC que excursione de -10V a + 10V (ou 20Vpp), primeiro voce precisa reduzir em 4 vezes e depois somar um sinal DC (offset) de +2,5V para que ele "caiba" dentro da janela de 5V do conversor AD. Assim uma tensao de -10V vai ser medida como 0V no conversor ( e para voce mostrar no display, precisa fazer a conta inversa, ou considerar esse condicionamento no processamento) e os +10V se tornam 5V para o conversor.

Ao inverso, um sinal de amplitude muito pequena, pode ser amplificado, para poder aproveitar melhor a resolucao do conversor AD, digamos 1Vpp, pode ser amplificado em 5 vezes (e depois somado a +2,5V). Isso tudo poder ser feito pelos AOs (amplificaçao/reduçao e offset), com chaves rotativas e divisores de tensao acoplados para escolher a escala (como num scope analogico) ou por software e botoes (usando potenciomentros digitais).
renatokodaira
Byte
 
Mensagens: 402
Registrado em: 11 Out 2006 15:15

Mensagempor Ander_sil » 15 Abr 2010 14:51

Pode começar estudando este projeto.

http://www.gabotronics.com/development- ... tikitb.htm

Tem esquema elétrico e programa em C.
Anderson Chrispim da Silva
chrispimdasilva@gmail.com
Ander_sil
Byte
 
Mensagens: 368
Registrado em: 30 Out 2006 09:58
Localização: Campinas - SP

Mensagempor Francys Reymer » 15 Abr 2010 15:29

Ander_sil escreveu:Pode começar estudando este projeto.

http://www.gabotronics.com/development- ... tikitb.htm

Tem esquema elétrico e programa em C.


Obrigado pela dica mas prefiro estudar os conceitos do que perder tempo estudando esquemas elétricos e códigos de terceiros, mas vlw.
Avatar do usuário
Francys Reymer
Byte
 
Mensagens: 102
Registrado em: 10 Dez 2009 15:21

Mensagempor fabim » 15 Abr 2010 16:22

Francys Reymer escreveu:
Ander_sil escreveu:Pode começar estudando este projeto.

http://www.gabotronics.com/development- ... tikitb.htm

Tem esquema elétrico e programa em C.


Obrigado pela dica mas prefiro estudar os conceitos do que perder tempo estudando esquemas elétricos e códigos de terceiros, mas vlw.


Francisto Remédio.
Existe uma técnica muito utilizada, que é a seguinte.

Imagina uma fonte simetrica alimentando um buffer, ou um amplificador que seja!!
Isto é impraticavel para o pic certo ? Pois na saida deste buffer vai ter V+ e V-!!
Depende....

Simule o seguinte no seu software..

LMXXX com fonte simetrica de + e - 6V por exemplo.
Na saida do LM tu faz o seguinte, coloca 2 resistores em série de 1K por exemplo, no fim destes resistores vai para +6V.
Tu vai medir, entre GND, e o meio dos dois resistores..

Como funciona a técnica ? Facil.
Leia o ADC, que vai ser excitado por este buffer. A tensão medida = SigneD!! hehehe Sim, signed.
só que a tensã de excitação da entrada para Saira esta com ratio de 1/2..

Imagina assim. tu colocou neste buffer + 2V.
Lá na saida vai estar com 1V.. porem signed.

ou seja. (VCC/2)+/-[ Vexcitaçao/2] = 4V..

Isso mesmo.. +/-. pois

Se você aplicar -2V...
Vout = (VCC/2)+/-[ Vexcitaçao/2] = 2V pois Vexcitação = " -V"...

Imagina que voce tem que medir um termopar, que gera tensão + e -.
Como você faria isso ? pô meu AD só le tensão entre Vref e GND.... poisé.. é assim que fazem.

Se por exemplo usar um ADC de 16 bits, voce simplesmente vai converter em signed.
Suponhando que o seu fundo de escada de referencia do ADC é de 5V.
você vai conseguir medir.:
32768 para +V
32768 para -V
Sabendo-se que 5V/16bits =0,000 0762 951V

Sabe que os steps de 0 para V+ e 0 para V- em fundo de escala são de 76 micro volt!!! poisé jusé!!!

ai entra, se usar um PIC com 10 bits. é a mesma coisa para medir AC..
Só lembrando que você vai converter em signed, e vai ter de 0 a +512 e 0 a -512. de peso binario..

Chupou a idéia ?
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 Francys Reymer » 16 Abr 2010 13:30

e sobre a velocidade do dspic? to pensando em utilizar o DSPIC30F4012 q tem na farnell e é DIP, e como é feito o cálculo de amostragem q ñ entendi muito?
Avatar do usuário
Francys Reymer
Byte
 
Mensagens: 102
Registrado em: 10 Dez 2009 15:21

Mensagempor fabim » 16 Abr 2010 14:49

Francys Reymer escreveu:e sobre a velocidade do dspic? to pensando em utilizar o DSPIC30F4012 q tem na farnell e é DIP, e como é feito o cálculo de amostragem q ñ entendi muito?


francisco. assim.

Veja, imagine uma senoide de 1khz.. Só que entre semi ciclos uns 64 pontos cada.. Quer dizer que o desenho na tela vai ficar legal né ?
Agora imatine este mesmo 1khz, só que com 4 mostras por semi ciclo..
Uma bostega né ? vai ficar parecendo mais um daqueles graficos retilineos de desenhos de ligar ponto..

Existem técnicas que utilizam FFT, e DFT..
Que pela amostragem em nivel, você consegue derivar uma amostra constante de um desenho. Por exemplo.
Tu consegue fazer 64 amostras por divisão. só que a senoide que você esa lendo, consegue amostrar só 3.6 amostras divisão. Mesmo assim, o FFT/DFT vai verificar se essa frequencia, confere com os semi ciclos anteriores, e assim formar uma figura da forma real que ela esta sendo lida!!! mesmo que lendo apenas 3.6, ela desenha em 64..

Agora, isso vai muito da sua perseverança, e do seu conhecimento de dominio de tensão no tempo, e suas variantes.

A fabim, me ensina ai.:
R>: www.google.com.br

A fabim, eu ja procurei no google, eu queri mesmo que me ensina-se.
R>: quer que eu passe o orçamento por pacote fechado, ou por hora ?


Bom, comece no basicação.
Tente desenhar um senoide no display, com o seu iéca, pic.

Fabim
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 renatokodaira » 16 Abr 2010 14:51

como é feito o cálculo de amostragem q ñ entendi muito?


Os conversores por aproximaçao sucessiva desses PICs precisam de um clock para funcionar, que voce configura atraves de um registrador. Esse clock pode ser funçao do clock principal do microcontrolador ou um clock baseado em RC. Esse clock do conversor precisa atender a alguns requisitos. Um deles é o periodo minimo (no caso 84 nano segundos). A cada periodo desse clock (Tad), se obtem um bit da conversao. Como o conversor é de 10 bits, ele precisa de pelo menos 12 periodos desse clock para fazer a conversao inteira (veja que precisa de mais 2 periodos extras alem dos 10). Alem disso, antes da conversao, voce precisa dar um tempo para que um capacitor (de 4.4pF) de sample e hold seja carregado com a tensao a ser convertida. Segundo a datasheet, precisa de pelo menos um periodo igual a 1 Tad para se carregar esse capacitor.
Entao pelo menos 13 periodos Tad vai durar uma conversao. Se considerar o Tad minimo de 84ns, o tempo total da conversao sera de 1,092us o que resulta em 1/1,092us = 915 mil conversoes por segundo. Veja que isso é o maximo teorico, pois a cada conversao, voce precisa ler o registrador com o resultado da conversao, armazenar em alguma memoria, processar o valor, mostrar no display, etc um monte de overhead de processamento, o que toma tempo do microcontrolador, diminuindo a sua taxa de conversao real.

Como pelo teorema de Nyquist, voce precisa ter uma taxa de amostragem pelo menos 2 vezes a frequencia do sinal a ser amostrado (na pratica eh melhor ter umas 10 vezes), sua banda de frequencia do scope sera limitada a uns 100kHz mais ou menos. Eu tenho um scope digital num videogame Gameboy, uma plaquinha-cartucho com um conversor MAX114 (de 1Msps) como conversor AD (o processador do Gameboy é um Z80) e consigo ver sinais de até 100kHz. Alem disso começa a haver "aliasing" que causa uma leitura/apresentaçao erronea dos sinais pela subamostragem.
renatokodaira
Byte
 
Mensagens: 402
Registrado em: 11 Out 2006 15:15

Mensagempor Francys Reymer » 17 Abr 2010 20:34

e se eu utilizar um conversor ad externo para aumentar a minha largura de banda? vcs conhecem algum ci conversor ad que seja superior aos aqui citados que seja fácil de se encontrar aqui no Brasil e ñ seja muito caro?
Avatar do usuário
Francys Reymer
Byte
 
Mensagens: 102
Registrado em: 10 Dez 2009 15:21

Mensagempor fabim » 17 Abr 2010 20:56

Francys Reymer escreveu:e se eu utilizar um conversor ad externo para aumentar a minha largura de banda? vcs conhecem algum ci conversor ad que seja superior aos aqui citados que seja fácil de se encontrar aqui no Brasil e ñ seja muito caro?


a uXip tem uns AD muito bons!!
MCP3201 - 02 - 04 - 08 etcc..

Eu uso eles, são para 175KSPS em 12 bits, e trabalham de 2,7V a 5.5V, com Vref externo, e tensão de entrada diferencial. "custam alguns reais".
Eu utilizo para fazer FFT, de rede de 60hz, e para saida de TC.

Abraços
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 Francys Reymer » 27 Abr 2010 18:25

já aproveitando este tópico, eu utilizo o proteus e vi que lá ñ tem o DSPIC30F4012 que talvez eu utilize, ñ sei se é a versão que eu to utilizando ou se ñ tem mesmo pra simular. Caso tenha naonde posso arrumar uma biblioteca que tenha?
Avatar do usuário
Francys Reymer
Byte
 
Mensagens: 102
Registrado em: 10 Dez 2009 15:21


Voltar para PIC

Quem está online

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

x