TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: FJPPitta en 24 de Mayo de 2007, 21:56:58

Título: Muestreo de frecuencia
Publicado por: FJPPitta en 24 de Mayo de 2007, 21:56:58
Reciban un saludo cordial, quisiera saber la máxima velocidad puedo muestrear frecuencia usando un PIC, de momento estoy usando un 16f873a a 20MHz y puedo tomar a 128muestras/segundo con un error aceptable pero quisiera saber si puedo tener una mayor frecuecia de muestreo, utilzo el ejemplo que trae el CCS llamado ex_freq o algo así.

Bueno solo quiero saber si se puede y si es así ya sea usando un pic o dspic que técnica podría segir.

El caso completo es, necesito medir y graficar un escalón en frecuencia que dura a lo máximo 20ms (es algo variable) pero al tener la muestra en 7.8125ms dos o tres muestras no me son suficientes. Lo de medir y graficar ya lo tengo ya que había hecho ya algo similar pero no me preocupe por la frecuencia ya que el cambio sucedia en 500ms y obtenía 64 muestras.

Bueno espero alguien pueda ayudarme en esto.

Saludos FJPPitta
Título: Re: Muestreo de frecuencia
Publicado por: vszener en 25 de Mayo de 2007, 14:14:50
En el data sheet debe venir indicado, en el apratado de especificaciones, el tiempo máximo o mínimo en muestrear una señal de fuera.


Suerte!!! ;)
Título: Re: Muestreo de frecuencia
Publicado por: FJPPitta en 25 de Mayo de 2007, 15:56:18
He estado revisando la hoga de especificación, no me refiero exactamente a la frecuencia que puede ser capturada por un pin del micro, si no al algoritmo para determinar con la mayor exactitud posible la frecuencia de una onda cuadrada. El algoritmo que utilizo lo he podido acortar a los 7.8124ms es el tiempo en que el micro determina la frecuencia de entrada con un error máximo del 10%. Si acorto ese tiempo el error aumenta considerablemente.

De momento estoy leyendo la posibilidad de utilizar el modo capture del micro que cuenta con una resolución de 12.5ns, solo me falta tomar el tiempo del algoritmo en total.

Si tengo algun avance les comento.

Saludos y gracias por el comentario
FJPPitta
Título: Re: Muestreo de frecuencia
Publicado por: PalitroqueZ en 26 de Mayo de 2007, 15:16:40
Hola FJPPitta

un parámetro a tomar en cuenta para lo que pretendes, es buscar en la datasheet el tiempo mínimo de flancos que puede reconocer el pic.

Título: Re: Muestreo de frecuencia
Publicado por: RedPic en 28 de Mayo de 2007, 02:56:35
Amigo FJPPitta:

Como bien dices habría que jugar con la calculadora y calcular, en mi serie de medidas de ancho de pulso en C no lo he hecho.

Estoy trabajando con un PIC de la serie 18FX550 a 48 Mhz, que es la máxima velocdad de esta serie de micros (usando la configuración para el USB) y según qué metodo sea el utilizado consumo mas o menos proceso para capturar y calcular los pulsos, por lo que habría que ver exactamene cuanto proceso gasto para ver hasta qué frecuencia pudo llegar.

Sospecho que utilizando el módulo CCP se obtendría la máxima resolución, pero como te digo no lo he calculado.

Título: Re: Muestreo de frecuencia
Publicado por: FJPPitta en 28 de Mayo de 2007, 15:48:08
Gracias por sus respuestas, el datasheet es algo grande y estoy buscando el parametro correcto lo que habia comentado es la resolución del modulo ccp:

Citar
Three Capture, Compare, PWM modules:
- Capture is 16-bit, max. resolution is 12.5 ns
- Compare is 16-bit, max. resolution is 200 ns
- PWM max. resolution is 10 bits

Aunque no se si presisamente es el parametro que busco estoy utilizando el 16F777 y un cristal de 20MHz.

En la serie de tecnicas de RedPic leer un pulso si capturo los flancos de subida el minímo número de ticks que podría obtener es de 1 multiplicado por 0.2us osease 5MHz de frecuencia máxima. Ahora así como lo veo el tiempo seria variable es decir si tengo que esperar más ticks entonces el tiempo de espera entre dos flancos es mas grande.

Solo requiero esto para caracterizar mi sistema ya que no cuento con los instrumentos de medición adecuados, por lo que solo es para una fase ya que en la versión final no requiero tanta velocidad de medición y con los casi 8ms me es suficiente. Tengo un cambio de frecuencia en un lapso de aproximadamente 20ms de momento solo tengo 3 lecturas y quisiera más resolución.

Mientras sigo leyendo y realizando los calculos ya cuando tenga la información la posteo aqui mismo.

Saludos
FJPPitta