PDF de programación - Contador de Frecuencia de 1Hz-100Mhz con visor LCD y RS232 interfase

Imágen de pdf Contador de Frecuencia de 1Hz-100Mhz con visor LCD y RS232 interfase

Contador de Frecuencia de 1Hz-100Mhz con visor LCD y RS232 interfasegráfica de visualizaciones

Actualizado el 23 de Julio del 2017 (Publicado el 17 de Julio del 2017)
699 visualizaciones desde el 17 de Julio del 2017
787,2 KB
9 paginas
Creado hace 19a (10/01/2005)
LinuxFocus article number 253
http://linuxfocus.org

Contador de Frecuencia de 1Hz−100Mhz
con visor LCD y RS232 interfase

by Guido Socher (homepage)

About the author:

Guido ama a Linux no solo
porque divertido descubrir las
grandes posibilidades de
estos sistemas, sino también
por la gente envolvida en su
diseño.

Abstract:

Este articulo continuamos con la serie de Microcontroladores AT90S4433.
Les sugiero a ustedes que lean artículos anteriores sobre los
microcontroladores Atmel programando con cuidado: 1. How to install and
use the Linux AVR development environment and how to build the
programmer hardware: March 2002, Programming the AVR Microcontroller
with GCC 2. How to make your own printed circuit board: May 2002, A
LCD control panel for your Linux server Esta vez diseñamos un contador de
frecuencia el cual puede medir frecuencias de 1Hz a 100MHz. Como
alternativa usted puede usarlo para contar eventos, tales como cuantas veces
una persona cruza la calle (Lo que sea disponible en pulsos digitales). El
contador tiene un visor LCD también como una interfase RS232 para leer los
resultados del contador desde Linux.

_________________ _________________ _________________

Introducción

La frecuencia de una onda senoidal o cuadrada es expresada como numero de oscilaciones por segundo. En
orden de determinar la frecuencia de una señal continua una sola cosa es necesaria para contar esas
oscilaciones. Este camino nos determina la frecuencia de la primera harmónica de la señal continua oscilante.
Para medir frecuencias que no son continuas "sonido" compuestas, necesitaremos un analizador de espectro.
Este es si embargo una pieza diferente de hardware. Lo que hemos diseñado aquí es un contador de frecuencia
para señales continuas oscilantes. Asumimos que la señal no cambia su frecuencia durante un intervalo dado
donde muestreamos la señal.

1/9

Nuestro contador de frecuencia trabaja en 2 pasos:

1.

2.

Saque cualquier compensación de la C.C. de la señal y después conviértala en una onda cuadrada
usando un comparador del voltaje.
Cuente el número de pulsos por vez y divída por intervalo de tiempo.

Qué usted necesita

Para construir el contador de la frecuencia usted necesita las siguientes piezas:
1 x Atmel At90S4433 Microcontrolador
1 x zócalo para CI 28pinos 7,25 mm
2 x zócalo para CI 16pinos
1 x zócalo para CI 1pin
1 x zócalo para CI 14pinos
No hay zócalo para CI en el MAX903 y el 74F74. Soldarlos directamente a la placa!
1 x MAX232
1 x Cristal 4,194304MHz
1 x LED (Verde)
1 x BC557 transistor PNP
4 x 1uF capacitor (polarizado)
2 x 27pF capacitor cerámico
4 x 10nF mini capacitor cerámico
3 x 100nF mini capacitor cerámico
1 x 200nF mini capacitor cerámico
1 x 0,47uF mini capacitor cerámico
2 x resistor 470 Ohm
1 x resistor 470K
2 x resistor 100 Ohm
3 x resistor 1k
5 x resistor 10k
3 x resistor 47K
1 x resistor 220 Ohm
3 x resistor 4K7
1 x resistor 3k3
1 x resistor 2k2
1 x resistor 47 Ohm
1 x 4K7 potenciómetro (tan pequeño como sea posible), si usted desea puede sustituir este potenciómetro por
un par de resistores. Este potenciómetro se utiliza para fijar el contraste del LCD. Para mis visores LCD
100Ohm juntas con 1K da un buen contraste.
1 x diodo Zener 4.3V
2 x pequeños botones de contacto
1 x 470uF capacitor (polarizado)
1 x 4,7uF capacitor (polarizado)
1 x diodo 1N4001
1 x 74HC02 TTL IC
1 x 74F74 fast TTL IC
1 x 74HC390 TTL IC
1 x LM393 comparador de tensión
1 x MAX903 comparado de tensión de alta velocidad, 8 Pinos plásticos empaquetado DIP, usted puede
pedirlo directamente de www.maxim−ic.com en caso de que su distribuidor local no lo tenga en la stock.

2/9

1 x 7805 regulador de 5V
1 x 2 lineas 20 caracteres visor LCD con compatibilidad a la interfase HD44780. Con o sin fondo luminoso
(16 pinos o 14 pinos)

Todas los visores LCD que he visto siempre con 14 o 16 pinos en el conector eran compatibles con HD44780.
Usted puede usar un visor de 3 o 4 líneas pero deberá modificar el software un poquito.

Además de ésa usted necesita algunos cables, conectores (BCD, alimentación, RS232) y un transformador de
9V o alguna otra fuente de alimentación AC o DC(150mA). Usted consigue a veces las fuentes de
alimentación muy baratas que entran directamente en el zócalo de pared y se utilizan para toda la clase de
aparatos de electrónica.

Diagrama esquemático y placa

Utilicé eagle para Linux para diseñar el diagrama esquemático y la placa. El programa tiene algunos
problemas para entender que todos los contactos diferentes de la fuente de alimentación en los CI son 5V.
Usted por lo tanto recibirá un error si activa la comprobación de reglas eléctricas. Sin embargo el diseño es
correcto.
El diagrama esquemático (presione para obtener una imagen mayor):

