Consola de audio digital con DSPB56371 y MCF51JM128

Página 1 de 33 FCEFyN Universidad Nacional de Cordoba Consola de audio digital con DSPB56371 y MCF51JM128 Consola de audio digital con DSPB56371 y M

12 downloads 88 Views 3MB Size

Recommend Stories


UNIDAD 1 TRATAMIENTO DE AUDIO DIGITAL
TRATAMIENTO DE AUDIO DIGITAL UNIDAD 1 TRATAMIENTO DE AUDIO DIGITAL - Formatos de audio digital. MP3. Fundamentos. Redes P2P. Clientes de intercambio

COMPRESIÓN DIGITAL DE AUDIO. Conceptos básicos
COMPRESIÓN DIGITAL DE AUDIO Conceptos básicos RAZÓN PARA • PARA AHORRAR: espacio dinero COMPRIMIR: RAZÓN PARA • PARA AHORRAR: espacio dinero COMPR

Story Transcript

Página 1 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

Consola de audio digital con DSPB56371 y MCF51JM128 Por Ing. Manuel José Peirone Ing. Gustavo Parlanti

Ing. Rodrigo Germán Molina Laboratorio de DSP Facultad de Ciencias Exactas, Físicas y Naturales Universidad Nacional De Córdoba

1

Introducción

El sistema presentado en esta nota de aplicación es una consola de audio digital. La

Contenido 1

Introducción

2

Perspectiva general del equipo

3

Etapa de procesamiento de audio

3.1 Efectos de audio

misma está basada en un DSPB56371 [1], [2]

3.2 Ruteo programable

integrado en el kit de desarrollo SoundBite [3]

3.3 Ecualización y filtrado

Esta consola, conforme con la estructura

3.4 Ajuste del ecualizador

planteada, permite procesar hasta 8 señales de

3.5 Ajuste de volumen

audio en tiempo real (agrupadas en 4 canales

3.6 Control de efectos

estereo llamados J1, J3, J5 y J7). Además

4

dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración del equipo se emplea un microcontrolador MCF51JM128 [4] (integrado en el kit DEMOJM [5]), el cual

Etapa de control y configuración

4.1 Microcontrolador MCF51JM128 4.2 Controlador del display 4.3. Pantalla LCD 4.4 Touchscreen 4.5 Controlador del touchscreen

comanda una pantalla LCD sensible al tacto.

5

El DSP se vincula con el microcontrolador a

5.1 Interfase A: DSPB56371  MCF51JM128

través de una interfase de datos diseñada

5.2 Interfase B: MCF51JM128  Controlador

específicamente para esta aplicación (ver sección 5.1).

Interfases

del display 2

5.3 Interfase I S: DSP  Codecs 6

Referencias

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 2 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

Como ya se mencionó, el núcleo del kit SoundBite es el DSPB56371 cuya arquitectura interna es de 24 bits. Su núcleo, perteneciente a la familia 56300 [6], está adaptado para trabajar específicamente con señales de audio en tiempo real ya que incorpora periféricos diseñados con este propósito (DAX, EFCOP, ESAI, etc.). Para la conversión A/D y D/A se utilizan 4 codecs de audio; 3 AK4556 [7] y 1 AK4584 [8]. Este kit permite la programación y debugging del DSP mediante una PC a través de una unidad JTAG (por USB). De esta manera, se puede depurar el código en tiempo real utilizando el entorno de desarrollo Symphony Studio 1.0.0 [9] de Eclipse Project.

Por otra parte, el microcontrolador MCF51JM128 pertenece a la familia Flexis. Integra un núcleo Coldfire de 32 bits, en conjunto con una memoria Flash de 128KB y RAM de 16KB [4]. Al igual que el kit Soundbite, el DEMOJM permite el debugging de todo el código en tiempo real utilizando una interfase con la PC a través de un puerto USB. El entorno de programación utilizado fue Freescale Codewarrior 5.9.0 utilizando el lenguaje C.

Esta nota de aplicación se centra en el hardware del equipo. Quien tenga interés sobre la implementación en software de algoritmos de procesamiento digital puede recurrir a la referencia bibliográfica [10], [11], [12], [13] y [14].

2

Perspectiva general del equipo

La función del equipo es procesar varias señales de audio en tiempo real aplicando efectos, variando la ecualización de cada canal estereo, etc. En esta consola se cuenta con 8 señales de entrada analógicas agrupadas en 4 canales estereo J1, J3, J5 y J7) (son las que ofrece el kit SoundBite [3]). Asimismo, posee 8 salidas de audio, también agrupadas en 4 canales estereo J2, J4, J6 y J8. De esta manera, se tiene la posibilidad de rutear a cada salida sólo las entradas que se deseen.

El sistema está dividido en 4 partes fundamentales (Figura 1):

1. Etapa de control 2. Fuente de alimentación y controlador del touchscreen 3. Etapa de procesamiento de audio

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 3 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

4. Display LCD con touchscreen

Figura 1. Vista general del sistema

La Figura 2 resume en un diagrama en bloques la estructura de esta aplicación, donde las etapas más destacadas son: la etapa de procesamiento de audio y la etapa de control. La primera está centrada en el DSPB56371 y los codecs, mientras que la segunda agrupa el microcontrolador, el controlador del display, la pantalla táctil LCD y el controlador del touchscreen, los cuales se irán describiendo a lo largo del texto.

Figura 2. Estructura del equipo Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 4 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

