Qual o tempo mínimo para uma conversão AD no 18F452?

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Qual o tempo mínimo para uma conversão AD no 18F452?

Mensagempor Fabio_Jerena » 15 Nov 2007 20:52

Bom galera, meu problema é o seguinte:

Preciso fazer o máximo de conversões AD´s no PIC em questão e estou meio perdido com as informações que tenho
Em mão tenho dois livros, o "Programação em C" do Fábio e "Conectando o PIC" do David, notei que as informações divergem um pouco...
Eu não sei a impedância dos sensores que vão ligados às portas, mas devem ser menor que 10Kohms já que o sensor é especificado para trabalhar com uC (sensor de pressão), eu queria saber quanto tempo leva aprox. para realizar uma conversão, no livro do Fábio ele fala que é o caso mais critico (10K) leva 19,72us e ele lê o sinal assim:

valor = read_adc(); e configurou o setup_ADC(ADC_CLOCK_INTERNAL );

Eu posso usar essa configuração usando o clock do PIC = 40Mhz?

Tenho uma apostila da MOSAICO e eles recomendavam usar assim:

set_adc_channel (1);
delay_ms(10); (é mesmo necessário?????)
valor = read_adc();

Eu preciso fazer as conversôes o mais rápido possível, como devo proceder?

Muito obrigado!!!
Fábio Jerena
Fabio_Jerena
Nibble
 
Mensagens: 52
Registrado em: 08 Mar 2007 08:59

Mensagempor buiz » 16 Nov 2007 07:44

Sim,

set_adc_channel (1); // seta o canal 1 do microprocessador
delay_us(100); (é mesmo necessário?????) // tempo necessario para estabilizar o canal
valor = read_adc(); // efetua a leitura do canal


Mais necessario quando for ler dois canais.

tipo:


set_adc_channel (0); // seta o canal 0 do microprocessador
delay_us(100); (é mesmo necessário?????) // tempo necessario para estabilizar o canal
valor1 = read_adc(); // efetua a leitura do canal

set_adc_channel (1); // seta o canal 1 do microprocessador
delay_us(100); (é mesmo necessário?????) // tempo necessario para estabilizar o canal
valor2 = read_adc(); // efetua a leitura do canal
Avatar do usuário
buiz
Byte
 
Mensagens: 165
Registrado em: 20 Out 2006 14:59
Localização: Cachoeira do Sul - RS

Mensagempor ze » 16 Nov 2007 08:18

de acordo com data sheet: 12,86uS.
um detalhe interessante: O Mplab dá um warning se durante a compilação identificar um tempo menor. Ou seja se houver algum erro de setup de ADCS2:ADCS0 x frequencia de clock.
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32

Mensagempor LeandroPIC » 16 Nov 2007 11:40

De uma olhada no datasheet e configure os registradores diretamente eo melhor a faser, quanto a inpedancia use um amplificador operacional com guanho unitário se a inpedancia for muito alta, e um filtro passa baixas, e tire a media da conversão.

Ai vai funcionar beleza!!
Avatar do usuário
LeandroPIC
Byte
 
Mensagens: 163
Registrado em: 06 Jul 2007 12:19

Mensagempor Fabio_Jerena » 16 Nov 2007 16:06

Legal pessoal, agradeço os toques...
Na verdade eu estou usando 6 entradas analógicas do PIC e preciso ler todas o mais rápido possível para utilizar os dados para calculos e uma ação em tempo real...
Fiquei tão preocupado com essa história de tempo que dividi os sensores em dois grupos e faço a leitura por grupos para não ficar muito tempo parado nesta tarefa (criei um relógio interno usando um timer e com ele trabalho em quanto em quanto tempo vou fazer uma leitura de determinado grupo de sensores), alguem conhece umas técnicas mirabolantes para se fazer esse trabalho, ler vários sensores utilizando o menor tempo possível para isso?
Muito obrigado!!!
Fábio Jerena
Fabio_Jerena
Nibble
 
Mensagens: 52
Registrado em: 08 Mar 2007 08:59

Mensagempor LeandroPIC » 20 Nov 2007 12:11

Use a int do AD

Funciona assim, vc manda o pic fazer a conversão do canal 0 quando ela terminar gera uma int, dentro da int vc salva o valor convertido. e muda para o canal 1 e assim vai, vc trata os valores das conversões no loop principal. Assim vc vai ter a maior velocidade possivel no PIC, a idéia de usar a int é porque enquantro o pic faz a conversão vc executa outras operações, tipo enquando le a canal 1 vc trata os dados do canal 0.

entendeu...!!!!!!
Avatar do usuário
LeandroPIC
Byte
 
Mensagens: 163
Registrado em: 06 Jul 2007 12:19


Voltar para PIC

Quem está online

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

cron

x