Condicionador de sinal para PIC causa oscilação??

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Mensagempor RobL » 15 Fev 2012 13:27

O RCV420 é analógico, nada mais que um OP dedicado, nada de bits.
Sim o seu problema é o que já disseram, looping de terra (referência) e falta de desacoplamento de fonte.

Em outras palavras, não pode estar passando corrente de outros circuitos (pic por exemplo) por nenhum fio que vai à referência (0V) do seu chip analógico.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor Haroldo Coelho » 15 Fev 2012 17:35

Obrigado, companheiros.

Aumentando consideravelmente o LOOP do SOFTWARE de amostrar o valor no DISPLAY(de 200 passei para 3000 ms), a leitura praticamente se estabilizou, como meu processo é muito lento, poderia deixar assim.

Como não quero perder a cabeça, segundo o FABIN isso pode ocorrer,Vou tentar melhorar este projeto.

Resumindo, o problema pode se oriundo de duas fontes principais:

1- A VREF + do PIC

2- A trilha do terra para o RCV e o PIC devem ser exclusiva, ou melhor, devem vir direto do capacitor maior da fonte, e somente depois de passar pelo RCV e PIC é que devem prosseguir para os outros componentes?

pergunta: No meu layOUT estou passando uma trilha de terra no meio do PIC, atravessando-o por de comprido, voces acham que isso é bom, ruim ou indiferente?

ONDE ACHO literatura sobre LAYOUT para PCI?
Haroldo Coelho
Byte
 
Mensagens: 343
Registrado em: 14 Out 2006 00:20
Localização: Rio de Janeiro

Mensagempor jorgeluiz » 16 Fev 2012 00:17

so' por curiosidade, qual a frequencia de clock esta' usando?
Avatar do usuário
jorgeluiz
Byte
 
Mensagens: 448
Registrado em: 26 Mar 2007 02:26

Mensagempor MOR_AL » 16 Fev 2012 05:09

Haroldo Coelho escreveu:Olá MORAL.

....

Continua com essa oscilação. É evidente que o RCV420 envia ruidos, que se somam ao sinal de 0-5VCC. Ou será que a trilha da PCI é que está captando ruido ambiente??

Se aí tem ruído, podem ser três coisas:
1 - O RCV não tem precisão suficiente, ou ele tem, mas você está querendo medir com mais ainda. Vide mais adiante.
2 - A impedância em algum conector do RCV está alta e com isso fica mais suscetível à captação de ruído. Ruído este que TAMBÉM pode estar sendo gerado pelo PIC.
Leia o manual e verifique se pode ser reduzida a impedância em algum trecho ou incluir um filtro passa-baixas frequências.
3 - Se você quer usar um CAD com 10 bits, a precisão da tensão de referência TEM que ser melhor ou igual a meia tensão do bit menos significativo. Para uma referência de 5V e CAD com 10 bits, VRef = < 0,5 x 5V / 1024 = 2,441mV. A fonte (Vcc), proveniente de um 7805, não possui precisão e nem tão pouco a acurácia necessárias para uma leitura correta (dentro do erro esperado de 1/2 bit menos significativo).


estive olhando o DATASHEET do RCV420 mas não ví nada escrito se é apenas de 8 BITS, não acredito pois senão não teria tanta comercialização este CI da TEXAS.

Vou ver se algo pode ser feito. Você postou o link do datasheet? Vou verificar, caso contrário coloque o link.

Alguns dados desse CI:

...
l PRECISION 10V REFERENCE
l BUILT-IN LEVEL-SHIFTING
l ±40V COMMON-MODE INPUT RANGE
l 0.1% OVERALL CONVERSION ACCURACYl HIGH NOISE IMMUNITY: 86dB CMR

Não sei o que o manual informou com OVERALL, mas aí informa que a acurácia está em 0,1%. Ou uma parte em 1000, o que seria suficiente para alterar o valor das unidades de uma unidade. Se 6, mostraria 7, ou 5, e aí por diante.
OVERALL pode ser em toda a faixa de temperatura ambiente de funcionamento. Como se costuma usar uma sub faixa, a variação pode ser menor.
NOISE IMMUNITY: 86dB CMR - Aqui informa a imunidade a ruídos CMR (deve ser Common Mode Rejection). Veja se há mais informação de como essa medida foi feita. Se foi por tensão, seria 20.000 vezes. A tensão comum seria atenuada 20.000 vezes. Imagine que o sinal tenha 5mV (bit menos significativo). Se a tensão de modo comum for de 5V, então o seu sinal teria também outro sinal devido a tensão de modo comum, ou 5/20.000 = 250uV, o que seria pouco. Mas tem que entender o que está sendo passado com essa informação. Eu apenas supus sem consultar o manual.
MOR_AL


Ví um circuito no DATASHEET que se pode usar para aumentar a CMR, mas não acho que é o meu caso pois este circuito se aplica para quem faz uso do ajuste de SPAN do mesmo, e eu estou usando-o na forma mais básica possível, mas vou motar para ver o que acontece.
"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

