Autor Tema: ¿Configuracion del ADC para un PICs8F4550 a 48 MHZ ?  (Leído 1901 veces)

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

Desconectado pantera

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 215
¿Configuracion del ADC para un PICs8F4550 a 48 MHZ ?
« en: 14 de Diciembre de 2006, 16:41:36 »
Hola

Estoy configurando el ADC y estoy muestreando señales para ver un sistema que tengo cual es la maxima frecuencia de muestreo. Sin embargo por lo que se de los microcontroladores PIC16 hay una frecuencia maxima. Sin embargo nose muy bien como debo de realizar la configuracion.

Y cuales son las cuentas que debo tomar en cuenta. He revisado la hoja de datos pero no estoy muy claro. Alguien podria ayudarme.
El codigo principal es el siguiente.


#include <18F4550.h>
#device adc=10

#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL3,CPUDIV1,VREGEN,NOBROWNOUT
#use delay(clock=48000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)

void main(void)
{

   setup_adc_ports(AN0|VSS_VDD);
   setup_adc(ADC_CLOCK_DIV_64);
   set_adc_channel( 0 );

   while (TRUE)   {
         ADC0=read_adc();
         printf("%lu\n\r",ADC0);
      }
}
La música es sinónimo de libertad, de tocar lo que quieras y como quieras, siempre que sea bueno y tenga pasión, que la música sea el alimento del amor y del alma.

        :-)El Rock es Cultura :-)

adbensi

  • Visitante
Re: ¿Configuracion del ADC para un PICs8F4550 a 48 MHZ ?
« Respuesta #1 en: 16 de Diciembre de 2006, 07:15:20 »
Pantera, usas baud=115200 :)
Tienes hipperterminal para hacer una aproximacion? Puedes grabar en TXT los dados recebidos por um tiempo determinado, y hacer la division referente a Aquisicion(lineas grabadas en TXT) y tiempo (algunos minutos para diminuir o erro). Por ejemplo, 225000 aquisicion en 5 minutos = 750 aquision per segundo.

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: ¿Configuracion del ADC para un PICs8F4550 a 48 MHZ ?
« Respuesta #2 en: 19 de Diciembre de 2006, 15:00:17 »
Hola pantera, puedes medir una aproximación, mediante un simulador, en el código que pusiste puede colocar un nop que en C sería delay_cycles(1)

Código: [Seleccionar]
ADC0=read_adc();
delay_cycles(1);
printf("%lu\n\r",ADC0);

ahora colocas un BreakPoint en en ADC0=read_adc(); y otro en delay_cycles(1); luego corres el código hasta que pare en el primer BP, tomas el tiempo, arrancas de nuevo y espera a que pare en el segundo nop, tomas ese tiempo y restas con el primero, ese será el tiempo que tardaría (relativamente) el CAD.

si usas el mplab, tendrás que asignar el tiempo de la conversión (usando los calculos teoricos) y sumarselos a los otros ciclos de instrucciónes ejecutados.

dependiendo del código que tengas para el muestreo completo debes elegir exactamente donde termina el código que conforma el bucle (para que cumpla una muestra) y pegas un nop, ó simplemente colocas un BP en esa línea.


Salu2
Pedro
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado pantera

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 215
Re: ¿Configuracion del ADC para un PICs8F4550 a 48 MHZ ?
« Respuesta #3 en: 19 de Diciembre de 2006, 18:59:37 »
Gracias.

Pues finalmente lo que hice fue precionar un boton y apagar con un segundero en mano.

Realice la operacion varias veces y al menos creo que por cada segundo tengo como dos mil datos

Solo me falta un osciloscopio y en generador para probar si lo que digo no es mentira.
La música es sinónimo de libertad, de tocar lo que quieras y como quieras, siempre que sea bueno y tenga pasión, que la música sea el alimento del amor y del alma.

        :-)El Rock es Cultura :-)


 

anything