La placa (presione para obtener una imagen mayor):

3/9

La placa es específicamente diseñada para pasatiempos electrónicos. Solo la capa azul da a entender que es
para ser grabada al agua como una placa de circuito impreso. Las líneas rojas son cables. Es mucho más fácil
y menos preciso se requiere para construir una sola placa de circuito impreso de solo lado. Usted puede poner
los cables (rojos) tales que tenga una corta longitud. I could not do that in eagle.
el diseño de la placa con fondo blanco para mejor impresión: placa con fondo blanco (Nota: Éste no es el archivo que
usted necesita hacer la placa de circuito impreso. )
Los archivos del Eagle están todos incluidos junto con el programa (linuxfreqcount−0.4) el cual usted podrá
bajar al final del articulo.

Cómo trabaja

El microcontrolador AT90S4433 tiene dos contadores internos. Uno es de 16bit de ancho y uno de 8bit de
ancho. utilizamos el contador de 8bit de ancho para generar base de tiempo precisa de la frecuencia de reloj
del cristal del AT90S4433. Para este propósito usamos un cristal de 4194304Hz y da pulsos al contador de
8bit mediante un pre−escalador interno de 1/256 (véase la hoja de datos del AT90S4433, descárguela al final
de este articulo). El contador de 8bit esta configurado para generar una interrupción ante un derrame. En otras
palabras obtenemos 4194304Hz / (256 * 256) = 64Hz de base de tiempo. Por usar un lazo variable generamos
de estas llamadas de funciones en intervalos de 1Hz o 64Hz.

Ahora tenemos una función la cual es llamada a intervalos de 1Hz o 64Hz dependiendo del modo que nuestro
programa contador esta corriendo. Todo lo que necesitamos hacer ahora es leer el contador de 16bit de ancho
desde esta función y mostrar el resultado. El contador de 16bit de ancho (contacto PD5 en el
Microcontrolador) obtiene sus pulsos de señal de la señal que queremos medir.

El microcontrolador muestrea las señales de entrada para sincronizarlo con su reloj interno. Según el teorema
de muestreo podemos por lo tanto medir señales máximas arriba de la mitad de la frecuencia del cristal. Ese es
el límite teórico. En la practica podemos medir señales arriba de 1,5MHz con el Microcontrolador.

Para medir frecuencia mas altas necesitamos un pre−escalador/divisor. Eso es lo que nos proporcionan los CI
74F74 y 74HC390. El 74F74 es usado como 1/4 divisor rápido asincrónico y el 74HC390 divisor de 1/25. No
podemos utilizar directamente el 74HC390 como un divisor 1/100 porque puede manejar un máximo de
25MHz

El circuito prevé 2 entradas. Una por el divisor 1/100 y uno directo a la entrada. Dependiente en la frecuencia
de la señal que usted desea medir use uno de esas líneas de entrada (no ambas).

Si usted está solamente interesado en frecuencias hasta 1.5Mhz (Ej. para establecer medidas para la respuesta
de audio de un amplificador de audio) usted puede también construir una versión simplificada del contador y
dejar afuera el MAX903, 74F74 y el 74hc390. Usted puede utilizar aun el mismo programa software y placa
de circuito.

El propósito de los 2 comparadores de tensión (MAX903, alta velocidad y LM393) es amplificar las señales y
generar señales cuadradas por ejemplo ondas senoidales.

El cuidado especial fue tomado durante el diseño y la disposición de la placa para evitar oscilaciones de los
comparadores cerca del umbral. Observe usted que el MAX903 es realmente un comparador muy de alta
velocidad. Si usted utiliza una señal de entrada ruidosa, imagine por ejemplo una señal modulada de 100KHz
con 1MHz de ruido, entonces usted contara algunos pulso adicionales de 1MHz cuando la señal de 100KHz
cruce el nivel de los cero voltios.
El resistor de 220K en el MAX903 evita la influencia del ruido a un cierto grado proporcionando una

4/9

regeneración positiva. Usted debe sin embargo no alimentar el contador con señales ruidosas.

El microcontrolador puede ser controlado vía RS232 y vía 2 botones de presión (botón de limpieza y botón de
cambio del modo de conteo).

Los 2 canales de entrada son combinados vía una compuerta O (74hc02). La compuerta O por supuesto
suprimirá señales de entrada di desconecta la entrada 1/100 mientras tengamos un "1" lógico en las líneas de
salida del 74hc390. Por lo tanto el 74hc390 es desbloqueado (contacto 2) cuando usted cambia el modo de
conteo o cuando presiona el botón de limpieza.

El programa

El programa para el Microcontrolador establece 2 contadores en modo interrupción. Como esto es hecho es
descrito muy bien en la hoja de datos del AT90S4433 (véase referencia). Usted tiene que fijar un número de
registros. Es importante pero preferentemente seco. Por lo tanto no lo repetiré aquí. La mayoría de la lógica
del contador es implementada en el archivo linuxfreqcount.c. El resto de los archivos son "bibliotecas" para el
LCD, el UART, el etc.... Cuando escriba el programa para el Microcontrolador usted debe tener cuidado de no
usar mas de 128Bytes de RAM. Es todo lo que tenemos. Por lo tanto es mejor no haber jerarquizado llamadas
de la función con muchos de parámetros. Se prefieren el uso de banderas y variables globales.

Cuando los registros del contador se configuran correctamente entonces la función
SIGNAL(SIG_OVERFLOW0) será llamada en intervalos de 64Hz. Aquí
  • Links de descarga
http://lwp-l.com/pdf5494

Comentarios de: Contador de Frecuencia de 1Hz-100Mhz con visor LCD y RS232 interfase (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad