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