Mensagempor MOR_AL » 16 Fev 2012 05:12

... Duplicado...
Editado pela última vez por MOR_AL em 17 Fev 2012 06:09, em um total de 1 vez.
"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

Mensagempor Haroldo Coelho » 16 Fev 2012 09:51

Joge luiz, O Clock do Programa é 20 MEGA. Porém eu experimentei um cristal de 4 Mega e a oscilação diminuiu. Era de se esperar, pois o PIC ficou mais lento.

MORAL, realmente, estou usando um 7805 para alimentar o PIC.
O DATASHEET do RCV420:http://www.pci-card.com/rcv420.pdf .
Haroldo Coelho
Byte
 
Mensagens: 343
Registrado em: 14 Out 2006 00:20
Localização: Rio de Janeiro

Mensagempor ze » 16 Fev 2012 10:53

Haroldo Coelho escreveu:Obrigado, companheiros.

Aumentando consideravelmente o LOOP do SOFTWARE de amostrar o valor no DISPLAY(de 200 passei para 3000 ms), a leitura praticamente se estabilizou, como meu processo é muito lento, poderia deixar assim.

Como não quero perder a cabeça, segundo o FABIN isso pode ocorrer,Vou tentar melhorar este projeto.

Resumindo, o problema pode se oriundo de duas fontes principais:

1- A VREF + do PIC

2- A trilha do terra para o RCV e o PIC devem ser exclusiva, ou melhor, devem vir direto do capacitor maior da fonte, e somente depois de passar pelo RCV e PIC é que devem prosseguir para os outros componentes?

pergunta: No meu layOUT estou passando uma trilha de terra no meio do PIC, atravessando-o por de comprido, voces acham que isso é bom, ruim ou indiferente?

ONDE ACHO literatura sobre LAYOUT para PCI?

então voce pode recompilar, bom.

1-pode usar outro +5 como ref. ou use o +5 do pic mesmo desde que no momento da leitura ad voce desligue os itens de maior consumo tipo o display 7seg. Se aciona-os por interrupção, faça a leitura dentro dela ao desliga-los p.ex.

2-sim e não. deve ser exclusiva e NÂO deve ir pros outros DEPOIS. é o contrário. Ao chegar no conector p.ex. deixa ela quetinha lá. Visuailze o inverso então: [resto]--terra cap fonte--pic--conversor (ou ampop)--[referências]--conector ---> morreu

Não conheço o conversor 4-20mA. Fico na dúvida do que ele faria de melhor que um resitor 250R. Bom se ele existe...

me lembro vagamente de ter visto algo sobre layoute numa visita naquele tróço da microchip em sp há alguns anos. De uma olhada no site
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32

Mensagempor ÁgioFelipe » 16 Fev 2012 10:57

Haroldo,
acredito que esse problema seja igual a colocar um LM35 e mostrar a temperatura com uma certa precisão no LCD, os últimos dígitos vão ficar oscilando, tipo: 27.4 , 27,3 , 27,4 ...
Esse problema resolve simplesmente obtendo umas 1000 leituras e tirando a média.
ÁgioFelipe
Word
 
Mensagens: 626
Registrado em: 27 Out 2006 20:04

Mensagempor Haroldo Coelho » 16 Fev 2012 15:13

LELIS, com um resistor de 250 OHM numa corrente de 4-20mA conseguiria 1-5 Volts...aí teria que usar um CI para conseguir ampliar para 0-5 Vcc. Por isso esse RCV 420 é específico para isso.

Estou fazendo outro LAY OUT.

O técnico que me enviou o soft disse-me que com a linguagem C não se tem muito recurso para mexer com o CAD. Que em ASSEMBLY seria melhor.

Aí então vem a pergunta que não quer calar...ASSEMBLY é melhor de C????eh,eh.
Haroldo Coelho
Byte
 
Mensagens: 343
Registrado em: 14 Out 2006 00:20
Localização: Rio de Janeiro

Mensagempor ze » 17 Fev 2012 07:10

concluindo meus chutes...
1-5 volts pra as aplicações (que conheço) atenderia muito bem. teorizo algo como ref- em 1V e ref+ no 5V. bom, esquece...

ah sim, acho que conheço este técnico do asm. é um de nossos colegas. e claro deve estar acompanhando isso. Imagino também qual compilador ele usa. Por gentileza consideremos o comentário dele como nulo e inofensivo. Os meus...idem.
C x asm...? bom, esquece...

boa sorte
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32

Mensagempor fabim » 17 Fev 2012 07:46

Haroldo bunny.

Deixa eu te explicar algumas coisas bem simples.

ANSI C - C PLUS PLUS - ASM.

Qual a diferença basica entre eles ?

Unica, existe um premontador que pega o SEU C, e converte para um C estruturado, e depois um montador assembly que pega o C estruturado e converte para ASM.

Acontece que dependendo da biblioteca um simples swap, ocupa quase duas dezenas de linhas.
Tipo o cara tem um inteiro, quer dividir em 4 bytes ou juntar que seja. Ele fica fazendo struct com union, etc.. Pois não se aprofundou em usar o ANSI C, usou só o C que foi vendo em exemplos...