Para vincular cada etapa se utilizan diferentes interfases de datos. Para comunicar el DSP con el microcontrolador se utiliza la interfase A (sección 5.1) que, como se dijo anteriormente, fue especificadamente diseñada para esta aplicación. Luego, para transferir datos entre el microcontrolador y el controlador del display se hace uso de la interfase B (sección 5.2) compuesta por 17 bits de dirección (es necesario mapear una memoria de 80KB), 6 bits de control y 8 bits de datos. La interfase gráfica de usuario (GUI) presentada en el display LCD tiene una apariencia como la que se muestra en la Figura 3. Con el objeto de simplificar la utilización del equipo, el mismo se divide en los cuatro bloques indicados.

Figura 3. Apariencia del menú

3

Etapa de procesamiento de audio

Como ya se comentó, el corazón del equipo es el DSPB56371, el cual se encargará de procesar todas las muestras de audio provenientes de los conversores A/D, para devolverlas una vez procesadas a los conversores D/A (integrados en los codecs; [7], [8]). La secuencia en que los distintos algoritmos son aplicados sobre cada canal estereo de entrada se muestra en la Figura 4.

El DSP fue programado en assembler. Si bien el entorno de Symphony Studio también incorpora un compilador de C, se optó por utilizar aquel otro lenguaje, el cual a pesar de ser más rudimentario permite aprovechar mejor las características que ofrece el hardware del DSP. En otros términos, la velocidad de ejecución de las rutinas en assembler es sensiblemente mayor que en C ya que sobre el primero el programador tiene un control absoluto sobre las tareas que ejecuta el core del DSP.

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 5 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

Los conversores A/D de los codecs son de tipo delta-sigma. Generan muestras de 24 bits a una frecuencia de 48KHz (aunque es posible programar el AK4584 para alcanzar hasta 96KHz y el AK4556 hasta 192KHz). De forma análoga, los D/A reciben desde el DSP muestras, también de 24 bits, a la misma frecuencia. La transferencia de estas muestras entre el DSP y los codecs se realiza utilizando una interfase conocida como I2S desarrollada por Phillips, la cual se describe en la sección 5.3.

Figura 4. Esquema de procesamiento de los canales de audio

3.1 Efectos de audio Si bien el DSP utilizado permite implementar prácticamente cualquier efecto de audio, en esta aplicación se optó por los siguientes:

Distorsión overdrive. Consiste en realizar un recorte simétrico o saturación de la señal de entrada (tal como se ejemplifica en la Figura 5 para una onda senoidal pura). Lógicamente el valor de la constante a es variable de acuerdo al nivel de distorsión deseado.

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 6 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

Figura 5. Distorsión overdrive

La definición matemática de este efecto sería:  x(t ) si x(t) ≤ a y (t ) =  a si x(t) > a

Ec. 3.1

Implementación de la distorsión overdrive. La rutina de este efecto recibe como parámetro el nivel de corte o umbral de saturación. Como el corte es simétrico, el umbral negativo será igual (en módulo) al umbral positivo. move brclr

X:CANALES_DIST,X0 #0,X0,NO_SATURAR_J1_IZQ

move move cmp ble

X:MUESTRA_IZQ_J1,A Y:UMBRAL_DIST_J1,X0 X0,A NO_SATURAR_SUP_IZQ_J1

move move

Y:UMBRAL_DIST_J1,A A,X:MUESTRA_IZQ_J1

NO_SATURAR_SUP_IZQ_J1 move #$800000,Y0 mpy X0,Y0,A move move cmp

A,X0 X:MUESTRA_IZQ_J1,A X0,A

bge

NO_SATURAR_J1_IZQ

move

X0,X:MUESTRA_IZQ_J1

; Si esta bandera no está seteada no se ; aplica distorsión al canal. ; Saturación aplicada al canal derecho de J1 ; Umbral de saturación. ; Si la señal de entrada es menor que el ; umbral de saturación pasa limpia. ; Valor del recorte de la saturación.

; Se carga el valor (-1) en Y0. ; Se multiplica X0 por Y0 para cambiarle el ; signo al umbral de saturación. ; Se salva el contenido de A. ; Se trae la muestra de audio al acumulador. ; Se compara el umbral de saturación con el ; la muestra de audio. ; Si la muestra de audio es mayor no se ; satura, caso contrario, en la siguiente ; instrucción se fija el valor máximo de la ; señal al valor de la saturación.

NO_SATURAR_J1_IZQ

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 7 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

Figura 6. Diagrama de flujo de la rutina de distorsión overdrive

Distorsión fuzz. La distorsión fuzz es uno de los efectos más difundidos y populares entre los guitarristas. Su sutileza y cuerpo lo ponen entre uno de los más utilizados independientemente del estilo musical, aunque es imposible describir el sonido de una distorsión sin escucharlo personalmente.

Figura 7. Resultado del efecto fuzz

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 8 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

Este efecto se basa en la generación de armónicos, para lo cual se emplean diferentes técnicas. Se diferencia de la distorsión overdrive en que la agresividad o amplitud de estos armónicos es menor, con lo que el efecto resultante es más sutil. Para lograrlo digitalmente se realiza una multiplicación de la señal por si misma un número n de veces, donde n depende de la cantidad de armónicos que se quieran generar. Esto quedará más claro con un ejemplo práctico. Se supone el siguiente tono senoidal: x(t ) = cos(ωt )

Ec. 3.2

Si ahora este tono es multiplicado por si mismo se obtiene el siguiente resultado:

y1 (t ) = (cos(ωt ) )2 =

1 + cos(2ωt ) 2

Ec. 3.3

que es el armónico de segundo orden más una componente de continua. Realizando una nueva multiplicación resulta:

y2 (t ) = (cos(ωt ) )3 =

3. cos(ωt ) cos(3ωt ) + 4 4

Ec. 3.4

