Sei sulla pagina 1di 28

1

SISTEMA DE DESARROLLO DSP

Este manual describe lo esencial del sistema de desarrollo a utilizar en el laboratorio.

El sistema es llamado: TMS320C6713 DSK (DSK: Digital Processing Starter Kit)

Figura 1

El kit TMS320C6713 es desarrollado por la empresa Texas Instruments.

Es una plataforma compuesta por Hardware y Software orientada al desarrollo de


aplicaciones de procesamiento digital de señales en tiempo real.

Procesamiento en tiempo real significa que el resultado requerido no sólo depende de


la lógica correcta para alcanzarlo, sino también del instante en que se produzca dicho
resultado.

Una forma de visualizar un sistema de tiempo real es como un sistema de


estímulo / respuesta. Si hay un cambio en la entrada (estímulo) se debe producir de
manera “instantánea” un cambio en la salida (respuesta) como resultado del
procesamiento.

Prof. Juan Puerta Arce


2

Componentes del kit TMS320C6713 de Texas Instruments:

1.- Una tarjeta de circuito impreso (DSK C6713) que


contiene principalmente un procesador digital de
señal y un códec estéreo para la entrada y salida de
señales analógicas.
HARDWARE
2.- Un cable universal USB para conectar la tarjeta DSK
a una PC

3.- Una fuente de alimentación universal de 5 voltios.

1.- El entorno de desarrollo integrado (IDE): SOFTWARE


Code Composer Studio (CSS)

La tarjeta de circuito impreso DSK C6713:

(a) Figura 2

Prof. Juan Puerta Arce


3

(b) Figura 3

Las tarjetas DSK disponen de 16 MB (megabytes) de RAM dinámica síncrona (SDRAM) y


512 kB (kilobytes) de memoria flash

A continuación, se describirán los principales componentes de la tarjeta:

El procesador digital de señales TMS320C6713 (C6713):

Es el “cerebro” del sistema, encargado de ejecutar las instrucciones de los programas


para el procesamiento de los datos en tiempo real. Su frecuencia de operación es de
225MHZ.

Incluye una memoria interna de 264kB (8kB como caché y 256kB compartida entre el
espacio de programa y datos). Por lo que la arquitectura utilizada es la Harvard.

Este procesador pertenece a la familia C6x de procesadores de Texas Instruments,


siendo capaz de realizar procesamiento intensivo de números en coma fija y coma
flotante.

Figura 4

Prof. Juan Puerta Arce


4

El códec estéreo TLV320AIC23 (AIC23):

Es un circuito encargado de proveer las funciones de conversión Análogo/Digital y


Digital/Análogo. Puede trabajar con captura y salida de señales estéreo.

Utiliza un reloj de 12MHz y su frecuencia de muestreo se puede seleccionar para una


gama de valores alternativos entre 8 a 96KHz. Trabaja con 16 bits por muestra.

Cuatro conectores se usan para proveer las entradas y salidas analógicas:

MIC IN para la entrada de micrófono, LINE IN para entrada de línea, LINE OUT para la
salida de línea y HEADPHONE para la salida de auriculares

Figura 5

ESQUEMA GENERAL DE FUNCIONAMIENTO DE LA TARJETA DSP:

Figura 6

Prof. Juan Puerta Arce


5

El CODE COMPOSER STUDIO (CSS):

Es un entorno de desarrollo integrado (IDE) para desarrollar aplicaciones de


procesamiento digital de señales en tiempo real, basado en el lenguaje de
programación C.

Incorpora un editor de código para escribir programas en lenguaje C, un compilador C,


un ensamblador y un enlazador.

INSTALACIÓN :

La versión a utilizar puede ser la V5.5.0 o la V5.4.0. Antes de la instalación es


necesario descargar los siguientes paquetes:

1. El archivo instalador. Para su descarga dirigirse al siguiente enlace:

http://processors.wiki.ti.com/index.php/Download_CCS

Figura 7

Observación:
Será necesaria la creación de una cuenta en Texas Instruments para poder realizar
la descarga. Siga las instrucciones de la página de inscripción de Texas Instruments

2. Los archivos de soporte de la tarjeta DSK que provee el distribuidor Spectrum


Digital . Para su descarga dirigirse al siguiente link:
http://c6000.spectrumdigital.com/dsk6713/V2/files/DSK6713.zip

3. La biblioteca de funciones de soporte del chip (CSL) C6000. Para su descarga


dirigirse al siguiente link:
http://www.ti.com/tool/sprc090

Prof. Juan Puerta Arce


6

Archivos descargados:

Descomprimir

Figura 8

Proceso de instalación:

1. Ejecutar el archivo instalador.

2. Aceptar los términos de licencia haciendo clic en el botón Next:

Figura 9

