Diseño e implementación hardware de un sintetizador digital modular de audio

Cañada Toledo, Javier Gonzalo (2017). Diseño e implementación hardware de un sintetizador digital modular de audio. Proyecto Fin de Carrera / Trabajo Fin de Grado, E.T.S.I. Industriales (UPM), Madrid.

Descripción

Título: Diseño e implementación hardware de un sintetizador digital modular de audio
Autor/es:
  • Cañada Toledo, Javier Gonzalo
Director/es:
  • Torroja Fungairiño, Yago
Tipo de Documento: Proyecto Fin de Carrera/Grado
Grado: Grado en Ingeniería en Tecnologías Industriales
Fecha: Junio 2017
Materias:
Palabras Clave Informales: Sintetizador, digital, audio, filtro, PWM, comunicación, MIDI, Arduino, AVR, FPGA, Spartan, Atmega644PA, Xilinx, Atmega
Escuela: E.T.S.I. Industriales (UPM)
Departamento: Automática, Ingeniería Eléctrica y Electrónica e Informática Industrial
Licencias Creative Commons: Reconocimiento - Sin obra derivada - No comercial

Texto completo

[img]
Vista Previa
PDF (Document Portable Format) - Se necesita un visor de ficheros PDF, como GSview, Xpdf o Adobe Acrobat Reader
Descargar (4MB) | Vista Previa

Resumen

