Diseñemos entre todos un frecuencimetro DIY.

el codigoy el hex estan en la pagina, el hex funciona bien pero al querer compilar el asm me genera errores sin siquiera modificarle algo
 
Hola:

Excelentes aportes por parte de todos, si señor.

Bueno antes de extenderme en el tema quieros que entendais que lo que comentare es solo mi opinion y que posiblemente algunos no compartan, si por el contrario fuese compartida seria de agradecer.

Como algunos sabeis estoy bastante relacionado con los frecuencimetros digitales, he visto "casi" todo el hilo, aportasteis buenas soluciones que se pueden implementar con facilidad, pero en el final de este hilo no estaria de mas que cada uno aportase con fotos esquemas y codigos de los PIC el producto final si ha llegado a montarlo y esta funcionando, eso seria culminar el proyecto, aunque en general veo que al frecuencimetro en cuestion no se le puede bautizar como pone en el nombre de este hilo pues no esta diseñado ni programado en su totalidad por los componentes del foro, creo que seria mas bonito y de mas orgullo si fuese asi, entiendo que no todos quizas seamos capaces de hacerlo como cito, tambien decir que esto que leeis no es con el fin de desmoralizar a nadie ni mucho menos "digamos" llamaros la atencion, ni por asomo, veo que soys todos muy majos y que ademas os fajais en todo ayudando a diestro y siniestro, lo cual admiro aun mas.
La intencion de mi mensaje es invitaros a que diseñeis un frecuencimetro sin poner enlaces a otros proyectos similares, si lo haceis basado en un PIC crear un codigo propio, si lo haceis con un chip dedicado diseñarlo tambien con nuevas mejoras, si lo haceis de manera convencional pues lo mismo, yo me apunto al diseño y a prestaros mi humilde ayuda, pues creo que seria muy bonito hacer alarde del titulo de este hilo "Diseñemos entre todos un frecuencimetro DIY" y en la medida de lo posible que sea diseñado enteramente por los miembros del foro sin utilizar codigos fuente de otros sitios, ya que de ser asi yo tengo algunos montajes con PIC "digamos" sin presuncion "mas profesionales" que si los publico seguro que alguno optaria por montarlo de esa manera, pero ya no seria el frecuencimetro del foro.
Creo que me entendeis en lo que digo, tambien valorar si en realidad esta primero la necesidad de tener un frecuencimetro autoconstruido y que ademas sea bueno o tener un frecuencimetro diseñado por los amables y extraordinarios componentes del foro. Quizas sea una complicada decision pero creo que hay que tomarla todos ya que en el hilo he visto un despliegue de enlaces a otros proyectos bastante nutrido, y la realidad es que seguro que alguien tiene la necesidad de tener un frecuencimettro aunque no sea el de este hilo, al que admiro por ello e inicio este estupendo proyecto.
Si alguno se ve en la necesidad de montar un frecuencimetro y ve este hilo seguro que arma alguno de los que habeis publicado de otros sitios pues no veo en el hilo un producto final, acabado y con un pequeño tutorial donde se explique un poquito el funcionamiento, ajuste y algunos detalles importantes para los mas neofitos, ayudemos a esos compañeros que aun estan indecisos sobre el montaje de dicho frecuencimetro.

Un abrazo a todos, sois los mejores

COSMOS
 
Última edición:
eso es verdad,pero el problema es el prescaler que no todos consiguen el mismo,asi que el programa varia de modelo a modelo,ya puse en donde ay que modificar el programa,dependiendo del que consigan ,es por cuanto divide esa parte del programa ,ademas esta el echo del pcb,a no ser que dejemos como un modulo la parte del prescaler,no le veo utilidad de hacer un pcb y que despues nadie o muy pocos consigan los componentes
 
Hola:

eso es verdad,pero el problema es el prescaler que no todos consiguen el mismos

Tienes parte de razon, pero es mas facil hacer un codigo para cada uno de los cuatro factores de division que se suelen utilizar a partir de 1Ghz que son /10 hasta el Ghz /64, /128, /256 los que sobre pasan este valor de frecuencia que encontrar los divisores.
De todas maneras el circuito base asi como el codigo base aun no esta disponible.