3. El CSS será instalado en la carpeta ti del disco C. Clic en el botón Next

Figura 10

Prof. Juan Puerta Arce


7

4. Elegir el tipo de instalación personalizada (Custom) y clic en el botón Next :

Figura 11

5. La tarjeta a utilizar usa un procesador de la familia C6000 por lo que deberá elegir
la opción C6000 Single Core DSPs. Luego hacer clic en el botón Next:

Figura 12

6. Dejar seleccionados todos los componentes que figuran en la siguiente ventana.


Luego clic en el botón Next: (Ver figura 13)

Prof. Juan Puerta Arce


8

Figura 13

7. Dejar seleccionados los emuladores que figuran por defecto en la siguiente ventana,
verificando que esté seleccionado obligatoriamente el emulador Spectrum Digital
Emulators. Luego clic en el botón Next:

Figura 14

8. Aparecerá una ventana de reporte. Si todo fue seleccionado correctamente clic en el


botón Next para iniciar el proceso de instalación. (Ver figura 15)

Prof. Juan Puerta Arce


9

Figura 15

9. Inicia el proceso de instalación del CSS. Puede demorar varios minutos. Una vez
terminada la instalación clic en el botón Next:

Figura 16

10. En la ventana final de instalación. Quitar el check a la opción Launch Code Composer
Studio V5 (El IDE será utilizado más adelante). Luego clic en el botón Finish:
(Ver figura 17)

Prof. Juan Puerta Arce


10

Figura 17

11. Finalmente, dirigirse a la ruta c:\ti (donde se instaló el CSS) y copiar la carpeta
DSK6713 (descargada antes de la instalación)

Figura 18

PRUEBA RÁPIDA DE LA TARJETA DSK:

Antes de utilizar la tarjeta para desarrollar una aplicación se debe hacer de manera
obligatoria una prueba (test) rápida de la misma. Para ello seguir los siguientes pasos:

1. Conecte la tarjeta a la PC a través del cable USB y conecte el cable de alimentación


de la misma: (Ver figura 19)

Prof. Juan Puerta Arce


11

Figura 19

2. Explore la carpeta c:\ti\DSK6713\drivers y ejecute los archivos ejecutables


c6713dsk.exe y c6713dskdiag.exe haciendo clic derecho y seleccionando “Solucionar
problemas de compatibilidad” (troubleshooting compatibility). (Ver figuras 20 y 21)

Figura 20 Figura 21

Observación: Windows le pedirá aceptar un Test de compatibilidad antes de ejecutar los


archivos

Al ejecutar el archivo c6713dsk.exe se abrirá la ventana DSK STARTUP y se realizará


una prueba de conectividad de la tarjeta con la PC a través del puerto USB.

Cuando la ventana DSK STARTUP se


cierre sola, indicará que la conexión
esta correcta.

Figura 22

Prof. Juan Puerta Arce


12

Al ejecutar el archivo c6713dskdiag.exe se abrirá la ventana 6713DK Diagnostics.


Hacer clic en el botón Start para iniciar el diagnóstico de la tarjeta. Cuando TODOS los
LEDS de la subventana Overall Diagnostic Test se enciendan (color verde) indicarán
que la tarjeta esta correcta y lista para usarse. Finalmente, cerrar la ventana.

Figura 23

CREANDO UN PROYECTO CON EL CSS V5:

En líneas generales el proceso de creación de un archivo ejecutable en el CSS es el


siguiente:

Figura 24

Un proyecto en CCS comprende todos los archivos (o enlaces a todos los archivos)
necesarios para generar un archivo ejecutable.

Prof. Juan Puerta Arce


13

1. Ejecutar el CSS V5 haciendo clic en el ícono de la plataforma situado en el escritorio


(acceso directo):

Figura 25

2. Se abrirá la ventana Workpace Launcher. Seleccionar la ruta de la carpeta donde


desee guardar el proyecto de su aplicación y luego clic en el botón OK. Si no
selecciona una ruta específica el proyecto se guardará por defecto en la carpeta cuyo
nombre aparece mostrado al inicio en esta ventana.

Figura 26

3. Se abrirá la ventana de inicio del CSS V5:

Figura 27

Prof. Juan Puerta Arce


14

4. Para crear un nuevo proyecto, seleccione File > New > CCS Project :

Figura 28

5. Se abrirá la ventana New CCS Project , coloque el nombre del proyecto, y verifique que
estén seleccionadas las opciones que se muestran en la figura 29. Luego de ello hacer
clic en el botón Finish:

Figura 29

Prof. Juan Puerta Arce


15

6. Cerrar la ventana TI Resource Explorer.

Figura 30

Los nombres de los archivos usados por el proyecto son mostrados en la ventana
Project Explorer, la cual por defecto aparece en el lado izquierdo del CCS.

