Introducción
Es un DSP incorporado en muchas placas clones de la Beagle Board. Es un DSP de Texas Instruments. Realmente, ese DSP está integrado en el OMAP3530.
El objetivo es usarlo para hacer filtrado digital de audio.
En el datasheet dice:
¿Es apropiado?
Ver el rendimiento que proporciona y estimar si tiene potencia suficiente para nuestra aplicación.
En este documento, describe el rendimiento en la página 12:
- El filtro es: 240 Filter Coefficients and 200 Output Samples
- El número de ciclos empleados es menor de 13000.
- El número de coeficientes del filtro (nh) tiene que ser múltiplo de 4 u 8.
Para sustituir a BruteFIR, pensamos en un filtro muy largo: ej. 120000 taps es múltiplo de 8. Una de las ecuaciones para calcular el número de ciclos es:
nh * nr/4 + 16
en donde:
- nh = número de coeficientes
- nr = número de samples.
A 48000 samples por segundo y una señal estéreo, se necesitarían:
(120000 * 48000/4 + 16) * 2 = 2880 millones de ciclos por segundo
Este DSP tiene 480MHz por lo que entiendo que la potencia parece insuficiente. Supongo que el truco será particionar de la misma manera en la que lo hace BruteFIR.
Ver la página 14 de este documento. Parece que podría tener un rendimiento algo mejor que el de un Pentium III.
http://e2e.ti.com/support/dsp/omap_applications_processors/f/42/t/43845.aspx
¿Herramientas?
Tiene peculiaridades en cuanto a las herramientas que se necesitan para programarlo. Requiere una librería que no es Open Source. Por otro lado, las herramientas para compilar son de pago, pero se puede hacer una descarga gratuita si el proyecto a desarrollar es open source.
Investigar las alternativas gratuitas para eliminar esta dependencia.
Funciones
Las candidatas para el filtrado FIR con números reales son:
- DSP_fir_gen
- DSP_fir_r4
- DSP_fir_r8
- DSP_fir_sym
Links
- TMS320C64x+ Megamodule: This document discusses the enhancements
made to the internal memory and describes the new features which have been added
to support the internal memory architecture's performance and protection.
- TMS320C64x+ DSP Little-Endian DSP Library Programmer’s Reference: introducción a la librería del DSP Texas Instruments C64x+ (DSPLIB). Es aquí donde aparecen las funciones: fir, fft, … que deberían hacernos la vida más fácil.
- Signal Processing Examples Using TMS320C64x Digital Signal Processing Library (DSPLIB): este documento debería es como un tutorial basado en un ejemplo. La página 8 es un filtro FIR.
- TMS320C6000 DSP Cache User’s Guide: el uso de la caché afecta al rendimiento.
http://pixhawk.ethz.ch/omap/dsp
http://www.facebook.com/note.php?note_id=247252734361
http://elinux.org/BeagleBoard#C64x.2B_DSP
http://elinux.org/BeagleBoard/DSP_Howto
http://elinux.org/BeagleBoard/gst-dsp
http://gitorious.org/vjaquez-beagleboard/dsp-samples
http://gitorious.org/vjaquez-beagleboard
http://omappedia.org/wiki/DSPBridge_Project
http://elinux.org/BeagleBoard/dsp-tools