Eu posso afirmar com toda certeza do mundo, que você com muita facilidade consegue acessar qualquer bit, qualquer byte, rotacionar, swapfar, ou qualquer AR que quiser com tamanho final praticamente igual a asm, e com a mesma facilidade que asm. Isto se a IDE que você estiver usando em C for ANSI C e tiver vergonha na cara, um GCC resolve o problema com muito louvor.

Pessoas que dizem que C não da muito recurso para certos periféricos de um uC são pessoas sem muita capacidade de dedicação, e que querem utilizar somente librarys prontas, de mikroC por exemplo..
São pessoas que querem sair do asm, e ter abstração total de baixo nivel!!!

Por este motivo, que empresas que tercerizam serviços para designers que cobram baratim e mexem com pic, se dão mal, e tem dores de cabeça.

O mercado brasileiro merece e possui, técnicos e engenheiros bons, e não gambiarristas de final de semana.

Harrold bunny, olha, meu conselho é. Aprenda ANSI C, brinque com ele, faça coisas bobas, rotacione bits, faça unions, structs, typedef's, string, sprintf, e tudo mais que o C lhe permite. Você vai querer vazar do ASM na velocidade da luz.

O ANSI C, é um asm em alto nivel.
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 andre_luis » 17 Fev 2012 22:22

Imagem
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Mensagempor chrdcv » 17 Fev 2012 23:00

fabim escreveu:Haroldo bunny.

Deixa eu te explicar algumas coisas bem simples.




Ops, acho que quis dizer:
C PLUS PLUS - ANSI C - ASM.

E há ressalvas visto que há muito tempo atrás era feito dessa forma. Atualmente um compilador C++, assim como o C gera código intermediário e então para o target. C++ para C existiu durante algumas etapas do desenvolvimento da linguagem C++
Avatar do usuário
chrdcv
Dword
 
Mensagens: 1580
Registrado em: 13 Out 2006 14:13

Mensagempor msamsoniuk » 18 Fev 2012 10:52

chrdcv escreveu:
fabim escreveu:Haroldo bunny.

Deixa eu te explicar algumas coisas bem simples.




Ops, acho que quis dizer:
C PLUS PLUS - ANSI C - ASM.

E há ressalvas visto que há muito tempo atrás era feito dessa forma. Atualmente um compilador C++, assim como o C gera código intermediário e então para o target. C++ para C existiu durante algumas etapas do desenvolvimento da linguagem C++


eh facil perceber que o conceito de converter C para asm e entao asm para linguagem de maquina nao faz sentido quando vc tem que suportar 20 ou 30 plataformas, pois teria que fazer 20 ou 30 conversores C para asm e entao 20 ou 30 conversores asm para linguagem de maquina. ao inves disso, compiladores modernos convertem C para uma plataforma orientada a registros generica, onde sao aplicadas as otimizacoes, para entao converter para o codigo de maquina.

GENERIC and GIMPLE

GENERIC is an intermediate representation language used as a "middle-end" while compiling source code into executable binaries. A subset, called GIMPLE, is targeted by all the front-ends of GCC.
The middle stage of GCC does all the code analysis and optimization, working independently of both the compiled language and the target architecture, starting from the GENERIC[31] representation and expanding it to Register Transfer Language. The GENERIC representation contains only the subset of the imperative programming constructs optimised by the middle-end.
In transforming the source code to GIMPLE[32], complex expressions are split into a three address code using temporary variables. This representation was inspired by the SIMPLE representation proposed in the McCAT compiler[33] by Laurie J. Hendren[34] for simplifying the analysis and optimization of imperative programs.


http://en.wikipedia.org/wiki/GIMPLE#GENERIC_and_GIMPLE

outro fator importante eh que programadores asm normalmente programam feito crianca! as vezes eles dao uma otimizada nas coisas, mas isso eh pontual. vc nao espera que o cara mantenha a performance dele para um codigo de 1 milhao de linhas, pq o cara nao aguenta... um compilador, no entanto, pode otimizar 1 milhao de linhas sem problemas de fadiga.
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor Haroldo Coelho » 25 Fev 2012 16:50

Companheiros, para finalizar este POST devo dizer que dentre as alternativas sugeridas pelos srs, optei por fazer apenas uma modificação no Lay Out da placa.
Com isso, a oscilação no último dígito ficou pífia.

Como é um instrumento para medir um nível de um tanque num navio, devo dotar de um DELAY de alguns segundos, devido ao balanço do navio quando navega em águas turbulentas. Com isso a indicação ficou deveras estável.

Obrigado a todos.

Quando resolví fazer um comentário de ASM x C sabia que estava mexendo com casa de marimbondos, eh,eh.
Haroldo Coelho
Byte
 
Mensagens: 343
Registrado em: 14 Out 2006 00:20
Localização: Rio de Janeiro

Anterior

Voltar para PIC

Quem está online

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

cron

x