ya puse en donde ay que modificar el programa,dependiendo del que consigan

Esto condiciona en gran manera la cantidad de miembros interesados en el proyecto, pues hay muchos aun (entre los que me incluyo) que no saben hacer o modificar programas para el PIC.
Lo que le pone aun mas dificultad al proyecto.

ademas esta el echo del pcb,a no ser que dejemos como un modulo la parte del prescaler,no le veo utilidad de hacer un pcb y que despues nadie o muy pocos consigan los componentes

Esta es la parte que mas se ha de estudiar, pues las pretensiones de cada uno estan mas condicionadas por el prescaler o divisor, pero nada les impediria hacer el circuito contador base que le llegase hasta unas cuantas decenas de Mhz, ya no por no encontrar los divisores, si no por no tener la necesidad de medir frecuencias tan altas, pero no les frenaria en la contruccion del circuito base, cosa que considero muy importante.
Cuando sa hace un diseño de este tipo se miran muchos factores, pero el mas importante de todos ellos es el coste total del material, despues entra en juego la disponibilidad de los componentes dentro del coste predeterminado, el resto es labor de ingenieria y diseño, que representa valores por encima del 70% del coste total solo al inicio del diseño, estabilizandose con el tiempo y las ventas, esto seria a nivel industrial, que no dista mucho fisicamente de nuestras pretensiones, solo que algunos conceptos y aportes de horas dedicadas y mejoras los hacemos gratis pues son para nuestro uso y disfrute.

Despues de 36 años dedicados a la electronica y pensando en estos temas profundamente me doy cuenta del trabajo que se hacia hace por ejemplo unos 25 o 30 años para diseñar un frecuencimetro de caracteristicas parecidas, yo desgraciadamente y por dedicacion a mi trabajo no tuve posibilidad de aprender a programar PIC, de ser asi por supuesto los exprimiria al maximo o por lo menos lo intentaria ya que a dia de hoy el diseño de un frecuencimetro basado en estos uC se remonta mas a la programacion que al diseño electronico ya que la flexibilidad de los mismos simplifica la cantidad de componentes electronicos.

Lo logico seria diseñar un circuito contador principal autosuficiente para que pueda medir algunas decenas de Mhz, con el se pueden adjuntar los distintos tipos de software para el prescaler y despues cada uno de los interesados podra optar por la via que mejor se adapte a sus posibilidades y pueda hacer uso del programa adecuado a su eleccion, recordar que en algunos lugares de la RED se esta haciendo asi desde hace años con el fin de facilitar la libre divulgacion de estos proyectos que sin son faciles y flexibles bienen bien a todos, pero si se complican solo sirven a los mas expertos y con mas posibilidades que seguro ya tienen un frecuencimetro comercial y no necesitan los que se publican en la RED, quedando reducida la disponibilidad a pocas personas.
Ya he comentado antes que soy un enamorado de los contadores/frecuencimetros, no necesito montar ninguno que vea en la RED o en este estupendo foro, pero si lo hago es por ocio o para regalarselo a quien no tiene posibilidades de comprarlo o montarlo, de hecho si me gusta el diseño final lo montare y seguro que algun prescaler tambien pero solo por ocio y para hecharos una mano en ello si lo necesitais, no dudeis en decirmelo, lo que este en mi mano estara a vuestra disposicion.

Un abrazo

COSMOS
 
tenia una idea de hacer el programa una rutina o algo para que se auto calibre(independiente de que prescaler le ponga) ,tomando como referencia un oscilador externo ,pero en el mismo pcb,luego abandone por falta de tiempo
saludos
 
Hola Majestad:

