Autor Tema: Problema con frecuencia de muestreo en Pic 16f877a y conexion a matlab  (Leído 1891 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado Ala

  • PIC10
  • *
  • Mensajes: 5
Hola, estimados cibernautas  8), ojala y me puedan ayudar. mi problema es el siguiente estoy haciendo una conversion analogica digita (A/D) con ayuda del Pic 16f877a, quiero muestrear una señal que llega a pin #3 del pic (AN1), con una frescuencia de muestreo de 300Hz (300 muestras por segundo), ya he seguido los pasos del datasheet pag 129, configurando todos los registro que conlleva la conversion A/D. cambio y cambio la seleccion del clock conversion  :( y nada, a lo mucho que llego son a 114 muestras por segundo. Adjunto el Codigo hecho en MikroC Pro...  y la conexion con el simulador Proteus 8. Desde ya gracias a cualquier que otorgue ayuda. A con respecto a la comunicacion a matlab si funca pero por medio de eso me doy cuenta que solo tengo 114 m/s..
Código: [Seleccionar]
unsigned int valor;
 char x[5];
void main() {
TRISA=0xFF;
PCFG3_bit=1;PCFG2_bit=0;PCFG1_bit=0;PCFG0_bit=1;
CHS2_bit=0;CHS1_bit=0;CHS0_bit=1;
ADCS2_bit=0; ADCS1_bit:ADCS0_bit=01;
ADFM_bit=1;
UART1_Init(9600);ADON_bit=1;
 while(1){
        ADIF_bit=0;
        delay_us(20);
        GO_bit=1;
        while(ADIF_bit==1);
        valor=ADRESH<<8|ADRESL;
        intToStr(valor,x);       //conversion de entero a caracter
        UART1_Write_text(x);     //envia dato
        UART1_Write(10);         //envia el caracter de finalizacion
        //strcpy(x,"");            //vaciar variable char
        }
}
Oj_alá: del árabe لو شاء لله , law sha'a Allah; «si Dios quisiera»

Desconectado ThePIC-GUY

  • PIC10
  • *
  • Mensajes: 19
Re: Problema con frecuencia de muestreo en Pic 16f877a y conexion a matlab
« Respuesta #1 en: 31 de Julio de 2014, 17:21:45 »
Cual es la frecuencia de tu cristal? recuerrda que para el ADC nesecitas un tiempo de SAMPLE & HOLD Tad=1.6mS como minimo y que cada conversion tarda aproximadamente 12Tad.
Ademas debes tomar en cuenta el tiempo que tardan las demas funciones en llevarse a cabo ya que durante ese tiepo no puedes tomas muestras

Desconectado Ala

  • PIC10
  • *
  • Mensajes: 5
Re: Problema con frecuencia de muestreo en Pic 16f877a y conexion a matlab
« Respuesta #2 en: 07 de Agosto de 2014, 14:44:20 »
Gracias por responder colega  :), si en verdad estoy trabajando con un cristal de 4 MHz, conosco sobre lo que dices el tad min y el tiempo de conversion 12 TAD, desconosco que tiempo se demora el pic en enviar el el dato por el modulo Usart, entonces que me sugieres hacer para conseguir el obtetivo (obtener 300 muestras como minimo por segund), o talvez podria almacenar los datos en el microcontrolador y despues enviarlos..¡?¡??  como haria eso?  o implementar otro metodo para enviarlos a la computadora... ???
Oj_alá: del árabe لو شاء لله , law sha'a Allah; «si Dios quisiera»

Desconectado ThePIC-GUY

  • PIC10
  • *
  • Mensajes: 19
Re: Problema con frecuencia de muestreo en Pic 16f877a y conexion a matlab
« Respuesta #3 en: 13 de Agosto de 2014, 19:16:46 »
para el caso de almacenar los datos y despues enviarlos neceitarias mucha memoria (al menos 300BYTES, uno por muestra), lo que quizá pueda funcionar es si envias los datos por el puerto serie a la PC, utilizar un baudrate bastante alto (unos 115200) y ademas puedes hacer una especie de buffer, de tal modo que cuando estes enviando un dato ya tengas almacenados otros datos mas para seguir enviando. otra cosa que puedes hacer es utilizar uncristal mas rapido, ya que el tiempo en el que se ejecutan las instrucciones depende directamente de la frecuencia del cristal