Autor Tema: Vref en A/D  (Leído 2407 veces)

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

Desconectado modelo75

  • PIC10
  • *
  • Mensajes: 28
Vref en A/D
« en: 23 de Marzo de 2005, 10:27:00 »
Hola
Estoy trabajando con el A/D en 10 bit de un 16f876, segun entiendo esto me da 1024 valores entre 0 y 5V. Mi problema es medir una tension que varia entre 2.5v y 3.5v. Para utilizar los 1024 valores tendria que utilizar la Vref, es asi?? Ahora el pin Vref+ tendria que tener 3.5v y el vref- 2.5V?? Si utilizo el canal 0, entonces como seria la configuracion:
setup_adc_ports(RA0_ANALOG,RA3_RA2_REF); ???
cualquier ayuda es bienvenida
gracias

Desconectado cHiPmAn

  • PIC16
  • ***
  • Mensajes: 110
RE: Vref en A/D
« Respuesta #1 en: 24 de Marzo de 2005, 00:27:00 »
Efectivamente, para tener mayor precisión puedes usar las tensiones de referencia +Vref y -Vref de 3,5v y 2,5v respectivamente.

Si lo haces de esta manera, te recomiendo que uses reguladores de referencia tipo ref02 para que la conversión sea precisa y no te generen problemas de ruido los bites de menos peso.

Suerte!

Desconectado cHiPmAn

  • PIC16
  • ***
  • Mensajes: 110
RE: Vref en A/D
« Respuesta #2 en: 24 de Marzo de 2005, 00:29:00 »
Por cierto, del código: setup_adc_ports(RA0_ANALOG,RA3_RA2_REF); no tengo ni idea, pues supongo que es ccs y no uso ese programa.

Desconectado telekitor

  • PIC10
  • *
  • Mensajes: 30
RE: Vref en A/D
« Respuesta #3 en: 24 de Marzo de 2005, 12:58:00 »
Cuidado con las tensiones del conversor. Se necesita un voltage minimo, en la serie pic18F suele ser 3 voltios, por debajo de ahi no funciona, miralo en le datasheet del micro Giño

PayasoPayaso

Desconectado modelo75

  • PIC10
  • *
  • Mensajes: 28
RE: Vref en A/D
« Respuesta #4 en: 24 de Marzo de 2005, 16:33:00 »
Primero gracias por la colaboracion,
ahora si, en el PDF (pag. 194) da los valores de Vref (min 2.0 max vdd+.3v), por lo que creo que no hay problema(mi medicion varia entre 2.8v y 3.2v). Pero lo estoy simulando con proteus y no esta midiendo correctamente. Con un pin estoy alimentando un circuito RC, y al cabo de un tiempo (1.73ms) mido cuanto se cargo el capacitor con el A/D. Puede tener algun problema de simulacion Proteus o tengo mal config. el tiempo del A/D. Si alguien me puede aclarar el tema de tiempo de conversion, tpo minimo, DV_2,DIV_8?? y como se configura, agradecido.
Algo de codigo:

#include <16F876.h>
#device adc=10
#use delay(clock=4000000)   
#fuses HS,WDT
#use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7,restart_wdt)
#define     conv   PIN_C1
long value;
void init()
{
setup_adc_ports(RA0_RA1_ANALOG_RA3_RA2_REF );   
set_adc_channel( 0 );         
setup_adc(ADC_CLOCK_DIV_8);

setup_spi(FALSE);
setup_counters(RTCC_INTERNAL,WDT_18MS);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
set_tris_a(0b001111);
set_tris_c(0b11001101);
output_low(conv);

}

#use fast_io(C)
void main() {
restart_wdt();   
init();

   while (1)
   {
      output_high(conv);
   delay_us(1730);      
   value = read_adc();
   output_low(conv);   
   delay_us(2000);
   printf("Valor=%lu  %lu
",value);
   restart_wdt();
   }
}

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: Vref en A/D
« Respuesta #5 en: 24 de Marzo de 2005, 18:36:00 »
No te fíes de Proteus, y mucho menos con señales analógicas.
Lo mejor será que pruebes con el circuito de verdad.

Desconectado modelo75

  • PIC10
  • *
  • Mensajes: 28
RE: Vref en A/D
« Respuesta #6 en: 29 de Marzo de 2005, 08:58:00 »
Otra vez...
alguien me puede aclarar la siguiente instruccion:
setup_adc(ADC_CLOCK_DIV_8);
estoy trabajando con un cristal de 4Mhz entonces Tosc=1/4Mhz=0,25us.
TAD= tiempo de conversion por bit,
para realizar una conversion necesito minimo 12 TAD. Por soft puedo elegir 4 fuentes de reloj (TAD): 2Tosc, 8Tosc, 32Tosc, RC.
En este caso tosc/8=31.25n  lo que para realizar una conversion A/D necesito
12*31.25n=375n, esto es asi?? si mi tension analogia varia en menos de este tiempo, la medicion daria incorrecta??
desde ya muchas gracias
saludos

Desconectado modelo75

  • PIC10
  • *
  • Mensajes: 28
RE: Vref en A/D
« Respuesta #7 en: 01 de Abril de 2005, 09:49:00 »
sigo sin hacer andar correctamente, he cambiado en el codigo anterior lo siguiente:
while (1)
   {
   output_high(conv);
   delay_ms(2);   
   value = read_adc();
   //setup_adc( ADC_OFF );
   output_low(conv);   
   delay_ms(3000);
   printf("Valor=%lu  %lu
",value);
   restart_wdt();
   }
pero tengo los siguientes problemas: cuando enciendo el primer valor es correcto, luego todos los demas son incorrectos; y el otro problema es que aparte de incorrecto es inestable, lei que para mejorar se puede colocar un capacitor a la entrada del A/D, pero no ha mejorado. Alguna idea pfvor!!
Saludos


 

anything