Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

20/10/2011 #21

Avatar de bondadoso

frecuencimetro 50 mhz.
adjunto una nota de aplicacion de microchip donde esta el programa de un frecuencimetro de
50 mhz en ensamblador, espero que alguien que sepa ensamblador explique un poco como funciona para hacerlo en c18 para un pic182525 que es el que tengo.
19/11/2011 #22


frecuencimetro 50MHZ.
Saludos, es la primera vez que escribo en el foro, se podria decir que soy nuevo, aunque mi cuenta ya tiene años de creada .
Bueno respondiendo a tu inquietud, si revisas la hoja de datos del microcontrolador verás en las ultimas hojas el cuadro: "TIMER0 AND TIMER1 EXTERNAL CLOCK REQUIREMENTS", que son las caracteristicas de los contadores del pic, ahi verás claramente que el mínimo ancho de pulso que puede medir el timer0 es de 10ns y el timer1 es de 30ns(timer0 es mas preciso); si utilizas el timer0 como contador extern, entonces podrás medir como máximo un periodo de 20ns, esto equivale a 50Mhz, esto en teoria y dependerá del pic en particular, algunos alcanzan mucho mas(60, 70Mhz).
Existen varias tecnicas, unas mas complejas que otras para hacer hacer un frecuencimetro usando el TMR0.
Ahora con respecto a la nota de microchip; utiliza una tecnica para alcanzar a medir altas frecuencias sin perder mucha resolucion, y consiste en usar el TMR0 y su preescaler, de manera que al final de la cuenta unes los dos valores que obtengas del TMR0 y el preescaler, para obtener el conteo exacto. Tanto el TMR0 como su preescaler tienen un tamaño de 8bits de manera que juntos hacen un contador de 16 bits, de manera que los dos juntos pueden contar hasta 65,536 cuentas(Hz).
Suponiendo que usas el preescaler a su maximo valor que es 256, entonces cada 256 cuentas el preescaler se desbordará a cero e incrementará en uno el TMR0.
Ahora, lamentablemente el valor del preescaler no se puede leer por software ; pero de nota de microchip AN592, muestra la unica tecnica para leer el valor del preescaler y consiste en usar un pin mas del pic.
Suponiendo que estas usando ademas del TOCKI, el pin RA3; inicialmente declaras como entrada el pin RA3, una ves terminado el tiempo de medicion declaras como salida el pin RA3 y lo pones en bajo, esto anulará la señal que estas midiendo. Una ves llevado a bajo el pin RA3, comienzas a hacer transiciones de alto a bajo en el pin RA3, y revisas si el TMR0 se ha incrementado en cada transicion, si no continúas hasta que se incremente el TMR0, una ves detectado el incremento del TMR0, lo que tienes que hacer(tienes que usar preescaler a 256) restar a 256 el numero de transiciones que hiciste en el pin RA3 para que se incremente el TMR0.
Esto es así:
Valor del preescaler = 256 - N(número de transiciones de H-L en el pin RA3).
Luego concatenas el valor de TMR0 con el valor del preescaler para obtener la cuenta real.
Si quieres mas precicion puedes usar la interrupcion del TMR0 de manera que cada ves que se desborde el TMR0, incrementes un tercer registro, uniendo este con el TMR0 y el preescaler obtienes un contador de 24 bits de manera que puedes contar hasta 16,777,216 cuentas(hz) con un tiempo de conteo de 1 segundo.
Ahora toda la explicacion que te he hecho es para un pic 16F , no conozco mucho los 18F, pero supongo que tambien se puede aplicar.
Y si no te quieres complicar con los codigos y si solo quieres medir maximo hasta unos 120 khz, pues puedes usar el BASIC para pic, que tiene una instruccion que no usa el TMR0, y cuenta hasta 125KHz usando un crystal de 20MHz, de manera que en una sola linea de codigo de basic ya obtienes la cuenta .
Yo me inicie con assembler, ahora uso tanto el basic como el C, para programar pics.
Bueno espero haberte sacado de dudas, cualquier consulta no dudes en hacerlas que estamos para apoyarnos.
19/11/2011 #23

Avatar de SERGIOD

Miren estro esta en un tema que Hizo rash yo aproveche y subi un frecuencimetro pruebenlo:
http://www.forosdeelectronica.com/f2...12/#post530512
21/11/2011 #24