El objetivo del presente trabajo es la implementación de un sintetizador de audio modular en un sistema compuesto por dos subsistemas: un dispositivo digital configurable tipo FPGA (Field Programable Gate Array) “Spartan 3” y un microcontrolador “ATmega644PA”. La descripción del circuito digital de la FPGA se ha implementado utilizando lenguaje VHDL mientras que el código de programa del microprocesador ha sido tratado utilizando lenguaje C++. El sistema completo se ha implementado en la placa integrada “Nonaina”, diseñada por el DAIEEI (Departamento de Automática, Ingeniería Eléctrica y Electrónica e Informática Industrial) de la ETSII, que contiene ambos dispositivos: la FPGA Spartan y el microcontrolador AVR. Esta implementación sirve actualmente como ejemplo y base práctica para la asignatura “Arquitectura de sistemas digitales”, perteneciente al Máster en Ingeniería Industrial de la ETSII (Escuela Técnica Superior de Ingenieros Industriales). El método de síntesis de audio escogido es la síntesis modular substractiva, consistente en la generación de ondas de gran riqueza en armónicos que son posteriormente filtradas mediante una o varias etapas de filtrado, normalmente tipo paso-bajo. El proceso de generación de las formas de onda escogido es el método conocido como DDS (Digital Direct Synthesis) o síntesis de tabla de ondas. Este método consiste en utilizar una tabla que contiene los valores de la amplitud de la onda buscada a lo largo de un periodo, y mediante un contador, recorrer esta tabla, obteniendo la representación digital de la onda escogida. Es un proceso sencillo, que permite fácilmente las modificaciones o ampliaciones del sistema, al sólo deberse cambiar las tablas de ondas correspondientes. Todos los procesos llevados a cabo para generar las ondas y su tratamiento se han realizado en la FPGA. Como otras características del sistema de síntesis desarrollado se puede destacar: • Posee una polifonía máxima de tres voces, es decir que permite producir tres notas diferentes al mismo tiempo. • Los generadores de onda trabajan con cuatro tipos distintos de ondas: senoidal, cuadrada, triangular y dientes de sierra. • Posee dos filtros de paso-bajo digitales de un polo. • Posee un generador de envolvente de cuatro parámetros, módulo encargado de variar la amplitud global de la onda generada por cada oscilador de una manera determinada a lo largo del tiempo. • Posee dos osciladores de baja frecuencia (LFO, Low Frequency Oscillator) que permiten modular la amplitud y la frecuencia de las ondas generadas mediante la amplitud una onda senoidal de baja frecuencia (menor que 30 Hz). Por otro lado, el sintetizador es controlado por medio de mensajes serie MIDI a través de una conexión USB con un ordenador. Para gestionar dicha comunicación MIDI se utiliza un microprocontrolador de AVR “Atmega644PA”. Otra función implementada en el sistema microprocesador es la gestión de la polifonía de las notas, es decir, la coordinación de la activación y desactivación de los generadores de onda del sintetizador. La salida de audio digital del sintetizador se debe transformar a una señal de audio analógica mediante un conversor digital-analógico (DAC, Digital to Analog Converter). El método de conversión escogido es la regulación del valor medio de una señal periódica de ciclo de trabajo variable (PWM, Pulse Width Modulation). 4.1 y 4.7 La implementación del PWM se realiza utilizando un contador de 8 bits que se incrementa a la frecuencia de reloj de la FPGA, 50 MHz. La generación de este PWM genera una componente armónica adicional en la señal de salida, a una frecuencia de 195.3 kHz. La salida del sistema pasa por un sencillo circuito de filtrado analógico, compuesto por un filtro paso-bajo y un filtro paso-alto. El filtro paso-bajo es utilizado para filtrar la componente de alta frecuencia proveniente de la generación del PWM, mientras que el filtro paso alto sirve para filtrar la componente continua de señal. Esta señal analógica puede conectarse a unos altavoces amplificados a través de una conexión hembra tipo jack de 3.5 mm, también integrada en el circuito analógico. El desarrollo del proyecto se comenzó con un análisis teórico del problema, seguido de la realización de un primer prototipo del sintetizador en una placa Arduino Duemilanove. A continuación se realizó el programa en el microprocesador y la descripción VHDL en la FPGA y por último la programación del microprocesador. La fase de pruebas del sistema se ha dividido en dos bloques principalmente: simulaciones y pruebas físicas. Las simulaciones de la implementación VHDL han sido llevadas a cabo con el programa Vivado, de Xilinx. Posteriormente, las pruebas físicas del sistema han sido realizadas utilizando un osciloscopio y unos altavoces. Con el osciloscopio se han observado y cuantificado las propiedades de las formas de onda generadas, mientras que a través de los altavoces se han realizado las pruebas de sonido del dispositivo. Los resultados obtenidos resultan en general exitosos. Respecto a la implementación VHDL, se han utilizado aproximadamente un 60% de los bloques de lógica programable disponibles en la FPGA. Cabe destacar que se han implementado algunas medidas para ahorrar recursos, como son la compartición de operadores, y el uso de un único divisor de frecuencia común para generar todas las señales de reloj necesarias. En el programa del microprocesador se han utilizado los siguientes porcentajes de memoria de la disponible en el dispositivo: un 4.1% de la memoria de programa y un 4,7% de la memoria de datos. Para implementar la descripción del circuito digital así como las simulaciones se han utilizado los programas ISE y Vivado, de Xilinx. El programa ISE ha servido para cargar las implementaciones VHDL en el dispositivo, mientras que el programa Vivado ha sido empleado para obtener las simulaciones de los módulos. El microprocesador se ha programado usando el programa AtmelStudio7, y un programador AVR Dragon. Para las pruebas iniciales se usó una placa Arduino Duemilanove, programada a través de la interfaz propia Arduino IDE.

Más información

ID de Registro: 47603
Identificador DC: http://oa.upm.es/47603/
Identificador OAI: oai:oa.upm.es:47603
Depositado por: Biblioteca ETSI Industriales
Depositado el: 29 Ago 2017 09:55
Ultima Modificación: 29 Ago 2017 09:56
  • Open Access
  • Open Access
  • Sherpa-Romeo
    Compruebe si la revista anglosajona en la que ha publicado un artículo permite también su publicación en abierto.
  • Dulcinea
    Compruebe si la revista española en la que ha publicado un artículo permite también su publicación en abierto.
  • Recolecta
  • e-ciencia
  • Observatorio I+D+i UPM
  • OpenCourseWare UPM