donde se obtiene la componente fundamental sumada al 3er armónico. En este caso no hay componente de continua y tampoco habrá para los casos en que la multiplicación se realice un número impar de veces. En la Figura 7 se muestra gráficamente lo representado por las ecuaciones 3.2, 3.3 y 3.4 en el tiempo y en la frecuencia. Se agrega el caso de la señal y 3 (t ) que corresponde a 15 multiplicaciones de la señal por sí misma.

Implementación de la distorsión fuzz. La lógica de procesamiento empleada para este efecto se basa en una multiplicación reiterada de la muestra de entrada por sí misma. Esto se realiza mediante un bucle por hardware, tal como se observa en el siguiente bloque de código fuente.

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 9 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

Figura 8. Diagrama de flujo de la rutina de distorsión fuzz move brclr

X:CANALES_FUZZ,X0 #0,X0,NO_FUZZ_J1_IZQ

move

X:CANAL_FUZZ_J1_IZQ,X0

move move

X0,Y0 X:REPETIR,N

do mpy move

N,Loop X0,Y0,A A,X0

; N multiplicaciones de la muestra por sí misma.

move

X0,X:CANAL_FUZZ

; Se almacena la muestra ya procesada.

; Si esta bandera no está seteada no se ; aplica fuzz al canal. ; El registro X:CANAL_FUZZ contiene la ; muestra de audio a procesar. El mismo fue ; cargado fuera de esta rutina.

; Se genera un bucle por hardware que se repetirá N ; veces. El valor de N depende del grado de ; distorsión que se quiera aplicar y fue ; previamente configurado por el usuario.

Loop

NO_FUZZ_J1_IZQ

Trémolo. Este efecto se caracteriza por pequeñas variaciones en la intensidad de la señal de audio. Para su implementación se requiere modular la amplitud de la señal utilizando un LFO (low frequency oscilator, es decir, oscilador de baja frecuencia). La implementación práctica se expone en la Figura 9, de donde se deduce que:

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 10 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128 ym (t ) = x(t ).m(t )

Ec. 3.5

m(t ) = co + a. cos(ωot )

Ec. 3.6

donde:

(a)

(b)

Figura 9. Implementación del trémolo (a); Señal del LFO (b)

El valor co determina el punto donde se centrará la moduladora cosenoidal, mientras que el parámetro a determina su amplitud y por ende la profundidad de la modulación. La frecuencia ω0 varía típicamente entre 1 y 10Hz. El parámetro a y la frecuencia son configurables a través de la pantalla táctil.

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 11 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

Figura 10. Diagrama de flujo de la rutina del trémolo

Implementación del trémolo. Para la generación de este efecto se utiliza una señal senoidal almacenada en un vector dentro de la memoria del DSP, la cual permite modular la amplitud de la señal de entrada. El proceso consiste en ir cambiando cada cierto tiempo (acorde con la frecuencia del trémolo) el valor de la señal senoidal para luego multiplicarlo por el valor de la señal de audio de entrada. move brclr

X:CANAL_TREMOLO,X0 #15,X0,NO_TREMOLO

; Si este bit no está seteado significa que no se ; debe aplicar trémolo.

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 12 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128 move

X:TREMOLO_J1,A

add move

#1,A A,X:TREMOLO_J1

; En este registro (existe uno para cada canal) se ; lleva la cuenta del tiempo que pasó desde la ; última vez que se cambió el valor de la señal ; senoidal. ; En el siguiente bloque ‘IF’ se pregunta si se ; alcanzó el momento de cambiar el factor de la ; señal senoidal.

.if A X:LIMITE_TREM_J1 THEN

move move move add

; Si la cuenta completó en que permanece ; aplicada la misma muestra de la senoidal, ; entonces se ingresa al bloque IF.

beq move bra

#0,X0 X0,X:TREMOLO_J1 ; Se reinicia el contador. X:PUNTERO_SENO_TREM,A ; Puntero a la próxima ganancia a aplicar. #1,A ; Se apunta a la próxima muestra de la ; senoidal. #$000010,A ; Se pregunta si se llegó al final del ; vector que contiene las muestras de la ; senoidal. De ser así se resetea. RESET_TREM_J1 A,X:PUNTERO_SENO_TREM ; Se memoriza el nuevo valor del puntero. CONT_TREM_J1

move move

X0,X:PUNTERO_SENO_TREM X0,A

move add

#SENO_TREMOLO,X0 X0,A

move move move

A,R0 X:(R0),X0 X0,X:GAN_TREM_J1

cmp

RESET_TREM_J1 ; Reset del puntero.

CONT_TREM_J1 ; Dirección base de la senoidal. ; Se calcula la dirección de la próxima ; ganancia a aplicar. ; R0 apunta a la siguiente ganancia. ; Se carga en X0 la nueva ganancia.

.endi move move move

X:GAN_TREM_J1,X0 X:CANAL_TREMOLO,R0 X:(R0),Y0

mpy move

X0,Y0,A A,X:(R0)

move mpy move

X:(R0+1),Y0 X0,Y0,A A,X:(R0+1)

; Se carga en X0 la nueva ganancia. ; Dirección del canal a aplicar trémolo. ; Se carga la muestra de audio del canal izquierdo ; en Y0. ; Se aplica la ganancia. ; Se retorna la muestra del canal izq. con trémolo. ; Muestra de audio del canal derecho. ; Se aplica la ganancia. ; Muestra del canal derecho con trémolo ./

NO_TREMOLO

Delay. Este efecto se basa en la generación de una réplica retrasada de la señal original (Figura 11). Dependiendo de la distancia temporal (Tdelay) entre el sonido original y la réplica el oído percibirá diferentes sensaciones.

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 13 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

Figura 11. Delay aplicado a una señal de audio

