Problemas com ADC12 (migrado)

Software e Hardware para uC Texas

Moderadores: andre_luis, 51

Problemas com ADC12 (migrado)

Mensagempor Fábio Pereira » 17 Out 2006 11:46

Alessandra Capitanio
Aprendiz


Brazil
36 Posts Posted - 14/11/2005 : 08:58:32
--------------------------------------------------------------------------------
Pessoal, estou utilizando o ADC12 em meu projeto, e está funcionando, porém ele varia muito, uma variação que com o multimetro normal eu não consigo pegar. Acredito que seja pela precisão dele, e isso está atrapalhando o meu controle (se ele não variasse nada como o multimetro eu estava feita!)

Alguém consegue me ajudar para evitar esta variação, já tentei varias coisas com base no livro do Fábio Pereira, como aumentando e diminuindo tempo de amostragem, mas não tive sucesso.

Alessandra Capitanio
alessandra@capitanio.com.br


Fabio Pereira
Conselheiro


Brazil
2205 Posts Posted - 14/11/2005 : 09:12:00
--------------------------------------------------------------------------------
Olá Alessandra,

O ADC12 é bastante sensível. Utilize capacitores de 100nF+10uF conectados ao pino VREF+.

Outra coisa: utilize um ótimo plano de terra na placa, com uma boa filtragem da AVCC e um circuito de entrada do ADC (normalmente um buffer) localizado próximo ao MCU.

Até +


Fábio Pereira
ScTec - Automação e Projetos Especiais
www.sctec.com.br


Alessandra Capitanio
Aprendiz


Brazil
36 Posts Posted - 14/11/2005 : 09:20:00
--------------------------------------------------------------------------------
Ok Fábio, obrigada. Mas não há também alguma configuração que eu possa fazer via software para amenizar o problema (até na declaração de variaveis no programa - que estou fazendo conversôes declarando como long int)?

Grata

Alessandra Capitanio
alessandra@capitanio.com.br


Fabio Pereira
Conselheiro


Brazil
2205 Posts Posted - 14/11/2005 : 10:06:27
--------------------------------------------------------------------------------
Bom,

O conversor gera um resultado de 12 bits, logo, a variável deveria ser int e não long int. Você está apenas jogando RAM fora, mas isso não provoca o problema que você está reclamando.

Acho que é mais um problema de hardware que de software. O que você poderia tentar fazer é filtrar o resultado, utilizando em primeira instância uma média.

Até +

Fábio Pereira
ScTec - Automação e Projetos Especiais
www.sctec.com.br


Alessandra Capitanio
Aprendiz


Brazil
36 Posts Posted - 14/11/2005 : 11:17:40
--------------------------------------------------------------------------------
Vc diz, uma média na programação?

Como eu poderia fazer isso, mexo diretamente ADC12MEM0, tipo criando um laço que armazena algums valores de amostragem e depois faço uma média?

Vc teria alguma rotina pronta disso em seu livro, ou algum outro caminho?

Grata,

Alessandra Capitanio
alessandra@capitanio.com.br


KrafT
Conselheiro


Brazil
3476 Posts Posted - 14/11/2005 : 11:34:49
--------------------------------------------------------------------------------
Alessandra, olha esse post:

http://www.asm51.eng.br/forum/topic.asp?TOPIC_ID=3881

Depois dessa dica do Guest, nunca mais me estressei com ruídos no ADC. Claro que um bom filtro na entrada é indispensável... Normalmente um RC resolve, mas em casos críticos um filtro ativo pode ser necessário.

PS: Nunca precisei de filtro ativo.

PS1: O filtro na entrada não pode "corromper" teu sinal. Tudo tem que ser bem dosado.


samsoniuk
Professor


Brazil
441 Posts Posted - 15/11/2005 : 10:28:44
--------------------------------------------------------------------------------

quote:
--------------------------------------------------------------------------------

O conversor gera um resultado de 12 bits, logo, a variável deveria ser int e não long int. Você está apenas jogando RAM fora, mas isso não provoca o problema que você está reclamando.

Acho que é mais um problema de hardware que de software. O que você poderia tentar fazer é filtrar o resultado, utilizando em primeira instância uma média.



--------------------------------------------------------------------------------


pois eh, depende da periodicidade de atualizacao. se quiser um novo valor a cada 1 segundo, pode fazer um certo numero de amostras, digamos 20, e ir somando um acumulador a cada amostra, no momento da exibicao basta dividir por 20. a cada 1 segundo vai ter um novo valor pela media, isso nao vai filtrar ruidos, mas vai diminuir a relacao sinal/ruido conforme o numero de amostras boas supera as amostras ruins.

para coisas mais dinamicas a media pode nao ser interessante, pq picos rapidos sao filtrados pela media como se fossem ruidos. se nao queremos perder nenhum dado, mas queremos eliminar o ruido, o certo eh usar umas tecnicas mais elaboradas.

eu tenho um livro legal escrito por uns caras do JPL, sobre filtragem de ruidos. quando eles mandavam sondas para o espaco, na decada de 60, eles batiam uma foto em branco e depois a foto desejada, subtraiam os valores de amostragem da foto desejada da foto em branco, que era inteira marcada por ruidos periodicos, obtendo assim uma foto razoavelmente mais limpida.

a ideia seria ter dois ADC, um deles conectado a fonte de sinal e outro desconectado, capturando o ruido de fundo em torno da fonte de sinal. assim bastaria subtratir diretamente o valor da amostragem desejada do valor do ruido de fundo e suponho que eliminaria o ruido de fundo, sem no entato perder os detalhes da amostragem.

tem outras ideias por software, mas achei bem interessante essa ideia dos caras do JPL.

atenciosamente,

marcelo samsoniuk
infralogic informatica ltda



Frohe Festtage und ein erfolgreiches 2006!

Edited by - samsoniuk on 17/11/2005 04:02:28

Viktor
Mestre


Brazil
634 Posts Posted - 15/11/2005 : 14:14:11
--------------------------------------------------------------------------------
Alessandra

O Fabio está correto. Sem um bom layout de circuito impresso você nunca terá um resulato satisfatório do conversor A/D. Isto envolve plano terra, desacoplamento, disposição dos componentes na placa, etc, etc. Se você não está conseguindo o resultado esperado e não tem tempo para fazer uma nova placa, então sugiro fazer um filtro digital simples, tipo médias e ver se melhora.
Fábio Pereira
embeddedsystems.io
Avatar do usuário
Fábio Pereira
Word
 
Mensagens: 674
Registrado em: 16 Out 2006 09:07
Localização: Kitchener, ON

Voltar para Texas

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitantes

x