Autor Tema: ADC no 100% estable DSPIC30F4013 para piloto automatico  (Leído 3331 veces)

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

Desconectado CapBlack

  • PIC10
  • *
  • Mensajes: 17
ADC no 100% estable DSPIC30F4013 para piloto automatico
« 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.

Desconectado beatAurex1

  • PIC12
  • **
  • Mensajes: 78
    • Proyectos de Ingeniera -Control-Electrónica y desarrollo embebido.
Re: ADC no 100% estable DSPIC30F4013 para piloto automatico
« Respuesta #1 en: 09 de Febrero de 2010, 02:00:51 »
No sera porque no le das un tiempo  para que se valide el muestreo?

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: ADC no 100% estable DSPIC30F4013 para piloto automatico
« Respuesta #2 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?

Desconectado droky

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 628
    • Diseños radikales libres
Re: ADC no 100% estable DSPIC30F4013 para piloto automatico
« Respuesta #3 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
Yo... he visto cosas que vosotros no creeríais... atacar naves en llamas más allá de Orión, he visto rayos C brillar en la oscuridad cerca de la puerta Tannhäuser.
Todos esos momentos se perderán en el tiempo como lágrimas en la lluvia.
Es hora de morir.

Si me buscas en twitter, me tienes por @radikaldesig

Desconectado CapBlack

  • PIC10
  • *
  • Mensajes: 17
Re: ADC no 100% estable DSPIC30F4013 para piloto automatico
« Respuesta #4 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.


Desconectado alexiel

  • PIC10
  • *
  • Mensajes: 31
Re: ADC no 100% estable DSPIC30F4013 para piloto automatico
« Respuesta #5 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.