Para retardos mayores a los 100mS se escucha un eco, mientras que para retardos menores los efectos son muy variados de acuerdo al delay elegido. Lógicamente, la salida es la superposición de xa(t) con xb(t). Para la implementación digital se utiliza el sistema de la Figura 12. El parámetro a es generalmente menor a 1 ya que tiene como función simular las características acústicas de la sala donde se produce el eco (habrá atenuación por dispersión del sonido y por disipación de energía en el medio).

Figura 12. Estructura del delay digital

Implementación del delay. El DSPB56371 posee tres bloques de memoria interna diferentes: •

Memoria de programa (4K x 24)



Memoria de datos X (36K x 24)



Memoria de datos Y (48K x 24)

Cada memoria posee su propio bus de datos, lo cual permite la paralelización de muchas operaciones. El mapa de memoria de la Figura 13 muestra con qué propósito ha sido asignado cada bloque de memoria interna. En esta aplicación el bloque de memoria RAM X funciona como “almacén” de todas las muestras

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 14 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

relacionadas con los canales izquierdos, mientras que el bloque de memoria RAM Y contiene las muestras vinculadas al canal derecho.

Figura 13. Asignación de memoria

La implementación de un delay consiste fundamentalmente en la generación de un retardo temporal (Figura 11). Esto implica almacenar en memoria muestras de audio pasadas e ir reinsertándolas a la salida (Figura 12). El mapa de memoria de la Figura 13 muestra en qué región de memoria se almacenan estas muestras pasadas para el delay.

El intervalo de memoria reservado para almacenar las muestras retardadas comprende las direcciones $0C300 - $012000. Así, se dispone de casi 24000 registros para el canal izquierdo y la misma cantidad para el canal derecho. El máximo retardo que se puede generar muestreando a 48KHz es de medio segundo, dado que se almacenarán, como máximo, la mitad de las muestras tomadas por cada segundo.

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 15 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

Debido a la limitación en la cantidad de memoria interna disponible, este efecto puede ser aplicado a un solo canal estereo a la vez.

El código ejecutable listado a continuación se utiliza para generar el retardo temporal aplicado sobre el canal izquierdo. ECO_IZQ move brclr

X:CANAL_ECO,X0 #15,X0,NO_ECO_IZQ

move

X:CANAL_ECO,R5

move

X:DIRECCION_ECO,R6

move move move

X:(R6),X0 X:(R5),Y0 Y0,A

maci move move

#$400000,X0,A A,X:(R5) Y0,X:(R6)

move

(R6)+N6

; Dirección del canal al que se le aplicará delay. ; Esta variable se carga cuando el usuario ; configura el efecto. ; Esta variable contiene la dirección de memoria ; donde se encuentra la próxima muestra a insertar ; en la salida. ; Se carga en X0 la muestra retardada. ; Muestra de audio actual. ; Se copia la muestra actual al acumulador para ; sumarle la muestra pasada ponderada por una ; cierta ganancia “a” menor que uno. ; Ponderación de la muestra pasada por “a = 0.5”. ; Muestra final con delay. ; Se almacena la entrada actual en memoria para el ; próximo delay. ; Se incrementa el puntero a la siguiente muestra ; almacenada en memoria (para la próxima ; intervención de este algoritmo).

.if R6 X:TIEMPO_ECO then

move

; Si este bit no está seteado significa que no se ; de debe aplicar delay.

#>$C304,R6

; Este bloque IF tiene como función detectar ; si se alcanzó el final de la memoria ; reservada para las muestras. De ser así se ; reinicia el puntero. ; Se reinicia el puntero cargando la ; dirección base.

.endi move

R6,X:DIRECCION_ECO

; Se salva el puntero a las muestras pasadas.

NO_ECO_IZQ

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 16 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

Figura 14. Diagrama de flujo de la rutina que genera el delay

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 17 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

Reverberación. Físicamente, la reverberación es un fenómeno acústico natural que se produce en recintos más o menos cerrados por el cual a la señal original se le van superponiendo las diferentes ondas reflejadas en las paredes del recinto con un retardo o “delay” no mayor a 50mS generado por la distancia entre la fuente de sonido original y las paredes del recinto. Para implementar una reverb digital existe una gran cantidad de estructuras diferentes. En esta aplicación se optó por la que se muestra en la Figura 15. Aquí también el parámetro a es siempre menor que la unidad. Como el sistema está realimentado, se produce una respuesta al impulso infinita (en la práctica, la misma es audible hasta que el sonido generado cae por debajo del umbral de audición).

Figura 15. Estructura del reverberador digital

Implementación de la reverb. Observando la Figura 15 se deduce que para la implementación de esta estructura es necesario aplicar un único retardo digital. Esto conduce a un algoritmo similar al empleado con el delay. Las diferencias residen en que la estructura de la reverb requiere una realimentación y mayor cantidad de factores de escala. Todo esto se resume en el siguiente fragmento de código. REVERB_IZQ move brclr

X:CANAL_REVERB,X0 #15,X0,NO_REVERB_IZQ

; Si este bit no está seteado significa que no se ; de debe aplicar reverb.

move

X:CANAL_REVERB,R5

; Dirección del canal al que se le aplicará reverb. ; Esta variable se carga cuando el usuario ; configura el efecto.

move

X:DIRECCION_REVERB,R6 ; Esta variable contiene la dirección de memoria ; de la muestra almacenada.

move

X:(R6),X0

; Se carga en X0 la muestra retardada.

move move maci

X:(R5),Y0 Y0,A #$400000,X0,A

; Muestra de audio actual. ; Ponderación de la muestra pasada “a = 0.5”.

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 18 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128 move mpy

A,X0 #$600000,X0,A

move mpy add

A,X1 #$C00000,Y0,A X1,A

move

A,X:(R5)

