Autor Tema: Dudas varias ADC...  (Leído 2071 veces)

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

Desconectado Colores

  • Moderadores
  • PIC16
  • *****
  • Mensajes: 232
Dudas varias ADC...
« en: 14 de Marzo de 2005, 20:58:00 »
Bueno, paso a comentarles...
Mirando el manual de Proteus, en la parte de la función ADIN, me encontré con los "DECLARES" para utilizarlo. Entre ellos está este (como ejemplo):

DECLARE ADIN_TAD = FRC

Luego explica que este es el modo de uso "mas seguro" aunque a veces menos preciso y/o mas lento.
El resto de los modos son: 2_FOSC, 8_FOSC, 32_FOSC, 64_FOSC... (Sets the ADC"s clock source). Entiendo que estos son modos para reloj externo y FRC usa el reloj interno.
Ahora bien:
1) Si yo tengo un 16F877A con cristal de 20Mhz, a que velocidad corre el reloj interno?
2) Para que sirven los otros modos FOSC y cual me conviene?

Otras dudas: si pongo un ADIN_STIME = 50 se supone que ese es el tiempo que le doy al micro para que complete la conversión (50 microsegundos). Eso quiere decir que el micro se queda "bobo" por 50us? O continúa con la siguiente instrucción de mientras que hace la conversión?

Muchas gracias.

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2060
RE: Dudas varias ADC...
« Respuesta #1 en: 15 de Marzo de 2005, 01:16:00 »
Hola pana colores a ver si te puedo ayudar!

Recuerda que el conversor analogico digital, que posee el pic p16f87X, requiere de un tiempo minimo de conversion (tad)para cada bit de 1.6useg si utilizas el oscilador interno (RC) del micro este tarda de 2 a 6useg valor que es mayor de 1.6useg por lo que es valido ahora bien si utilizas un reloj externo a 20 Mhz el tiempo de conversion va a depender de el predivisor que hallas escojido por ejemplo con un predivisor de 2 fosc el tiempo de conversion seria (a 20Mhz) de 0.1useg valor no valido ya que el minimo es de 1.6useg ahora para 32 fosc seria 1.6useg valor justamente valido.

En cuanto al otro punto este se refiere al tiempo que tarda en cargarse el circuito de sample and hold, supongo, el cual debe ser por lo menos 2 el tiempo de conversion de un bit (tad).
Espero haberte podido ayudar con mi explicacion
saludos

Desconectado Colores

  • Moderadores
  • PIC16
  • *****
  • Mensajes: 232
RE: Dudas varias ADC...
« Respuesta #2 en: 15 de Marzo de 2005, 18:01:00 »
Bastante bien explicado, así que ahora con estas ideas en mente me voy a poner a estudiar nuevamente el datasheet.
Muchas gracias.

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2060
RE: Dudas varias ADC...
« Respuesta #3 en: 15 de Marzo de 2005, 19:22:00 »
De nada mi pana pero si quieres ahondar mas en el tema puedes hojear aqui tambien
http://fremiro.spymac.net/pic16f87x.htm
Y ahi otras cositas mas!

Saludos!

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: Dudas varias ADC...
« Respuesta #4 en: 16 de Marzo de 2005, 09:11:00 »
Creo q algunas veces usar el FRC tiene el inconveniente de q se puede tardar mas de lo debido, ya q el depende de temperatura, volatje..., es mejor usar los divisores, y si, efectivamente el modulo A/D es independiente del resto por lo q puedes continuar ejecutando tu programa mientras esperas, claro si usas interrupciones el modulo t avisara cuando este listo (ADIF) si no deberas estar consultando el flag hasta q obtengas el ADIF (a menos q el tiempo entre la puesta en marcha del conversor y el momento que deseas leer el valor de la conversion sea relativamente grande, de igual forma necesitaras poner a 0 el ADIF (disable INT)

Desconectado Colores

  • Moderadores
  • PIC16
  • *****
  • Mensajes: 232
RE: Dudas varias ADC...
« Respuesta #5 en: 16 de Marzo de 2005, 18:25:00 »
Ok Fenix... Lo de las interrupciones lo entiendo, también lo de hacer polling. Pero yo me refería (creo que no lo aclaréGiño a la situación programando con PBP o Proteus... ahí solo se pone ADCIN y se lo asigna a una variable.
En el fondo entiendo que hace lo mismo que assembler pero automático, de una manera más fácil para el programador.
Ahora, que hay detrás de ADCIN? Un bucle esperando la afinalización de la conversión y la asignacion a una variable? Porque de otra manera no puede ser...
A eso me refería con que el pic se quedara "bobo" durante la conversión, en los 50us que dura, en ese bucle ficticio no pasa a la siguiente instrucción. Sería parecido a hacer polling.
Resumiendo: para mi después de un ADCIN el PIC no ejecuta nada mas hasta que se finaliza la conversión y corrijanme si estoy equivocado...

Otra duda (ya que estamos, je je):
Que valor le tengo que dar al registro ADCON1 para tener el port A y E como análogicos para el ADC? Tomo como referencias de voltaje las del micro, porque necesito los 8 ADC"s... Vi un ejemplo que decía ADCON1 = %10000000 para poner el PORTA como entradas analógicas, pero y el PORTE?

Muchas gracias.

Desconectado khasistos

  • PIC18
  • ****
  • Mensajes: 493
RE: Dudas varias ADC...
« Respuesta #6 en: 21 de Marzo de 2005, 18:40:00 »
Hola .

en la Ds tienes perfectamente graficado la configuracion del adcon,para lo que quieras realizar ,incluso hace referencia si quieres tomar referencia externa o interna(5volts) y masa para la conversion ,eso te lo dejo pues con solo leerlo te vas a dar cuenta ..pero te voy a pasar dos trucos ,uno puedes cambiar la configuracion del adcon dentro del programa haciendo que en una parte tome una referencia y en la proxima otra por ejemplo, y el segundo NUNCA utilizes una referencia EXTERNA MENOR a la mitad de la fuente 2,5 Volts ,,pese a que la DS dice que el menor valor de ref ext es 2 Volts NO FUNCIONA correctamente lo seguro es 2,5 volts de ref externa.
Saludos

Khasistos


 

anything