Eso si que es critica constructiva, ademas de una buena idea.
Yo el mejor fecuencimetro que he visto por la RED (y siceramente he visto muchos) esta basado en el 16F876, mide hasta los 200 Mhz sin prescaler, el circuito base lleva como componentes adicionales el 74F50109 y el 74F74, los componentes pasivos y un cristal de 20Mhz, con esto ya es suficiente como frecuencimetro, si bien el creador le ha puesto un prescaler hasta los 4Ghz, tiene 3 entradas seleccionables y medidor de señal en pantalla, es muy completo, si bien esta diseñado por un compañero de una pagina (no es un foro) a la que estuy subscrito desde hace años, es una labor de ingenieria y diseño digna de ser expuesta, lastima que el creador no haya publicado el codigo fuente, ademas de estar solo disponibles los esquemas para los incritos en esa pagina, por lo que no se puede hacer publico, una pena de veras, aunque le pedire permiso para poner el esquema en el foro sin publicar el codigo *.hex o el codigo fuente, a ver que me contesta, seria interesante para hacerse una idea de por lo menos el hardware utilizado y la disponibilidad de los componentes.

Saludos

COSMOS
 
Hola:
Ya veo que la conoces, es estupendo el frecuencimetro con el 16F876, con sus 3 entradas independientes y demas.
El que yo comente sale de una pagina a la que migramos unos cuantos que hace años teniamos un espacio en Yahoo, se suelen tratar temas en exclusiva de MW (micro.ondas) y solo hay un proyecto sobre contadores de frecuencia, se parece algo al de Matjaž Vidmar pero no es exactamente igual.
Creo que estas pensando lo mismo que yo eh?? Pues de copiar podemos copiar de Matjaž Vidmar, pues sinceramente y como dices coincido contigo que es de los que conozco el 2º mejor candidato, pero creo que en este foro hay potencial suficiente para hacer el codigo del PIC y hacer algo bueno y bonito, y por supuesto modular al que se pueda poner o no el prescaler segun necesidad.
En unos dias me ponder a desempolvar informacion que tengo por aqui y empezare a diseñar un prescaler y si puedo que sea multifuncional, o sea integrado el divisor preanplificador y escuadrador de salida en la misma placa, pero seria interesante que en el codigo fuente este implementado que cuando se cambie el conmutador o selector de entrada lo muestre en el display.
Escribiendo esto se me ha ocurrido haciendo memoria del esquema de Matjaž Vidmar en el que se utilizan varias entradas de conteo creo que son 3, pues creo que se podria poner que cada una fuese una entrada de division del prescaler de las mas utilizadas o bien cambiar el codigo fuente como comento el-rey-julien, seria una buena opcion.

Yo seguire investigando


Saludos

COSMOS
 
Hola a todos.

esta es mi primera entervension en este foro, yo tambien estoy armando un frecuencimetro y he probado varios que he encontrado en internet, y solo uno ha sido de mi agrado, el cual descargue de este foro, posteado por el-rey-julien el 03 de marzo de 2010: Frecuencimetro PIC 16F628A.rar, buena esa... trabaja muy bien, pero al jumpear para colocar el prescaler, la division la hace pro 1000.

Sería bueno que lo modificaras para utilizar una entrada más del pic para tener 4 combinaciones de division:

JP1 JP2 Prescaler

OFF OFF 20
ON OFF 64
OFF ON 128
ON ON 256

Así cada cual podria utilizar el prescaler que le sea más facil de conseguir en cada pais.

Aqui en colombia no he podido conseguir ninguno de ellos y estoy pensando en buscarlo en los selectores de TV.

Saludos.

Jarod10.
 
Hola:

Ahora con los nuevos PLL los prescalers han muerto, ya que estos lo llevan implicito, un ejemplo es el TSA5500, es un PLL que maneja frecuencias de hasta 2600Mhz, y csi todos los de la nueva era son asi, que es el 95% del mercado.
Aun se pueden recuperar algunos de motorola como el MC12022 en equipos de telefonia obsoletos que se pueden encontrar de desguace.

Saludos

COSMOS
 