move move

A,X:(R6) (R6)+N6

; Ponderación de la muestra pasada ; Coeficiente “1 – a2 = 0.75”. ; Resultado temporal. ; Se multiplica la muestra de entrada por “-a”. ; Se suma la muestra de entrada ponderada al ; resultado de la cámara de reverb. ; Muestra con reverb. ; Se lleva el resultado a memoria. ; Se incrementa el puntero a la siguiente muestra ; almacenada en memoria (para la próxima ; intervención de este algoritmo).

.if R6 X:TIEMPO_REVERB then

move

#>4,R6

; Este bloque IF tiene como función detectar ; si se alcanzó el final de la memoria ; reservada para las muestras. De ser así se ; reinicia el puntero. ; Se reinicia el puntero cargando la ; dirección base.

.endi move

R6,X:DIRECCION_REVERB ; Se salva el puntero a las muestras pasadas.

NO_REVERB_IZQ

Dado que la rutina de la reverberación es en esencia idéntica a la empleada para generar el delay (el manejo de memoria es idéntico, solo cambia el modelo matemático), no se incorpora el diagrama de flujo.

Crossover. Un crossover no puede incluirse en el mismo grupo que los efectos recientemente descriptos ya que el mismo no consiste en un artificio generado sobre la señal procesada, sino en un sistema capaz de separar frecuencias, es decir, dividir el espectro. En el caso de un crossover de 2 vías, como el implementado en esta aplicación, el objetivo es filtrar una porción del espectro de la señal de entrada (mediante un filtro pasabajo IIR de 2do orden) y rutearlo hacia un canal estereo A, mientras que el resto del espectro se rutea a un canal estereo B (luego de pasar por un filtro IIR pasaalto de 2do orden). La frecuencia de separación elegida en este caso es de 100Hz.

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 19 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

Figura 16. Estructura del crossover

Implementación del crossover. Como el crossover consiste en dos filtros (por canal mono) trabajando en forma paralela, se deja la exposición del código fuente para la sección 3.3 (Ecualización y filtrado).

3.2 Ruteo programable Una de las ventajas de utilizar varios canales de salida es que se puede realizar en cada uno una mezcla diferente de las señales de entrada. En esta aplicación esto se puede lograr seleccionando en el display (bloque de ruteo de canales, Figura 17) los canales de entrada que se rutearán a cada salida. La implementación de esta parte del menú consiste en una matriz donde las columnas son los canales de salida y las filas los de entrada. Así, los canales de entrada que estén seleccionados en cada columna serán ruteados a la salida que le corresponde.

Figura 17. Configuración del ruteo de canales

3.3 Ecualización y filtrado

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 20 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

El proceso de ecualización consiste en atenuar o enfatizar distintas frecuencias del espectro audible, con el objeto de mejorar la calidad de una pieza musical, evitar realimentación acústica, etc. En esta aplicación se utiliza un ecualizador de 5 bandas en cada canal de entrada estereo. El mismo se implementa colocando 5 filtros en paralelo para cada canal mono (Figura 18), por lo que resulta un total de 10 filtros para cada canal estéreo. Se seleccionan las frecuencias de corte (Tabla 1) de manera tal que no queden “huecos” en el espectro cuando se selecciona una ecualización plana (sin enfatizar o atenuar ninguna frecuencia en particular).

Figura 18. Arquitectura del ecualizador implementado para cada canal mono

La salida del ecualizador se compone de una suma ponderada del resultado de cada filtro individual, tal como lo expresa la siguiente ecuación: y[n] = y1[n].G1 + y2 [n].G2 + y3[n].G3 + y4 [n].G4 + y5[n].G5

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Ec. 3.7

Página 21 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

Tabla 1. Frecuencias de corte de los filtros empleados en el ecualizador

Filtro

Corte de baja frecuencia

Corte de alta frecuencia

1

100Hz

-

2

100Hz

500Hz

3

500Hz

2000Hz

4

2000Hz

8000Hz

5

8000Hz

-

Cada filtro es IIR de segundo orden y se implementa utilizando una topología directa tipo I (Figura 19), ya que es la que presenta mejor performance para aplicaciones de audio. La justificación de esta afirmación se puede encontrar en [13], [14].

Figura 19. Estructura empleada para los filtros implementados

La salida de cada filtro se define mediante la siguiente ecuación en diferencias, donde se pone de manifiesto la realimentación de las salidas presentes y pasadas: y[n] = x[n].b0 + x[n − 1].b1 + x[ n − 2].b2 − a1. y[n − 1] − a2 . y[n − 2]

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Ec. 3.8

Página 22 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

Figura 20. Diagrama de flujo de la rutina de filtrado.

Implementación del ecualizador. Ya que cada ecualizador está compuesto por 5 filtros de 2do orden, solo se mostrará el código correspondiente a un filtro individual. El primer paso que ejecuta el algoritmo consiste en ajustar los registros de dirección para que apunten a los coeficientes del filtro y a las muestras de audio almacenadas en memoria. El siguiente paso es llamar a la subrutina “FILTRO_2DO_ORDEN”, la cual se encarga de calcular el resultado de la ecuación 3.8. Finalmente, se almacenan las muestras de audio en memoria para la próxima intervención del filtro. Las siguientes rutinas se encargan de ejecutar estas acciones. FILTRO1_IZQ_J1 move #F1_IN_IZQ_J1,R0

move

#F1_OUT_IZQ_J1,R1

move

#COEF_B1,R4

; Puntero a las muestras pasadas x[n – i]. Se ; emplean los registros de dirección R0 y R1 ya que ; las muestras pasadas se alojan en la memoria X. ; De esta manera se puede aprovechar la ; arquitectura en paralelo del DSP. ; Puntero a las muestras pasadas de la salida ; y[n – i]. ; Puntero a los coeficientes del numerador. Se usan ; los registros de dirección R4 y R5 ya que los ; coeficientes se alojan en la memoria Y.

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 23 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128 move