frecuencimetro 50mhz
Aca unas fotos de la simulacion de un frecuencimetro que usa la tecnica del AN592 de microchip.

http://imageshack.us/photo/my-images/401/1hz.png/
http://imageshack.us/photo/my-images/20/4mhz.png/
http://imageshack.us/photo/my-images/231/20mhz.png/
http://imageshack.us/photo/my-images/6/50mhz.png/
http://imageshack.us/photo/my-images/651/125hz.png/
http://imageshack.us/photo/my-images/710/500khz.png/













---------- Actualizado después de 20 minutos ----------

La resolucion es de 1 hz hasta los 16Mhz, luego es de 4 Hz hasta los 50Mhz.
En la simulacion, solo hay un pequeño error de 4 hz cuando se mide una señal de 50 Mhz, lo cual demuestra lo preciso que es el usar esta tecnica de leer el preescaler, el programa no esta escrito en ensamblador, nisiquiera en C, esta escrito en un modesto BASIC, y solo ocupa menos de 500 palabras de memoria; si pues aunque usted no lo crea!.
22/11/2011 #25


buenas , nececito medir el periodo de señales pequeñas hasta 5hz en un at89c52, pero tengo un problema, realize el programa midiendo el numero de pulsaciones por segundo, y no es nada preciso para mis requerimientos,asi q decidi hacerlo midiendo el periodo, ¿alguna idea?
22/11/2011 #26

Avatar de DJ DRACO

Para el caso del amiguillo que quiere medir unos 450MHz...no se podría implementar un CD4040 y usar la salida en la que divide por 12 por ejemplo?

Así tendríamos a la salida unos 37,5MHz...ahi algunos pic's que trabajan hasta 40MHz...deberian funcionar

o no?
22/11/2011 #27

Avatar de J2C

DJ Draco

Con viento intergalactico a favor puede ser que un CMos como el CD4040 llegue a los 10 MHz y tu le pides que acepte un clock de 450 MHz !!!!.



Saludos, JuanKa.-
22/11/2011 #28

Avatar de DJ DRACO

jajaja mi campo no es el de altas frecuencias...

sólo decía...
22/11/2011 #29

Avatar de J2C

Para adecuar frecuencias tan altas y mayores se usan divisores con la técnica ECL mucho mas costosos que los CMOS y los TTL F.

DJ Draco tiran cosas asi solo confunde mas a los jovenes que recien comienzan.



Saludos, JuanKa.-
22/11/2011 #30

Avatar de DJ DRACO

Qué es ECL?
Podrias explicarme?
22/11/2011 #31

Avatar de J2C

DJ Draco

Como no, empeza por aqui: http://es.wikipedia.org/wiki/Emitter-coupled_logic que esta en castellano y sino por http://en.wikipedia.org/wiki/Emitter-coupled_logic en ingles un poco mas desarrollado el tema.



Saludos, JuanKa.-
22/11/2011 #32

Avatar de SERGIOD

SERGIOD dijo: Ver Mensaje
Miren estro esta en un tema que Hizo rash yo aproveche y subi un frecuencimetro pruebenlo:
http://www.forosdeelectronica.com/f2...12/#post530512
Ahora esta sin clave
revisenlo:
Instrumentación básica para el taller del aficionado electrónico.
22/11/2011 #33


El programa se ese frecuencimetro está en el libro microcontroladores de cekit.
22/11/2011 #34

Avatar de SERGIOD

leo625 dijo: Ver Mensaje
El programa se ese frecuencimetro está en el libro microcontroladores de cekit.
Pues yo no tengo ese libro que dices y seguro que como yo hay muchos que no lo tienen es mas practico subir la informacion al foro y que todos los foreros lo descarguen si lo desean
22/11/2011 #35


Mas tarde subiré el codigo del programa, para que lo vean; que por cierto esta muy bien explicado en ese libro.
22/11/2011 #36


Frecuencimetro del libro de microcontroladores cekit
Archivos Adjuntos
Tipo de Archivo: rar FRECU50Mhzparte1.rar (1,47 MB (Megabytes), 522 visitas)
Tipo de Archivo: rar FRECU50Mhzparte2.rar (1,41 MB (Megabytes), 295 visitas)
22/11/2011 #37

Avatar de SERGIOD

leo625 dijo: Ver Mensaje
Frecuencimetro del libro de microcontroladores cekit
Bueno gracias por la información bajando
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.