Autor Tema: Frecuencímetro 0-50Mhz autorrango y 0.1ppm (YAF)  (Leído 39953 veces)

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

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Frecuencímetro 0-50Mhz autorrango y 0.1ppm (YAF)
« Respuesta #30 en: 17 de Mayo de 2012, 09:32:33 »
yo pondria 7 digitos

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5415
Re: Frecuencímetro 0-50Mhz autorrango y 0.1ppm (YAF)
« Respuesta #31 en: 17 de Mayo de 2012, 10:15:53 »
Puedo poner dos lecturas:
7 dígitos cada segundo (con error de +-1 en el último dígito)
8 dígitos de la media de los últimos 10 segundos (con error de +-1 en el último dígito)

Esta última lectura se puede mantener exacta durante unos días después de calibrar el instrumento.


Saludos.

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6759
Re: Frecuencímetro 0-50Mhz autorrango y 0.1ppm (YAF)
« Respuesta #32 en: 17 de Mayo de 2012, 11:09:17 »
Si tu instrumento tiene una resolución de +/-0.1, entonces la forma correcta de expresar un valor es xxxxx.x  ;-)


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 17740
    • MicroPIC
Re: Frecuencímetro 0-50Mhz autorrango y 0.1ppm (YAF)
« Respuesta #33 en: 17 de Mayo de 2012, 11:47:33 »
Si la lectura correcta es 123456.77 Hz yo pintaría 123456.8 Hz sin que se moviera, ¿no es posible?
Un saludo desde Sevilla, España.
Visita MicroPIC                                                                                        ɔ!doɹɔ!ɯ ɐʇ!s!ʌ

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5415
Re: Frecuencímetro 0-50Mhz autorrango y 0.1ppm (YAF)
« Respuesta #34 en: 17 de Mayo de 2012, 12:23:48 »
Con el tiempo de muestreo de 1 segundo, a veces se mueve la lectura en el último dígito.

En las frecuencias altas la lectura es correcta y oscila poco.
En frecuencias bajas hay más problemas.

Acabo de hacer una rutina para variar el número de decimales. Así se puede elegir la precisión de pantalla según la precisión de la lectura.

Cuando tenga más resultados los comento.

Saludos.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5415
Re: Frecuencímetro 0-50Mhz autorrango y 0.1ppm (YAF)
« Respuesta #35 en: 17 de Mayo de 2012, 15:55:20 »
Si la lectura correcta es 123456.77 Hz yo pintaría 123456.8 Hz sin que se moviera, ¿no es posible?

Creo que no es posible hacer que la lectura no baile. Al menos no se puede con el PIC18F2550 con el que lo estoy intentando.

Todos los métodos tienen algún problema que impide tomar medidas exactas.
La mayor parte de las medidas son correctas, pero siempre hay alguna interrupción u otro problema que impide tomar la medida a tiempo.

He decidido intentarlo con circuitería externa que impida la captura de datos. El módulo de captura tiene un problema a altas frecuencias porque captura datos más rápido de lo que se pueden leer y a altas frecuencias deja de ser útil.
Lo que voy a intentar es poner una puerta lógica o algo similar que pueda inhibir otra nueva captura de datos mientras se lee la captura anterior.

Saludos.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5415
Re: Frecuencímetro 0-50Mhz autorrango y 0.1ppm (YAF)
« Respuesta #36 en: 17 de Mayo de 2012, 19:46:24 »
Dos documentos muy interesantes de HP (Agilent) sobre las funciones que debe tener un frecuencímetro:

Fundamentals of the Electronic Counters: http://cp.literature.agilent.com/litweb/pdf/5965-7660E.pdf

Fundamentals of Microwave Frequency Counters: http://cp.literature.agilent.com/litweb/pdf/5965-7661E.pdf


Saludos.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5415
Re: Frecuencímetro 0-50Mhz autorrango y 0.1ppm (YAF)
« Respuesta #37 en: 17 de Mayo de 2012, 19:54:38 »
Diagrama interno y listado de componentes de un frecuencímetro de HP (Agilent):

E1420B Universal Counter Component Level Information: http://cp.literature.agilent.com/litweb/pdf/5989-5950EN.pdf


Saludos.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5415
Re: Frecuencímetro 0-50Mhz autorrango y 0.1ppm (YAF)
« Respuesta #38 en: 18 de Mayo de 2012, 17:20:04 »
Por fin he conseguido una lectura estable. Sólo se ven errores iguales o menores de 0.1ppm con un tiempo de muestreo de 1 segundo.
Para tiempos de muestreo mayores, la precisión aumenta.

Lo he conseguido añadiendo interrupciones de alta prioridad para la lectura de datos.
Al final he abandonado el módulo de captura CCP porque me daba demasiados problemas.

También he programado una rutina que permite seleccionar los dígitos de precisión que se presentan en la pantalla.

