Generador de Frecuencias
Generador de Frecuencias
Generador de Frecuencias
MICROELECTRONICA
PROYECTO
GENERADOR DE SEALES DE FRECUENCIAS MUSICALES
ELABORADO POR:
20103583
AREQUIPA PER
2014-B
OBJETIVO:
Generar por medio de programacin en VHDL frecuencias de sonido o tonos musicales a travs de la tarjeta
FPGA SPARTAN 3E
MARCO TEORICO:
La placa de desarrollo Spartan 3E FPGA , incluye como ncleo el dispositivo XC3S500E que incluye 20
multiplicadores dedicados, 4 DCM, 20 BRAM y quinientas mil puertas equivalentes, lo que permite disear y
testear aplicaciones con un alto grado de procesado.
La placa dispone de un gran nmero de interfaces, tanto anlogas ( convertidor ADC 14 bits y DAC de 10 bits)
como digitales y recursos de almacenamiento.
Caractersticas
PRINCIPALES COMPONENTES
PUERTO USB
Por medio de este puerto se conecta la tarjeta a la computadora, cuando el programa ha sido instalado
correctamente, se enciende un led, e indica que ya puede ser utilizada.
INTERRUPTORES (SWITCHES)
Spartan 3E cuenta con 4 interruptores, localizados en la esquina inferior derecha.
Cuando el interruptor se coloca en la posicin de alto, se conecta al FPGA por medio de un pin a 3.3 V,
generando un 1 lgico. En caso contrario, cuando se encuentra en la posicin bajo, el interruptor se conecta al
FPGA por medio de un pin conectado a tierra, un 0 lgico.
Un cambio en la posicin del interruptor tarda aproximadamente 2 ms para que el valor lgico correspondiente
se estabilice en el pin del FPGA. Por lo tanto, no se requiere ningn tipo de circuitera para eliminar los rebotes.
Para utilizar los interruptores para un determinado diseo, se debe asignar las seales del circuito a los pines del
FPGA que estn conectados a los interruptores. Para lograr esto, se utiliza la Tabla 1 en la cual se muestra los
parmetros que deben introducirse en la herramienta de Floorplan IO de ISE.
INTERRUPTORES DE CONTACTO
Dispone de 4 interruptores de contacto, y un interruptor con la capacidad de rotar a la derecha, izquierda y
funcionar como interruptor de contacto.
Al presionar el BTN Norte, BTN Sur, BTN Este o BTN Oeste, se conecta al pin a 3.3 V asociado al FPGA,
generando un 1 lgico, y un 0 lgico cuando este no se presiona.
En algunas aplicaciones se puede utilizar el BTN Sur, como reset. No hay circuito antirebote en los botones, hay
que implementarlos en la FPGA!
La frecuencia de las seales que queremos generar depender de la octava que escojamos, lo que har que sean
ms o menos graves los sonidos que generemos. La tabla muestra distintas frecuencias de las notas.
Finalmente la seal salida de la FPGA servir de entrada a la etapa de amplificacin, y a su vez, la salida del
amplificador se conectar a una resistencia de carga, que en nuestro caso ser un altavoz.
La figura muestra el esquema ms general del amplificador. La primera etapa del amplificador eleva los niveles
de tensin y la segunda etapa amplifica la corriente que ser entregada al altavoz.
Es importante sealar que el diseo ms bsico del amplificador puede no necesitar etapa amplificadora de
tensin. Sin embargo, puede ser interesante disear una primera etapa con ganancia en tensin variable
(utilizando un simple potencimetro) y as conseguir un nivel de voltaje variable a la salida.
Para realizar el diseo del amplificador debemos tener en cuenta las especificaciones del problema de diseo:
Para las caractersticas de entrada del amplificador hay que tener en cuenta que la seal de entrada al
amplificador (la salida de la FPGA) es una seal cuadrada cuya amplitud vara entre 0 y 3,3 V.
Para disear las caractersticas de salida del amplificador hay que tener en cuenta que la resistencia de carga
(altavoz) es 8 y que los altavoces utilizados pedirn una potencia entre 0,5 0,25 W.
Finalmente, tenemos que disear un ancho de banda adecuado para que el amplificador funcione correctamente
en todas las frecuencias de las notas.
En el caso ms general, podemos disear un amplificador que opere correctamente en el rango de frecuencias de
la octava, es decir, que las frecuencias de corte inferior (y superior) se siten una dcada por debajo (y por
encima) de la nota con frecuencia menor, 130 Hz (y la nota con frecuencia mayor, 250 Hz).
En el rango de frecuencias en que trabajamos, la frecuencia de corte superior no supone ningn problema ya que
sta viene determinada por las capacidades internas del transistor, cuyos valores son muy pequeos, del orden de
los pF, resultando frecuencias de corte superior mucho ms altas de las requeridas. Para disear la frecuencia de
corte inferior necesitamos elegir cuidadosamente los condensadores de acoplo de la entrada y la salida del
amplificador, ya que stos determinara nuestra frecuencia de corte a bajas frecuencias.
DIAGRAMA DE FLUJO:
INICIO
ASIGNACION DE CONSTANTES
VECTORIALES
FIN
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity notas is
Port ( clk : in STD_LOGIC;
a : in STD_LOGIC;
b : in STD_LOGIC;
c : in STD_LOGIC;
d : in STD_LOGIC;
e : in STD_LOGIC;
f : in STD_LOGIC;
g : in STD_LOGIC;
parlante : inout STD_LOGIC);
end notas;
begin
process (clk)
begin
if clk'event and clk= '1' then
cont <= cont+1;
if cont= cont_max then
cont <="00000000000000000";
end if;
end if;
end process;
process (clk)
begin
if clk'event and clk= '1' then
cont1 <= cont1+1;
if cont1= cont_max1 then
cont1 <="000000000000000000";
end if;
end if;
end process;
process (clk)
begin
if clk'event and clk= '1' then
cont2 <= cont2+1;
if cont2= cont_max2 then
cont2 <="000000000000000000";
end if;
end if;
end process;
process (clk)
begin
if clk'event and clk= '1' then
cont3 <= cont3+1;
if cont3= cont_max3 then
cont3 <= "00000000000000000";
end if;
end if;
end process;
process (clk)
begin
if clk'event and clk= '1' then
cont4 <= cont4+1;
if cont4= cont_max4 then
process (clk)
begin
if clk'event and clk= '1' then
cont5 <= cont5+1;
if cont5= cont_max5 then
cont5 <= "000000000000000000";
end if;
end if;
end process;
process (clk)
begin
if clk'event and clk= '1' then
cont6 <= cont6+1;
if cont6= cont_max6 then
cont6 <= "00000000000000000";
end if;
end if;
end process;
process (parlante)
begin
if a= '1' then parlante <= cont (16);
elsif b= '1' then parlante <= cont1 (17);
end Behavioral;
RESULTADOS:
La seal de audio que se puede escuchar por el buffer es una seal pura rica en armnicos.
Se distingue entre cada nota la diferencia en tono.
CONCLUSIONES Y OBSERVACIONES:
Las notas emitidas podran pasar por un filtro que le dara un timbre caracterstico
Para emitir seales musicales mas elaboradas se tendra que haber utilizado el convertidor digital
analgico
El proyecto tiene la proyeccin de generar una gamma mas extensa de frecuencias sonoras en las
que los switchs se pueden remplazar por teclas convencionales de piano ya que la spartan cuenta
con una gran cantidad de entradas digitales.
La seal de voltaje que entrega la spartan no es suficiente como para que se emita un sonido muy
fuerte, para eso hace falta la ayuda de un amplificador que levante la seal
BIBLIOGRAFIA:
http://fisica.udea.edu.co/~labgicm/Curso%20de%20circuitos%20logicos/2013_Clase_Spartan%203E%20Introduccional%20H
ardware.pdf
http://www.utm.mx/~jvasquez/p23n.pdf
http://emagcas.webs.ull.es/index_archivos/apuntes_sed/mux2a1_tutorial.pdf
http://www.xilinx.com/support/documentation/boards_and_kits/ug230.pdf