Figura 31

Prof. Juan Puerta Arce


16

7. A continuación se deberán agregar una serie de archivos de soporte al proyecto,


dichos archivos serán proporcionados por el profesor en una carpeta (incluso la
carpeta estará cargada en el aula virtual con el nombre LAB_DSP).

Los archivos de soporte son los siguientes:


c6713dskinit.c y c6713dskinit.h. Estos archivos contienen las funciones para varias
rutinas de bajo nivel, incluyendo comm_poll(), comm_intr() y
output_left_sample().
Vectors_poll.asm. Contiene la tabla de servicio de interrupciones para el C6713
rts6700.lib (o rts6200.lib), dsk6713bsl.lib y csl6713.lib. Estos son los archivos de la
biblioteca de soporte de tiempo de ejecución (para la arquitectura c6x), soporte
para la tarjeta (C6713 DSK) y soporte para el circuito integrado (el procesador
C6713).
C6713dsk.cmd. Archivo de comandos del enlazador

Para agregar los archivos haga clic derecho en el nombre del proyecto el cual se
encuentra en la ventana Project Explorer y luego seleccione Add Files

Figura 32

Dirigirse a la carpeta LAB_DSP y seleccionar los archivos arriba indicados, luego


hacer clic en el botón Open:

Figura 33

Prof. Juan Puerta Arce


17

Aparecerá la ventana File Operation, verifique que esté seleccionada la opción


Copy files y luego clic en el botón OK:

Figura 34

Los archivos de soporte cargados podrán ser visualizados en la ventana Project


Explorer

Figura 35

8.- Finalmente, agregar el archivo que contendrá el código fuente (programa) en


lenguaje C. Para ello, haga clic derecho en el nombre del proyecto y seleccione la
ruta New > Source File. (Ver figura 36)

Prof. Juan Puerta Arce


18

Figura 36

9. Aparecerá la ventana New Source File, en dicha ventana coloque el nombre que
tendrá el archivo fuente (con la extensión .c) y seleccione el lenguaje C. Luego clic
en el botón Finish:

Figura 37

10. En la ventana principal del proyecto aparecerá el archivo senalSeno.c donde se


escribirá el programa en C correspondiente para el procesamiento que se desea
realizar. (Ver figura 38)

Prof. Juan Puerta Arce


19

Acá se escribirá el código de su programa

Figura 38

DESARROLLANDO UN PROGRAMA PARA GENERAR UNA SEÑAL SENOIDAL:

A continuación se presentará un código (programa) en C que permitirá generar una señal


senoidal de 1KHz de frecuencia, para que sea enviada de manera analógica por los parlantes y
la línea de salida (LINE OUT) de la tarjeta. DSP.

Dirigirse a la siguiente página.

Prof. Juan Puerta Arce


20

PROGRAMA PARA GENERAR UN SEÑAL SENOIDAL USANDO LA TARJETA DSP

//inclusión de librerías
#include "dsk6713_aic23.h"
#include "dsk6713_dip.h"
#include "dsk6713_led.h"

Uint32 fs=DSK6713_AIC23_FREQ_8KHZ; //se configura una frecuencia de muestreo de 8KHZ

#define num 8 //se crea un macro

short i=0; //variable inicializada en cero (servirá de índice)

short ganancia=10; //variable inicializada en 10 (servirá como ganancia)

//vector que tendrá las muestras de un periodo de señal senoidal


short tablaSeno[num]= {0, 707, 1000, 707, 0, -707, -1000, -707};

//declaración de funciones:
void comm_poll();
void output_left_sample(short);

//función principal:
void main() {

//se llaman a las funciones:


comm_poll();
DSK6713_LED_init(); Inicializan la tarjeta DSK y el códec AIC23
DSK6713_DIP_init();

while(1) { //bucle infinito

if(DSK6713_DIP_get(0)==0) { //si el DIP 0 está en bajo

DSK6713_LED_on(0); //el LED 0 es encendido

//se envía al códec una muestra almacenada en el vector tablaSeno,


multiplicada por una ganancia. El códec genera la salida analógica
correspondiente:
output_left_sample(tablaSeno[i]*ganancia);
i++; //se incrementa el índice para la siguiente iteración

if (i>=num) //si el índice llega al final del vector se reinicia a cero


i=0;
} //fin del if
else //si el DIP 0 está en alto
DSK6713_LED_off(0); //el LED 0 es apagado

} //fin del while

} //fin de la función principal.

Prof. Juan Puerta Arce


21

Comentarios importantes sobre el programa:

- Cada vez que la función output_left_sample() sea llamada, espera a que el códec
haya generado la salida y luego está lista para la siguiente muestra. De esta manera,
cada vez que el DIP-0 se haya puesto en bajo, una forma de onda senoidal analógica
será generada a una tasa de 8kHz a través del canal izquierdo del códec AIC23 y
enviada a los sockets LINE OUT y HEADPHONE. La tasa de muestreo en la cual el
códec opera se establece con la instrucción:
Uint32 fs = DSK6713_AIC23_FREQ_8KHZ

¿Cómo se generan los valores del vector tablaSeno?

Primeramente, lo que se va a generar es un período de señal senoidal de la forma


1000sen(2πfot) con fo = 1kHz utilizando una frecuencia de muestreo de fs = 8KHZ ,
por lo que se tendrían un total de fs/fo = 8 muestras por período que deberán
almacenarse (en formato Uint32) en el vector.

Los 8 valores serán generados utilizando la fórmula:

 2π 
1000  i  para i  0,1, 2, 3, 4, 5, 6, 7
 8 

COMPILANDO, ENSAMBLANDO Y ENLAZANDO UN PROGRAMA EN EL CSS:

1. Copiar el código del programa anteriormente explicado en el código fuente del CSS:

Figura 39

Prof. Juan Puerta Arce


22

Observación:
El compilador C, el ensamblador y el enlazador, tienen varias opciones asociadas con
cada una de ellos. Estas opciones deben ajustarse apropiadamente antes de intentar
compilar el proyecto.

2. Ajustes de las opciones del compilador:


Haga clic derecho en el nombre del proyecto y seleccione Properties:

Figura 40

Luego, diríjase a la ruta Build --> C6000 Compiler y siga el procedimiento tal como
muestran las Figuras 41 al 44

Figura 41: Opciones del compilador C6000

Observación: No es necesario hacer clic en el botón OK (Aún)

Prof. Juan Puerta Arce


23

Hacer clic en éste ícono


Agregue estas rutas
para agregar las rutas

Figura 42: Ubicación de carpetas “include” para el proyecto

Observación: No es necesario hacer clic en el botón OK (Aún)

Agregue el símbolo Hacer clic en éste ícono


del CHIP para agregar el símbolo

Figura 43: Definición del símbolo CHIP_6713.

Observación: No es necesario hacer clic en el botón OK (Aún)

Prof. Juan Puerta Arce


24

Figura 44: Opciones del modelo del tiempo de ejecución

Observación: No es necesario hacer clic en el botón OK (Aún)

3. Ajustes de las opciones del compilador:

Ahora seleccione C6000 Linker --> File Search Path y añada la ubicación de los
archivos de biblioteca de funciones, tal como se muestra en la Figura 45.
Finalmente, clic en el botón OK:

Hacer clic en este ícono


para agregar los archivos
Agregue estos archivos

Figura 45: Incluir archivos de bibliotecas de funciones

Prof. Juan Puerta Arce


25

CONSTRUYENDO, DESCARGANDO Y EJECUTANDO EL PROYECTO EN CSS:

Ahora el proyecto puede ser construido y el archivo ejecutable senalSeno.out puede ser
descargado a la tarjeta DSK y ejecutarse.

1. Seleccione Project --> Build All.

Figura 46

El proyecto empezara a construirse y en la ventana inferior del CSS se mostrarán los


pasos que se están ejecutando durante dicho proceso. Al final deberá aparecer un
mensaje indicando que el número de errores es igual a cero.

Cero Errores

Figura 47

Prof. Juan Puerta Arce


26

2. Conecte la tarjeta DSK y seleccione la ruta Run > Debug :

Figura 48

3. Aparecerá la ventana de depuración (CSS debug):

Figura 49

4. En dicha ventana seleccione la ruta Run-->Load -- > Load program :

Figura 50

5. Se abrirá la ventana Load Programa. Seleccione el archivo de salida senoidal.out y


luego clic en el botón OK: (Ver figura 51)

Prof. Juan Puerta Arce


27

Figura 51

6. Selecciones la ruta Run -- > Resume para ejecutar el proyecto en la tarjeta DSK:

Figura 52

Observe en el osciloscopio la salida sinusoidal en función de la habilitación del


interruptor DIP, si tiene auriculares escuche el resultado.

Observación:

Para detener temporalmente la ejecución del programa y poder hacer cambios en


alguna variable, seleccione la ruta Run -- > Suspend.

Figura 53

Por ejemplo si se desea cambiar el valor de la variable ganancia de 10 a 1,


posicionarse con el mouse sobre el nombre de la variable y se desplegará un cuadro
en el cual se podrá cambiar el valor: (Ver figura 54)

Prof. Juan Puerta Arce


28

Cambiar el valor acá

Figura 54

Vuelva a seleccionar Run -- > Resume para volver a ejecutar y notar el cambio.

Para detener la ejecución seleccione Run --> Terminate.

Figura 55

Prof. Juan Puerta Arce