#COEF_A1,R5

; Puntero a los coeficientes del denominador.

move jsr

X:MUESTRA_IZQ_J1,X0 FILTRO_2DO_ORDEN

; Se carga en X0 la muestra de entrada. ; Se llama a la subrutina de filtrado.

; Almacenamiento en memoria de las muestras para la próxima intervención del filtro. move X:F1_IN_IZQ_J1,X0 ; Se rotan en memoria las muestras pasadas de move X0,X:(F1_IN_IZQ_J1+1) ; entrada. move move move

X:F1_OUT_IZQ_J1,X0 ; Se acomodan las muestras de salida pasadas. X0,X:(F1_OUT_IZQ_J1+1) A,X:F1_OUT_IZQ_J1 ; El acumulador contiene el resultado del último ; proceso de filtrado.

La subrutina de filtrado es la siguiente: ;------------------------------------;---- FILTRO IIR DE SEGUNDO ORDEN ---;------------------------------------FILTRO_2DO_ORDEN ; X0 contiene la muestra de entrada actual al filtro. ; En el acumulador A se devuelve la muestra filtrada. clr move

A Y:(R4)+,Y0

; Y0 = b0 ./

; Convolución de las muestras de entrada con los coeficientes del filtro. rep #2 ; Número de repeticiones = Orden del filtro. macr

X0,Y0,A

X:(R0)+,X0

Y:(R4)+,Y0

macr

X0,Y0,A

X:(R1)+,X0

Y:(R5)+,Y0

; Convolución de las muestras de salida con los coeficientes del filtro. rep #2 macr

X0,Y0,A

X:(R1)+,X0

Y:(R5)+,Y0

rts

Las instrucciones de multiplicación, acumulación y redondeo (macr) se encargan de realizar el proceso de filtrado empleando dos propiedades fundamentales del DSP: Paralelismo y direccionamiento. Cada una de estas líneas realiza tres operaciones:

1. Multiplica el contenido de X0 por el de Y0 y lo acumula en A. 2. Copia el contenido del registro de memoria X apuntado por R0 o R1 a X0 y luego incrementa R0 o R1 (este proceso se conoce como postincremento, ya que se realiza después del movimiento de datos).

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 24 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

3. Copia el contenido del registro de memoria Y apuntado por R4 o R5 a Y0 y luego incrementa R4 o R5. El modo de redondeo dependerá del estado de los bits S0 y S1 del Status Register. Se pueden implementar dos redondeos diferentes: redondeo convergente o redondeo por complemento a 2. Por defecto se emplea el primero. Los detalles se pueden encontrar en la página 3-7 del “DSP56300 Family Manual” [6]. Quien se encuentre interesado en conocer la metodología de diseño de filtros digitales IIR puede recurrir a la nota de aplicación “Implementing a 10-Band Stereo Equalizer on the DSP56311EVM Board” [10].

3.4 Ajuste del ecualizador Para modificar la configuración del ecualizador se recurre al bloque del ecualizador gráfico representado en el display LCD (Figura 3). Ahí mismo se modifica mediante el tacto la posición de la barra que corresponde a la banda de frecuencias que se quiere atenuar o enfatizar.

3.5 Ajustes de volumen Cada canal de entrada y salida estereo posee su propio control de volumen o fader con el cual es posible ajustar su nivel individualmente. Cuando se marca un canal en el bloque de ruteo de canales (Figura 21) entonces el fader “Vol. IN” actúa sobre el canal de entrada seleccionado, mientras que el fader “Vol. OUT” controla el nivel del canal correspondiente a la columna seleccionada.

Figura 21. Controles de volumen

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 25 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

3.6 Control de los efectos Los efectos implementados fueron descriptos en la sección 3.1. Para la configuración de cada uno es necesario seleccionarlo en el bloque de procesamiento de audio para luego seleccionar los canales a los que afectará cada efecto. Además es posible configurar los diferentes parámetros característicos del efecto. La Figura 22.Figura 22 muestra el menú de opciones, en este caso para la reverb (que se está aplicando sobre el canal J5) y la distorsión overdrive (que actúa sobre los canales J3 y J5).

Figura 22. Entorno de configuración de los efectos

4

Etapa de control y configuración

Todo sistema que debe interactuar con un usuario requiere de alguna interfase. En este caso se optó por un panel sensible al tacto, el cual permite ingreso de la información en conjunto con una pantalla LCD para la representación de la información. El control de ambos elementos es realizado utilizando el MCF51JM128, el cual, con sus 128KB de memoria flash provee una generosa capacidad para almacenar las imágenes a representar en el display.

4.1 Microcontrolador MCF51JM128 Las características que distinguen a este microcontrolador son las siguientes (se resaltan las que resultan más importantes en esta aplicación):



Núcleo V1 ColdFire de 32 bits. Aporta una importante capacidad de procesamiento, permitiendo la ejecución optimizada de rutinas en lenguaje C.



128 KBytes de memoria Flash. Como ya se mencionó, permite almacenar las imágenes a generar en el display.



16 KBytes de memoria RAM

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 26 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128



Interfase USB



Conversor A/D de 12 bits



2 interfases SPI



51 puertos de entrada/salida (GPIO). Permite la vinculación del microcontrolador con todos los elementos externos (controlador del touchscreen y display, DSP, etc.)