Bueno gente, miren este:
http://www.microwave.gr/content/view/85/109/
Completito completito, no se si sera del que estaban hablando pero este tienme todo ASM, HEX, etc.
Les comento por otro lado que despues de leerme las 13 paginas del post me pico el bicho y esto haciendo uno lo estoy programando en C (porque assembler no se) y uso un 16f873 con un cristal de 20MHZ y si mis calculos no estan mal deberia leer tranquilamente unos 50 MHZ (lo que no conozco es algun circuito sencillo que llegue a estas ffracuencias). Ademas aprovechando el pic estoy midiendo el voltage de la señal, para en el caso de que sea del tipo TTL sabe un aproximado de la amplitud. Pero estoy teniendo un problema con las cuentas cuando la fracuencia supera los 20k si mal no recuerdo(pierdo cuentas => pierdo exactitud). tengo que revisar el programa y ver que puedo hacer con eso. Si les interesa lo subo, HEX, .C y la simulacion en proteus. Lo que quisiera saber es si algun miembro que la tenga clara con C me podria dar una mano para terminar el proyecto dado que estoy arrancando con esto de los microcontroladores.


Saludos.
 
Última edición:
Yo te puedo ayudar mcaco hice un programa de un para un frecuencímetro con el timer1 de 16bits de un PIC16F876A y según mis calculos el software puede llegar hasta varios cientos de GHz, obvio que es por la parte de software porque el timer del PIC no se aguanta esa frecuencia, estoy en busca de algún preescaler y encontré uno de 1.3GHz en un sintonizador de TV que todavia no comprendo muy bien como funciona ya que tiene una especia de comunicación I2C pero no es exactamente I2C así que sigo viendo :D.
Cualquier ayuda que necesites con el software estoy a tu disposición ;). Cualquier preescaler que que allan visto que se pueda conseguir por aquí les agradecería que me hicieran saber.

Saludos!!
 
mcaco el metodo que usas para medir la frecuencia es muy lento se te va a complicar para frecuencias mas altas y poco preciso a su vez, te dejo el que uso yo. No activo la interrupción ya que salir de ellas consume muchos ciclos de reloj, lo mejor es simplemente leer el bit de estado para saber cuando se activa la misma, aquí testeo durante 1 segundo cuando se desborda el TIMER 1.

Código:
#bit t1_overflow = 0xF9E.0            //bit de desbordamiento del TIMER 1 se pone a 1 cuando se desborda el TIMER 1

INT32 FRECC;
INT32 cycles;
INT over = 0;

setup_timer_1(T1_EXTERNAL | T1_DIV_BY_1);       //activo el TIMER 1 
      WHILE(cycles != 399810){                        //con este bucle demoro 1 segundo para tomar la frecuencia                  
         IF(t1_overflow){ t1_overflow = 0; ++OVER; }  //testeo si desborda el TIMER 1
         ++cycles;                                    //incremento cycles para ir contando 1 segundo
      }
      setup_timer_1(T1_DISABLED);                     //desactivo el TIMER 1

FRECC = make32(OVER,get_timer1());                    //uno el valor del TIMER y los OVERFLOW en un INT32 para tener la frecuencia

Lo único que tenes que ajustar es el numero con el que se compara cycles (399810) que ahí está puesto para que trabaje con 10MIPS de esta manera se logra una temporización muy proxima y casi exacta al segundo, cuando tenga tiempo quería hacer una versión que use el otro timer para temporizar el segundo de esta manera se hace más preciso (también simplemente testeando el bit de interrupción), con este metodo pude medir frecuencias de 10MHz con un error de 200Hz que usando el otro metodo que te comente con el timer creo que podría llegar a reducirlo a 10Hz como máximo.
Después que salis del bucle while podes tomar la medición del ADC:

Código:
INT16 adc;
FLOAT vol;

setup_adc_ports(ALL_ANALOG);           //todos los pines son ADC
setup_adc(ADC_CLOCK_INTERNAL);      //oscilador RC del ADC
set_adc_channel(0);                          //canal 0 del ADC para la conversión
delay_us(25);                                   //delay necesario

while(true){

ADC = read_adc();
delay_us(20);
VOL = (FLOAT)ADC * 5 / 1024;

}

De esta manera lees el ADC, cambiando el adc_channel podes hacer la lectura en los diferentes canales.
Espero te sirva cualquier duda consultame ;)

Saludooos
 
Última edición:
Atrás
Arriba