+ All Categories
Home > Documents > Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7)....

Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7)....

Date post: 12-Mar-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
33
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 Procesamiento Digital de Señales FCEFyN UNC 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 misma está basada en un DSPB56371 [1], [2] integrado en el kit de desarrollo SoundBite [3] Esta consola, conforme con la estructura planteada, permite procesar hasta 8 señales de audio en tiempo real (agrupadas en 4 canales estereo llamados J1, J3, J5 y J7). Además 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 comanda una pantalla LCD sensible al tacto. El DSP se vincula con el microcontrolador a través de una interfase de datos diseñada específicamente para esta aplicación (ver sección 5.1). Contenido 1 Introducción 2 Perspectiva general del equipo 3 Etapa de procesamiento de audio 3.1 Efectos de audio 3.2 Ruteo programable 3.3 Ecualización y filtrado 3.4 Ajuste del ecualizador 3.5 Ajuste de volumen 3.6 Control de efectos 4 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 5 Interfases 5.1 Interfase A: DSPB56371 MCF51JM128 5.2 Interfase B: MCF51JM128 Controlador del display 5.3 Interfase I 2 S: DSP Codecs 6 Referencias
Transcript
Page 1: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

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 Procesamiento Digital de Señales – FCEFyN – UNC

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

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

integrado en el kit de desarrollo SoundBite [3]

Esta consola, conforme con la estructura

planteada, permite procesar hasta 8 señales de