4.2 Controlador del display Contrariamente a otros casos, el display utilizado no posee un controlador integrado. Esto implica que no se pueden representar imágenes vinculando directamente el microcontrolador con el display y escribiendo en una memoria de video. Previamente es necesario generar todas las señales de barrido y sincronismo externamente, lo cual supondría una carga y complejidad innecesaria para el MCF51JM128. Como solución a este problema, el fabricante del display provee una placa externa, denominada controlador del display en esta aplicación, cuyo núcleo está basado en un microprocesador EPSON SED13705 el cual posee una memoria de video interna donde se escribe la imagen a representar. Luego es este controlador quien se encarga de generar las señales necesarias para el control del display.

El microcontrolador se comunica con el controlador del display a través de la interfase B, que será descrita en la sección 5.2.

4.3. Pantalla LCD Es un display de cristal líquido pasivo iluminado por una lámpara de cátodo frío (CCFL, cold cathode flourescent lamp) alimentada por una tensión alterna de 500V, la cual es provista por un inversor que la genera a partir de 5V de continua. Posee una resolución de 320 x 240 píxeles y un tamaño (en diagonal) de 5,6”.

4.4. Touchscreen El touchscreen empleado utiliza una tecnología de tipo resistiva. Se basa en el contacto por presión de dos láminas separadas por un material aislante (Figura 23). En el mercado existen dos grandes grupos de touchscreen resistivos: de 4 terminales y de 8 terminales. En esta aplicación se emplea el primero.

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 27 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

Medición de la coordenada X. Cuando el usuario presiona sobre algún punto de la pantalla la lámina semiconductora superior (previamente polarizada con una tensión) hace contacto con la lámina semiconductora inferior, generando un divisor resistivo (Figura 24) en la lámina superior que transfiere su potencial a la lámina inferior, pudiendo medirse en los extremos de la misma. Esta tensión es proporcional a la posición del punto de presión en la coordenada X.

Medición de la coordenada Y. El mecanismo para esta coordenada es idéntico al utilizado la anterior. La única diferencia yace en que la tensión de polarización se aplica en la membrana inferior y la tensión se mide a bornes de la membrana superior.

Figura 23. Tecnología del touchscreen empleado

Figura 24. Divisor resistivo equivalente

El encargado de ejecutar este proceso de lectura es el MCF51JM128 a través del controlador del touchscreen, el cual se describe en la siguiente sección.

Ahora bien, como ocurre en todo dispositivo electromecánico, en el instante en que se ejerce presión aparecen ciertos fenómenos indeseados, siendo el más significativo en esta aplicación el rebase y oscilación de la tensión a bornes de la membrana donde se está sensando (Figura 25). Desde un punto de vista mecánico, estos efectos son consecuencias de la oscilación de la membrana en el momento en que se aplica la presión. Luego, desde un punto de vista eléctrico, la demora en el establecimiento de la tensión de salida se debe a las capacidades (las membranas forman un capacitor) e inductancias distribuidas en el circuito. Para subsanar este inconveniente se aplica un retardo entre el momento en que se aplica la tensión en una membrana y el momento en que se realiza la lectura de la tensión en la otra.

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 28 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

Figura 25. Establecimiento de la tensión a bornes de la membrana

4.5 Controlador del touchscreen La función de este controlador es determinar la coordenada del punto de presión sobre la pantalla basándose en el principio de funcionamiento expuesto en la sección anterior. En esta aplicación se optó por la utilización de un controlador construido con componentes discretos (Figura 26). Sin embargo, es posible conseguir controladores integrados donde lo único que hay que hacer es conectar los cuatro terminales del touchscreen para así obtener los datos ya digitalizados a través de una interfase (como por ejemplo SPI).

Figura 26. Controlador del touchscreen

En total se emplean 4 puertos del microcontrolador, dos de ellos digitales como salidas y otros dos analógicos. Los primeros se encargan de conmutar la tensión de polarización entre la membrana X y la membrana Y utilizando 4 transistores (en configuración puente H). En cambio, los pines analógicos

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 29 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

tienen como propósito leer la tensión entregada por el touchscreen para determinar, mediante software, la coordenada del punto de presión (X, Y).

5

Interfases

Como esta es una aplicación de audio digital es trivial suponer que se empleará un DSP. En un primer momento se podría suponer que con este único procesador sería suficiente para controlar la consola completa. Sin embargo, cuando se comienzan a analizar los requerimientos de los otros componentes (controlador del display y touchscreen, etc.) se llega a la conclusión de que no se disponen de suficientes puertos GPIO en el DSP para esta tarea. Es por ello que se opta por utilizar un microcontrolador como el MCF51JM128, cuyas bondades han sido mencionadas en secciones anteriores. Esto lleva a la necesidad de vincular el DSP con el microcontrolador, y este último con el resto de los elementos. Para ello se utilizan diferentes interfases de datos, las cuales serán descriptas en las secciones subsecuentes.

La aplicación se puede dividir en tres grandes bloques, los cuales se deben comunicar mediante dos interfases: •

DSPB56371. Se encarga de procesar todas las señales de audio. Se debe comunicar con los codecs mediante una interfase pertinente.



MCF51JM128. Controla la información que se representa en el display y recibe la información desde el touchscreen. Además es el encargado de informar al DSP sobre las decisiones de configuración adoptadas por el usuario (a través de la interfase A, Figura 2).



Controlador del display. Se comunica con el microcontrolador a través de la interfase B.

5.1 Interfase A: DSPB56371  MCF51JM128 La comunicación entre el DSPB56371 y el MCF51JM128 (Figura 27) se realiza mediante una interfase compuesta por 8 líneas bidireccionales de datos, una línea que informa si hay datos disponibles (controlada por el JM128) y otra línea para indicar si los datos han sido recibidos correctamente (controlada por el DSP). Si bien la interfase está contemplada para transferencias de datos en forma bidireccional, en esta aplicación solamente se envían datos desde el microcontrolador hacia el DSP.

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 30 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

