Generador de onda vhdl

Solo disponible en BuenasTareas
  • Páginas : 11 (2512 palabras )
  • Descarga(s) : 0
  • Publicado : 17 de noviembre de 2011
Leer documento completo
Vista previa del texto
Universidad Autónoma De Querétaro
Facultad de Ingeniería
Ingeniería en Automatización
Dávila Reyes Emmanuel
Generador digital de señales analógicas.

Introducción.
Un Generador de señales, es un aparato electrónico que produce ondas sinusoidales, cuadradas y triangulares con frecuencias y magnitudes variables. Tiene la capacidad de generar señales variables en el dominio del tiempo paraser aplicadas posteriormente sobre el circuito bajo prueba. A un generador de señales puede especificarse, la frecuencia, amplitud y el “Duty cicle” de la señal cuadrada.
Para este trabajo se diseño un sistema digital para un generador de señales. La salida generada por el circuito digital pasara directamente a un DAC, modelo MCP4901 de Microchip.
Un DAC es un dispositivo que puede convertir unaseñal digital en una señal analogica proporcional al valor de esa señal digital. Los convertidores digital-analógico son interfaces entre el mundo abstracto digital y la vida real analógica.. Realiza las funciones inversas a un ADC.

El DAC utilizado, maneja una comunicación serial tipo SPI. La comunicación SPI (Serial Peripheral Interface) es un estándar de comunicación, usado principalmentepara la transferencia de información entre circuitos integrados en equipos electrónicos. Es un tiempo de comunicación síncrona, es decir, ambos circuitos digitales, manejan la misma señal de reloj, esto permite asegurar en mayor medida la recepción y envió de datos. La siguiente figura describe el comportamiento de las señales enviadas al DAC.

La señal CS, es una señal de habilitacion para elDAC, estando negada se activa la habilitacion del circuito cuando el estado es 0. La señal SCK es una señal de reloj que genera el sistema digital, mas adelante se explica de donde se obtiene esta señal.
La señal SDI es una señal de entrada de datos, los primeros 4 bits entrantes, son bits de configuracion, los siguientes 8 bits, son el valor digital a convertir por el DAC, y posteriormente hay 4bits que no importan, estos existen debido a la arquitectura que maneja el DAC en su interior.
Finalmente la señal LDAC es una señan de habilitacion para mostrar el dato convertido en una señal analogica de 0 a 5 v.

El diseño digital propuesto es el siguiente:

Descripción del sistema digital.
Consiste primeramente en 3 Bases de tiempo, las cuales darán las frecuencias preseleccionadaspara el proyecto, la salida de estos módulos va a un multiplexor, el cual será controlado por una señal de entrada al modulo de más alta jerarquía. La salida de ese multiplexor, va a 3 contadores diferentes, los cuales generaran la señal digital requerida para los 3 tipos de señales a manejar. Para la señal sinusoidal, se hizo uso un “Look up table”, el cual recibe la señal por parte de un contadorde carrera libre, la salida del LUT genera el valor correspondiente en el tiempo para señal sinusoidal. Para la señal cuadrada se hizo uso de un contador ascendente y un comparador, el cual es 1 si es menor a un número en la cuenta y 0 si es mayor a ese número. La señal de diente de sierra fue la sencilla ya que solo necesitaba un contador ascendente de carrera libre. La salida de cada uno de loscontadores, va directamente a un multiplexor el cual es controlado en el modulo de más alta jerarquía para seleccionar el tipo de señal que se desee a la salida. Este multiplexor tiene su señal de salida de 8 bits, conectada a otro multiplexor para enviar la señal de salida. Una maquina de estados controla este multiplexor de salida y recibe una señal de habilitación desde otra base de tiempo lacual sirve como reloj maestro para la comunicación y además genera la señal SCK. Finalmente la señal de salida SDO viene del multiplexor de salida.

Descripción VHDL
(Se omite el LUT de la señal sinusoidal por el tamaño tan grande del archivo)
Base tiempo 1
Library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_unsigned.all;

entity base_tiempo1 is...
tracking img