Las rutinas matemáticas las he implementado en C sin intentar optimizar velocidad. Eso las hace más portables para otros micros.
Los números enteros tienen 48 bits. Eso permite almacenar los pulsos acumulados de una señal de 80Mhz durante más de un año.
Los números en coma flotante tienen mantisa de 32 bits. Eso permite mostrar cálculos con una precisión de 9 1/2 dígitos decimales (0.001 ppm)

Saludos.

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6759
Re: Frecuencímetro 0-50Mhz autorrango y 0.1ppm (YAF)
« Respuesta #39 en: 18 de Mayo de 2012, 17:33:03 »
Excelente! Con el tema de la representación, los decimales van acompañados del error. O sea, si tienes un error máximo ya establecido de 0.1, no puedes mostrar 0.05, es totalmente inútil, o es 0.0 o 0.1  ;-)


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5415
Re: Frecuencímetro 0-50Mhz autorrango y 0.1ppm (YAF)
« Respuesta #40 en: 18 de Mayo de 2012, 18:16:28 »
Ahora el problema lo tengo en los números intermedios. Me explico.

Para las frecuencias menores de 10MHz la precisión es exactamente 0.1ppm. Eso significa que las medidas salen así:

1000000.0  +- 0.1    Aquí todo Ok
2000000.0  +- 0.2    Todavía no pasa nada
5000000.0  +- 0.5    La cosa empeora
8000000.0  +- 0.8    ¿Qué hago aquí?

La última lectura da valores así:
8000000.7
8000000.0
8000000.7
8000000.0
8000000.7
8000000.7
8000000.7
8000000.0

Bailan mucho, pero en definitiva la exactitud requiere 7 decimales para una lectura correcta.

Saludos


Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6759
Re: Frecuencímetro 0-50Mhz autorrango y 0.1ppm (YAF)
« Respuesta #41 en: 18 de Mayo de 2012, 19:07:27 »
Podes expresar el error en %. El rango es muuuy amplio, así que tambien podrías establecer distintas escalas con distintos errores. No es lo mismo medir 100 Hz con +/-0.1 que 10 MHz +/-0.1  ;-)


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5415
Re: Frecuencímetro 0-50Mhz autorrango y 0.1ppm (YAF)
« Respuesta #42 en: 18 de Mayo de 2012, 20:27:40 »
El error siempre es 0.00001% (0.1ppm) Para cualquier frecuencia, incluso las bajas frecuencias.
Por eso quise desarrollar este proyecto, para conseguir buena precisión en cualquier frecuencia.

Para 100 Hz las lecturas son:

100,00000
100,00000
100,00000
100,00001
100,00000
100,00000
100,00000
100,00000
100,00001
100,00000

Al ser una frecuencia que comienza por 1 el error termina siendo pequeño: +- 0.00001

Saludos.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5415
Re: Frecuencímetro 0-50Mhz autorrango y 0.1ppm (YAF)
« Respuesta #43 en: 21 de Mayo de 2012, 18:07:43 »
Nuevo avance:

He mejorado las rutinas matemáticas para añadir la multiplicación de números flotantes. Ahora se puede corregir la desviación de frecuencia mediante software.

He incluido dos métodos de estimación de frecuencia: mediante el oscilador del microcontrolador (interno o externo) y mediante una entrada externa conectada al TIMER0.
Gracias a eso se pueden comparar con mucha precisión dos frecuencias externas (por ejemplo una FI de 50Mhz y otra frecuencia patron de 10Mhz para saber la relación entre ambas)

Todos los cálculos se realizan sobre contadores que no paran, de forma que se pueden realizar medias sobre un periodo mucho mayor.

Ahora voy a añadir controles por pulsadores y visualización en LCD.

Saludos.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5415
Re: Frecuencímetro 0-50Mhz autorrango y 0.1ppm (YAF)
« Respuesta #44 en: 24 de Mayo de 2012, 15:47:12 »
Ya me ha llegado el oscilador. La precisión que tiene es de 10ppb (0.01ppm) y la exactitud depende de la calibración.
Por ahora lo he calibrado con el frecuencímetro digital, pero a largo plazo debería hacerlo con otro más exacto (se supone que tiene un error por envejecimiento de 0.1ppm al año)

Las primeras pruebas funcionan bien, pero no son del todo satisfactorias cuando comparo dos señales externas:
   El oscilador mete 10MHz por RA4 (Timer0)
   La señal a medir entra por RC0 (Timer1)

El error de medida oscila entre 0 y 3 pulsos (es un poco grande porque debería estar entre 0 y 1 pulso)
El método que utilizo es simplemente leer los timers. El módulo de captura no se puede utilizar porque son dos señales y se cuentan en modo asíncrono.

Voy a intentar que el programa tome mejor los datos. Si no lo consigo siempre está la solución de aumentar el tiempo de muestreo a 3 segundos.


Saludos.


 

anything