La idea básica es transmitir instrucciones que le ordenen al DSP qué acción ejecutar sobre los diferentes canales de audio de entrada. Toda esta información transmitida está basada en las decisiones introducidas por el usuario a través de la pantalla táctil.

Figura 27. Estructura de la interfase DSPB56371 – MCF51JM128

Cada instrucción al DSP se compone de dos bytes (Figura 28). Primero se transmite el código de operación y luego el operando. Por ejemplo, el código de operación puede solicitar que varíe el volumen del canal derecho de J5, mientras que el operando indica cuánto debe variar.

Figura 28. Oscilogramas de la interfase DSPB56371 – MCF51JM128

Cuando el JM128 tiene un dato disponible para transmitir pone en alto la línea “Datos disponibles”. En ese momento el DSP recibe los primeros 8 bits y lo informa colocando en ‘1’ la línea “Datos recibidos”, la cual le indica al JM128 que envíe el segundo byte. Cuando el mismo es recibido, el DSP lo informa poniendo a ‘0’ la línea “Datos recibidos”.

Resta aclarar que cuando la dirección de los datos se invierte también lo hacen las líneas “Datos disponibles” y “Datos recibidos”, es decir, “Datos disponibles” pasa a ser “Datos recibidos” y viceversa.

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 31 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

5.2 Interfase B: MCF51JM128  Controlador del display Las características de esta interfase son fijadas por el controlador del display. Sin entrar en detalles, la misma se compone de 8 líneas de datos, 17 líneas de dirección capaces de mapear los 80KB de la memoria de video y 6 líneas de control. Todas estas líneas son comandadas por el microcontrolador, con excepción de algunas de las líneas de control.

Figura 29. Estructura de la interfase MCF51JM128 – Controlador del display

5.3 Interfase I2S: DSP  Codecs El protocolo I2S [15] fue especialmente desarrollado por Philips para ser utilizado para transferencia de datos entre dispositivos de audio digital. Un bus I2S consiste de 3 líneas (Figura 30): •

Una línea de datos. Éstos son transferidos utilizando multiplexado por división de tiempo (TDM, time division multiplexing). Primeo se envía el slot 0, que contiene el canal izquierdo. Luego se envía slot 1 con la información del canal derecho.



Una línea de selección de palabra. Indica qué slot se está transfiriendo. En el caso del transmisor se denomina FST (Frame sync transmitter), mientras que para el receptor FSR (Frame sync receiver)



Una línea de reloj. Es el reloj que sincroniza la transferencia de datos. Para el receptor se denomina SCKR (Serial clock receiver). Para el transmisor SCKT (Serial clock transmitter).

Los datos son transmitidos en complemento a 2, comenzando desde el bit más significativo, ya que los dispositivos acoplados pueden soportar diferentes longitudes de palabra. Si por ejemplo el receptor soporta una longitud de 24 bits y el transmisor sólo 16 bits, entonces el dato (antes de ser transmitido) se trunca y rellena con ceros (zero-padding). Los datos son detectados por el receptor en el flanco Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 32 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

ascendente del reloj. La línea de selección de palabra (FST, FSR) indica qué canal se está transmitiendo y su duración es de 32 ciclos de reloj, por lo que este protocolo soporta muestras de hasta 32 bits. El MSB de la muestra de audio siempre es transmitido un ciclo de reloj después de la transición de la línea de selección de palabra [15].

En la Figura 30, fs y Tm son la frecuencia de muestreo y el periodo de muestreo, respectivamente.

Figura 30. Estructura del protocolo I2S

En un sistema de audio interconectado utilizando el protocolo I2S solo un dispositivo se encarga de generar el reloj de sincronismo. El mismo se conoce como dispositivo maestro. Todos los otros dispositivos acoplados funcionan como esclavos. En esta aplicación el dispositivo maestro es el codecs AK4584 [8], mientras que todos los demás (DSP y codecs AK4556) funcionan como esclavos.

6

Referencias

[1]

DSP56371 Data Sheet, Rev. 4.1, 1/2007

[2]

DSP56371 User Manual, DSPB56371UM, Rev. 2.1, 08/2006

[3]

Symphony SoundBite Demo User's Guide, SNDBDMOUG

[4]

MCF51JM128 Data Sheet, MCF51JM128, Rev. 2, 09/2008

[5]

DEMOJM User manual, DEMOJMUM, Rev. 1.00, 1/2008

[6]

DSP56300 Family Manual, DSP56300FM, Rev. 5, 4/2005

[7]

Codec AKM AK4556, MS0559-E-00, 11/2006

[8]

Codec AKM AK4584, MS0118-E-00, 11/2001

[9]

Symphony Studio Eclipse for Symphony DSPs. User guide, SPSTUDIOUG, Rev. 1.1, 07/2008

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Página 33 de 33 FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

[10]

Implementing a 10-Band Stereo Equalizer on the DSP56311EVM Board, AN2110, Rev. 1, 11/2005

[11]

Programming the DSP56300 Enhanced Filter Coprocessor (EFCOP), APR39, Rev. 1, 8/2005

[12]

Schaum's Outline of Digital Signal Processing, Monson Hayes. 1999.

[13]

Ronda Wilson. Filter topologies. AES.

[14]

Wei Chen. Performanceof Cascadeand Parallel IIR Filtres. AES.

[15]

Enhanced serial audio interface (ESAI), Programming and Interfacing Techniques. AN1848/D. Rev. 1.0. 05/00.

Consola de audio digital con DSPB56371 y MCF51JM128 Procesamiento Digital de Señales – FCEFyN – UNC

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.