Autor Tema: conversión AD más veloz  (Leído 1754 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado TREMENS

  • PIC16
  • ***
  • Mensajes: 125
conversión AD más veloz
« en: 26 de Septiembre de 2006, 18:13:02 »
Necesito una conversión analógica digital lo más rápida posible y de por lo menos 8 bit, mejor si son 10.

Una forma de hacerlo es :

DEFINE ADC_BITS 8       ' Set number of bits in result
DEFINE ADC_CLOCK 3     ' Set clock source (rc = 3)
DEFINE ADC_SAMPLEUS 50 ' Set sampling time in microseconds
TRISA = 255 ' Set PORTA to all input
ADCON1 = 2  ' PORTA is analog
ADCIN 0, B0 ' Read channel 0 to B0

Lo que no entiendo en esta forma es que valores puede tomar adc-clock aparte de 3 y que relación tienen con el cristal que uso.


Otra forma es :

........

ADCON1=%100
ADCON0=%1000001
GOSUB medir
dato=ADRESH

medir:
PAUSEUS 50
ADCON0.2=1
PAUSEUS 50
RETURN

END

Lo que no me cierra de esta forma, es que no sé adonde especifico la cantidad de bits que uso para la conversión. O sea, se que al guardar adresh en dato, estoy tomando 8 bit, pero no sé con cuantos bits hace realmente la conversión, ni como hacer para tomar 10 bits.

La otra incognita respecto a esta forma es para que son el pauseus 50 antes y despues de la línea adcon0.2=1, y cual son los valores mínimos de pauseus que puedo usar.

++++++++++++++++++++

Como les decía anteriormente, quiero saber esto para entender bien el tema y además para aplicarlo concretamente para conseguir una conversión lo más rápida posible.


Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: conversión AD más veloz
« Respuesta #1 en: 27 de Septiembre de 2006, 03:02:04 »
Hola.

Veamos:

Lo que preguntas de la línea de instrucción rc=3 lo ves en las páginas del µicro en cuestión en el registro ADCON0.

Eso quiere decir que para la conversión tomará el circuito RC que viene dentro del µicro y su tiempo de espera lo deberás calcular.

Si no es RC (3 en este caso) tomará la frecuencia del cristal y la dividirá entre varios valores (4,8,16...).

El tiempo de espera no es tan critico porque puedes preguntar por el bit GO/DONE que es el bit 2 de ADCON0.
Cuando esté en 0 quiere decir que terminó la conversión y que puedes acceder a los registros estando seguro que la información es correcta.

Todo lo que preguntas está en la sección del AD de cualquier µicro PIC, búscalo.


Sobre cómo hacerle para de 8 o 10 bits, revisa este enlace en la página dos. Lee todo para que veas de dónde sale la explicación.

http://www.todopic.com.ar/foros/index.php?topic=13543.msg79981#msg79981

Espero te sirva.
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

Desconectado GustavoT

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 102
Re: conversión AD más veloz
« Respuesta #2 en: 28 de Septiembre de 2006, 08:07:44 »
en el datasheet del micro esta bien explicado lo de los 10 bits
Hay dos cosas infinitas: el Universo y la estupidez humana. Y del Universo no estoy seguro.   Albert Einstein

Desconectado TREMENS

  • PIC16
  • ***
  • Mensajes: 125
Re: conversión AD más veloz
« Respuesta #3 en: 28 de Septiembre de 2006, 09:32:28 »
Leyendo, conseguí sacarme varias incognitas. Me queda una, antes de iniciar la conversión siempre se usa un pause 50 para setear el canal.
Pueden decirme cual es el mínimo valor que puedo darle y porque es tan imprecindible????