Página 1 de 1

Tempo minimo do A/D do pic18f4520

MensagemEnviado: 13 Mai 2010 16:43
por Guri
Então, eu sei que o time minimo ideal para um pic16f877a esta em torno de 50us, alguém sabe me dizer o time minimo para o A/D do pic18f4520?

Valeu,

Re: Tempo minimo do A/D do pic18f4520

MensagemEnviado: 13 Mai 2010 16:58
por fabim
Guri escreveu:Então, eu sei que o time minimo ideal para um pic16f877a esta em torno de 50us, alguém sabe me dizer o time minimo para o A/D do pic18f4520?

Valeu,


guri, esse tempo é em função da resistencia interna antes switch e capacitor. Se acrecentar resistencia maior pra fora do pino esse tempo também aumenta proporcionalmente.
+/- Rexterno+Rinterno*C charge pump. ou capacitor de carga.

Sobre o 4520, vai na parte do ADC, tem um TDY que é o tempo de aquisição que voce escolhe entre 1 e 20 se não me engano clocks de maquina.

Quando tiver este tipo de duvida, antes de ficar meio preocupado. Basta você simplesmente dar uma passada de olho no datasheet.

Abraços e boa sorte

MensagemEnviado: 13 Mai 2010 19:45
por renatokodaira
Pelas minhas contas, considerando clock do 18F4520 a 40MHz, usando Tad de 0,8us (dividindo por 32 o clock principal), se a temperatura for de 40 graus celsius, se a resistencia da fonte de sinal for baixa da ordem de 100 ohms, eh possivel conseguir um periodo completo de conversao AD de 10us.

No caso do 16F877A, minha conta chega a um periodo de 33us.

Se voce nao tem familiaridade com datasheet, eu sugiro comprar o novo livro do Fabio Pereira : Microcontrolador PIC18 Detalhado Hardware e Software - baseado no 18F4520. Na LITEC eu paguei R$ 92 (R$ 98 no site da Editora Erica).

MensagemEnviado: 13 Mai 2010 22:33
por Guri
valeu,


é o seguinte, no meu caso eu uso ler 3 pots sendo um em cada entrada A/D do pic18...então se eu der um delay de +/- 10us entre uma leitura e outra acredito que será o suficiente para ler os 3 pots numa boa sem "embaralhar" ou seja interferir uma leitura com a outra,

é justamente esse tempo "mínimo" que eu quero definir para poder fazer a leitura de cada pot e dar o delay necessario a descarga do CAP do A/D, entenderam...

no caso do pic 16 rodando a 5 mips eu tenho que dar um delay entre leituras de 50 us, caso contrário não dá tempo do CAP descarregar...

por esse motivo estou querendo ver a viabilidade de utilizar o A/D do pic18, supondo que o mesmo possa ser mais velôz, por isso da minha perguntinha "besta"....

valeu,

MensagemEnviado: 14 Mai 2010 11:08
por fabim
á sim.
Então guri.
Internamente aos pinos, existem multiplex analogicos.

Suponha o seguinte.
Setei o mux1. (delay_us(10));
ADCON1.GO_DONE = 1;

while(ADCON1.GO_DONE);//fica preso enquanto não acaba conv..

Setei o mux 2 (delay_us(10));
ADCON1.GO_DONE = 1;

while(ADCON1.GO_DONE);//fica preso enquanto não acaba conv..

Agora, da seguinte maneira a observar.

O mux desligou o canal 1, e ligou-se ao canal 2.
O tempo de 10uS é o bastante ?
Depende, quando falamos de resistencia. Falamos sobre casamento de impedancia no geral. Vai ler o potenciometro ? qual a resistencia dele ?
Á fabim, 10K por exemplo. É alta pra burro, mas mesmo assim pode ser burlado sua resistencia, como ?

Colocando-se um capacitor em paralelo com saida do potenciometro e terra.
No momento em que o mux chavear para qualquer potenciometro, o capacitor de carga e filtro, vai ter uma corrente armazenada bem maior que a corrente armazenada no capacitor interno de charge pump, levando em consideração ainda o resistor interno que serve para evitar essas pancadas de DDP.

Ou seja, se tiver um capacitor de uns 100nF em paralelo, tu faz o seguinte. nos 18F tu seja o TCY do ADC pra 20 +/-, e o delay entre um e outro após setar o mux, tu pode colocar uns 5 ou 10uS...

Agoa não confunda velocidade de sample rate.

Por exemplo os 18F, caso eu não me engane agora. o maximo clock do adc é de 3mhz que seja mais.
Para você saber qual a maxima frequencia de sample, atingindo o fundo de escala de um ADC.

3 000 000/ (bim fundo de escala 1024).
= 2929.6875.. num pode esquecer que tem o TCY e ainda o delay do mux...

Bom, viu como é o buraco ?

OS cabras dizem 60ksps, em média!!!!! e não fixo. nem em 8 bits.

Veja, suponha que iriamos obsrvar como over de 10 bits, e basearnos nele pois iriamos trabalhar com interrupt.

quero 50Ksps

256+1*50 000 = 12850000
Como você consegue esse clock ? no 18f4550 que trabalha com 48mhz principal.. nem assim poderia, pois esta ultrapassando o fundo de escala de clock.

é brabo, mass fazer o que

MensagemEnviado: 16 Mai 2010 08:43
por Guri
muito obrigado a todos e a vc fabim pelas explicações,

realmente, utilizando uma resistencia de 10k no pot e um delay de 50us é o mínimo que consegui para ler os tres pots na sequencia, valores menores que 50us tornam instaveis a leitura...

só mais uma perguntinha caso tenham já feito esse teste e fica de dica para os outros colegas: se eu utilizar só uma entrada do a/d e utilizar um mux tipo 4051 externo e ir selecionando os posts, fazendo a leitura individual é claro de cada um, porém na saida do mux e entre a entrada do a/d eu introduzir um O.P. com ganho 1? será que esse recurso garantiria uma impedancia bem baixa na entrada do a/d e com isso ganhariamos maior velocidade de leitura entre um pot e outro?

MensagemEnviado: 16 Mai 2010 09:29
por fabim
guri.

Entre um resistor e outro vai haver DDP da mesma forma, só que ai a diferença de tensão vai influenciar pouco o 4051. Mais lembre-se, ele tem capacitancia parasita, e ainda o tempo de delay in-out etc..

Só que tu esta usando um buffer na saida. Isso vai ajudar muito.


Pode expeguimentar que vai ver que consegue facilmente coisa de 10..20uS... TCY

MensagemEnviado: 16 Mai 2010 21:07
por Guri
então fabim, eu vou testar isso amanhã e reportarei o resultado, mas acredito que seja uma boa saída para burlar esse problema...