audio en tiempo real (agrupadas en 4 canales

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

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

comanda una pantalla LCD sensible al tacto.

El DSP se vincula con el microcontrolador a

través de una interfase de datos diseñada

específicamente para esta aplicación (ver

sección 5.1).

Contenido

1 Introducción

2 Perspectiva general del equipo

3 Etapa de procesamiento de audio

3.1 Efectos de audio

3.2 Ruteo programable

3.3 Ecualización y filtrado

3.4 Ajuste del ecualizador

3.5 Ajuste de volumen

3.6 Control de efectos

4 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

5 Interfases

5.1 Interfase A: DSPB56371 � MCF51JM128

5.2 Interfase B: MCF51JM128 � Controlador

del display

5.3 Interfase I2S: DSP � Codecs

6 Referencias

Page 2: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 2 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

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

Page 3: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 3 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

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

Page 4: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 4 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

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.

Page 5: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 5 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

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.

Page 6: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 6 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

Figura 5. Distorsión overdrive

La definición matemática de este efecto sería:

>

≤=

ax(t) sia

ax(t) sitxty

)()( 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 X:CANALES_DIST,X0

brclr #0,X0,NO_SATURAR_J1_IZQ ; Si esta bandera no está seteada no se

; aplica distorsión al canal.

move X:MUESTRA_IZQ_J1,A ; Saturación aplicada al canal derecho de J1

move Y:UMBRAL_DIST_J1,X0 ; Umbral de saturación.

cmp X0,A

ble NO_SATURAR_SUP_IZQ_J1 ; Si la señal de entrada es menor que el

; umbral de saturación pasa limpia.

move Y:UMBRAL_DIST_J1,A ; Valor del recorte de la saturación.

move A,X:MUESTRA_IZQ_J1

NO_SATURAR_SUP_IZQ_J1

move #$800000,Y0 ; Se carga el valor (-1) en Y0.

mpy X0,Y0,A ; Se multiplica X0 por Y0 para cambiarle el

; signo al umbral de saturación.

move A,X0 ; Se salva el contenido de A.

move X:MUESTRA_IZQ_J1,A ; Se trae la muestra de audio al acumulador.

cmp X0,A ; Se compara el umbral de saturación con el

; la muestra de audio.

bge NO_SATURAR_J1_IZQ ; 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.

move X0,X:MUESTRA_IZQ_J1

NO_SATURAR_J1_IZQ

Page 7: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 7 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

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

Page 8: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 8 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

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:

)cos()( ttx ω= Ec. 3.2

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

( ) ( )2

2cos1)cos()( 2

1t

ttyω

ω+

== Ec. 3.3

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

multiplicación resulta:

( ) ( ) ( )4

3cos

4

cos.3)cos()( 3

2tt

ttyωω

ω +== 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 )(ty3 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.

Page 9: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 9 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

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

move X:CANALES_FUZZ,X0

brclr #0,X0,NO_FUZZ_J1_IZQ ; Si esta bandera no está seteada no se

; aplica fuzz al canal.

move X:CANAL_FUZZ_J1_IZQ,X0 ; El registro X:CANAL_FUZZ contiene la

; muestra de audio a procesar. El mismo fue

; cargado fuera de esta rutina.

move X0,Y0

move X:REPETIR,N ; 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.

do N,Loop

mpy X0,Y0,A ; N multiplicaciones de la muestra por sí misma.

move A,X0

Loop

move X0,X:CANAL_FUZZ ; Se almacena la muestra ya procesada.

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:

Page 10: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 10 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

)().()( tmtxtym = Ec. 3.5

donde:

( )tactm oo ωcos.)( += Ec. 3.6

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.

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

(a) (b)

Page 11: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 11 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

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 X:CANAL_TREMOLO,X0

brclr #15,X0,NO_TREMOLO ; Si este bit no está seteado significa que no se

; debe aplicar trémolo.

Page 12: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 12 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

move X:TREMOLO_J1,A ; 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.

add #1,A

move A,X:TREMOLO_J1 ; En el siguiente bloque ‘IF’ se pregunta si se

; alcanzó el momento de cambiar el factor de la

; señal senoidal.

.if A <EQ> X:LIMITE_TREM_J1 THEN ; Si la cuenta completó en que permanece

; aplicada la misma muestra de la senoidal,

; entonces se ingresa al bloque IF.

move #0,X0

move X0,X:TREMOLO_J1 ; Se reinicia el contador.

move X:PUNTERO_SENO_TREM,A ; Puntero a la próxima ganancia a aplicar.

add #1,A ; Se apunta a la próxima muestra de la

; senoidal.

cmp #$000010,A ; Se pregunta si se llegó al final del

; vector que contiene las muestras de la

; senoidal. De ser así se resetea.

beq RESET_TREM_J1

move A,X:PUNTERO_SENO_TREM ; Se memoriza el nuevo valor del puntero.

bra CONT_TREM_J1

RESET_TREM_J1

move X0,X:PUNTERO_SENO_TREM ; Reset del puntero.

move X0,A

CONT_TREM_J1

move #SENO_TREMOLO,X0 ; Dirección base de la senoidal.

add X0,A ; Se calcula la dirección de la próxima

; ganancia a aplicar.

move A,R0 ; R0 apunta a la siguiente ganancia.

move X:(R0),X0 ; Se carga en X0 la nueva ganancia.

move X0,X:GAN_TREM_J1

.endi

move X:GAN_TREM_J1,X0 ; Se carga en X0 la nueva ganancia.

move X:CANAL_TREMOLO,R0 ; Dirección del canal a aplicar trémolo.

move X:(R0),Y0 ; Se carga la muestra de audio del canal izquierdo

; en Y0.

mpy X0,Y0,A ; Se aplica la ganancia.

move A,X:(R0) ; Se retorna la muestra del canal izq. con trémolo.

move X:(R0+1),Y0 ; Muestra de audio del canal derecho.

mpy X0,Y0,A ; Se aplica la ganancia.

move A,X:(R0+1) ; 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.

Page 13: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 13 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

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

Page 14: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 14 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

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.

Page 15: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 15 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

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 X:CANAL_ECO,X0

brclr #15,X0,NO_ECO_IZQ ; Si este bit no está seteado significa que no se

; de debe aplicar delay.

move X:CANAL_ECO,R5 ; Dirección del canal al que se le aplicará delay.

; Esta variable se carga cuando el usuario

; configura el efecto.

move X:DIRECCION_ECO,R6 ; Esta variable contiene la dirección de memoria

; donde se encuentra la próxima muestra a insertar

; en la salida.

move X:(R6),X0 ; Se carga en X0 la muestra retardada.

move X:(R5),Y0 ; Muestra de audio actual.

move Y0,A ; Se copia la muestra actual al acumulador para

; sumarle la muestra pasada ponderada por una

; cierta ganancia “a” menor que uno.

maci #$400000,X0,A ; Ponderación de la muestra pasada por “a = 0.5”.

move A,X:(R5) ; Muestra final con delay.

move Y0,X:(R6) ; Se almacena la entrada actual en memoria para el

; próximo delay.

move (R6)+N6 ; Se incrementa el puntero a la siguiente muestra

; almacenada en memoria (para la próxima

; intervención de este algoritmo).

.if R6 <EQ> X:TIEMPO_ECO then ; 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.

move #>$C304,R6 ; 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

Page 16: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 16 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

Figura 14. Diagrama de flujo de la rutina

que genera el delay

Page 17: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 17 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

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 X:CANAL_REVERB,X0

brclr #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 X:(R5),Y0 ; Muestra de audio actual.

move Y0,A

maci #$400000,X0,A ; Ponderación de la muestra pasada “a = 0.5”.

Page 18: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 18 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

move A,X0

mpy #$600000,X0,A ; Ponderación de la muestra pasada

; Coeficiente “1 – a2 = 0.75”.

move A,X1 ; Resultado temporal.

mpy #$C00000,Y0,A ; Se multiplica la muestra de entrada por “-a”.

add X1,A ; Se suma la muestra de entrada ponderada al

; resultado de la cámara de reverb.

move A,X:(R5) ; Muestra con reverb.

move A,X:(R6) ; Se lleva el resultado a memoria.

move (R6)+N6 ; Se incrementa el puntero a la siguiente muestra

; almacenada en memoria (para la próxima

; intervención de este algoritmo).

.if R6 <EQ> X:TIEMPO_REVERB then ; 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.

move #>4,R6 ; 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.

Page 19: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 19 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

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

Page 20: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 20 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

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:

5544332211 ].[].[].[].[].[][ GnyGnyGnyGnyGnyny ++++= Ec. 3.7

Page 21: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 21 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

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:

]2[.]1[.].2[].1[].[][ 21210 −−−−−+−+= nyanyabnxbnxbnxny Ec. 3.8

Page 22: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 22 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

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 ; 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.

move #F1_OUT_IZQ_J1,R1 ; Puntero a las muestras pasadas de la salida

; y[n – i].

move #COEF_B1,R4 ; 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.

Page 23: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 23 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

move #COEF_A1,R5 ; Puntero a los coeficientes del denominador.

move X:MUESTRA_IZQ_J1,X0 ; Se carga en X0 la muestra de entrada.

jsr FILTRO_2DO_ORDEN ; 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 X:F1_OUT_IZQ_J1,X0 ; Se acomodan las muestras de salida pasadas.

move X0,X:(F1_OUT_IZQ_J1+1)

move 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 A

move 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.

; Convolución de las muestras de salida con los coeficientes del filtro.

rep #2

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).

macr X0,Y0,A X:(R0)+,X0 Y:(R4)+,Y0

macr X0,Y0,A X:(R1)+,X0 Y:(R5)+,Y0

macr X0,Y0,A X:(R1)+,X0 Y:(R5)+,Y0

Page 24: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 24 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

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

Page 25: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 25 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

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

Page 26: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 26 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

� 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.

Page 27: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 27 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

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.

Page 28: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 28 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

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

Page 29: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 29 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

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.

Page 30: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 30 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

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.

Page 31: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 31 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

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

Page 32: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 32 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

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

Page 33: Consola de audio digital con DSPB56371 y MCF51JM128 ... · estereo llamados J1, J3, J5 y J7). Además dispone de 4 salidas estéreo: J2, J4, J6 y J8. Para el control y configuración

Página 33 de 33

FCEFyN Universidad Nacional de Cordoba

Consola de audio digital con DSPB56371 y MCF51JM128

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

[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.


Recommended