TODOPIC

Microcontroladores PIC => dsPIC => Mensaje iniciado por: CapBlack en 07 de Febrero de 2010, 14:59:35

Título: ADC no 100% estable DSPIC30F4013 para piloto automatico
Publicado por: CapBlack en 07 de Febrero de 2010, 14:59:35
Hola a todos:
Estoy usando cuatro canales para medir diferentes gyros y accelerometros :( con ADC12 de un dspic 30f4013 veo por la pc usando el rs232 que determinado numero de converciones la muestra cae a 0 o cerca de este ,alguien me podria decir que estoy haciendo mal ?

este es my clock

_FOSC(CSW_FSCM_OFF &  HS2_PLL16);  //24 MHZ
_FWDT(WDT_OFF);
_FBORPOR(    PBOR_OFF & // brown out off
         MCLR_EN & PWRT_OFF)
_FGS(CODE_PROT_OFF);     


#define PeriodoPWM 0x200     // 50Hz
#define FCY 24000000
#define BAUDRATE 38400 //19200 --- 9600
#define BRGVAL ((FCY/BAUDRATE)/16)-1


este es el codigo del adc :

OpenADC12(ADC_MODULE_ON & ADC_IDLE_CONTINUE & ADC_FORMAT_INTG & ADC_CLK_AUTO & ADC_AUTO_SAMPLING_ON& ADC_SAMP_OFF,
                ADC_VREF_EXT_EXT &  ADC_SCAN_ON & ADC_SAMPLES_PER_INT_4 & ADC_ALT_BUF_OFF & ADC_ALT_INPUT_OFF,
                ADC_SAMPLE_TIME_31 & ADC_CONV_CLK_SYSTEM & ADC_CONV_CLK_32Tcy,
                ENABLE_ALL_DIG & ENABLE_AN9_ANA & ENABLE_AN10_ANA & ENABLE_AN11_ANA & ENABLE_AN12_ANA,
                SCAN_ALL & SKIP_SCAN_AN0 & SKIP_SCAN_AN1 & SKIP_SCAN_AN2& SKIP_SCAN_AN3& SKIP_SCAN_AN4& SKIP_SCAN_AN5&
                SKIP_SCAN_AN6& SKIP_SCAN_AN7& SKIP_SCAN_AN8& SKIP_SCAN_AN13&
                SKIP_SCAN_AN14& SKIP_SCAN_AN15);

ConfigIntADC12(ADC_INT_PRI_6 & ADC_INT_ENABLE);


esta es la interrupcion:

 void __attribute__((__interrupt__,auto_psv)) _ADCInterrupt(void)
   {
   
   
     array[count] = ADCValue = ADCBUF0;                       
     arrax[count] = ADCValue1 = ADCBUF1;   
     gyrox[count] = gyro = ADCBUF2;
     gyroy[count] = gyroroll = ADCBUF3;
         
          count ++;
   
     if (count < cont_sens)
     {
     temp1 = temp1 + ADCValue ;
     temp2 = temp2 + ADCValue1 ;
     temp3 = temp3 + gyro ;
     temp4 = temp4 + gyroroll;
     flag = 0;
     }

     else
     count = 0;

     IFS0bits.ADIF=0;
  }

muchas gracias.
Título: Re: ADC no 100% estable DSPIC30F4013 para piloto automatico
Publicado por: beatAurex1 en 09 de Febrero de 2010, 02:00:51
No sera porque no le das un tiempo  para que se valide el muestreo?
Título: Re: ADC no 100% estable DSPIC30F4013 para piloto automatico
Publicado por: Nocturno en 09 de Febrero de 2010, 03:00:38
Imagino que habrás hecho la prueba colocando simples potenciómetros en las entradas ADC y también te cae a 0, ¿verdad?
Título: Re: ADC no 100% estable DSPIC30F4013 para piloto automatico
Publicado por: droky en 09 de Febrero de 2010, 12:36:19
Lo más probable es que estés leyendo a destiempo el gyro o el acelerómetro, sin darle tiempo a recuperarse de otra lectura al ADC.
SAlu2
Título: Re: ADC no 100% estable DSPIC30F4013 para piloto automatico
Publicado por: CapBlack en 09 de Febrero de 2010, 14:16:52
Ante todo Gracias por las respuestas , ya casi probe de todo , el muestreo esta en auto con el maximo tiempo posible "sample 31 tad y adc conv 32" estoy con un clock de 24mhz , el maximo clock para este micro es 30mhz asi que no viene por alli el problem , las tensiones las comprobe con valores fijos de resistencias y con los sensores puedo ver en el osciloscopio que la tension no cae en ningun momento , en algun momento pense que el codigo dentro de la interrupcion tomaba demasiado tiempo pero veo en el osciloscopio que no es asi , entre interrupciones tengo unos 320us y dentro estoy solo 4us . tambien tengo chequeada la referencia de tension externa con un estabilizador de
5v a 3.3v exclusivo para esta entrada :?

por otro lado he comprobado que si redusco el tiempo de muestreo el problema empeora , el minimo tiempo segun el datasheet es de 334nsec x 4 entradas tendria que ser 1.336 usec y veo alli 320usec entre interupcion.

El mayor problema de estos misteriosos baches es que desestabiliza la integracion entre el gyro y el accelero. :?

Gracias.

Título: Re: ADC no 100% estable DSPIC30F4013 para piloto automatico
Publicado por: alexiel en 17 de Mayo de 2010, 20:18:33
Hola CapBlack, quisiera saber si ya has solucionado el problema, a mi también se me presenta algo similar con el ADC. Si es el caso que si, sería mucho pedir que postearas como lo has solución o como llegaste a la solución, en el foro. De antemano gracias.