You are on page 1of 5

UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA Y TECNOLGIAS AVANZADAS IPN

PROCESADORES DIGITALES DE SEALES Prctica No. 3 Usodelamemoriaexternaparagrabarvoz

CABRERA CORONA CESAR AUGUSTO SANCHEZ RUBIO MIGUEL ANGEL

DISPOSITIVOS PROGRAMBLES 4TV1 30 AGOSTO DE 2012

Objetivo: Hacer uso de la directiva pragma para almacenar datos en la memoria RAM externa del DSP. Antecedentes El DSK TMS320C6713 incluye 16 MB de memoria externa SDRAM para almacenar una mayor cantidad de datos que lo que se puede lograr con la memoria interna. #Pragma nombre_directiva Con esta directiva se declaran directivas que usa el compilador de C. Si al compilarse el programa con otro compilador de C, este no reconoce la directiva, se ignora. Para el caso de este proyecto, la directiva en cuestin nos sirve para hacer uso de zonas de memoria previamente definidas, por ejemplo:
#pragma DATA_SECTION(buffer,".EXTRAM") //buffer -> memoria externa

Material y equipo 1 kit de desarrollo DSKC6713 CCS Micrfono Audfonos Desarrollo. 1. Crear un proyecto con nombre: DSP06_MEM_EXT.pjt. 2. Modifique el archivo de comandos C6713DSK.cmd para que contenga las siguientes secciones y grbelo como C6713DSK_r.cmd. (Este archivo forma parte de [3])

/*C6713dsk_r.cmd Linker command file*/ MEMORY { IVECS: org = 0h, len = 0x220 IRAM: org = 0x00000220, len = 0x0002FDE0 SRAM_EXT: org = 0x80000000, len = 0x01000000 FLASH: org = 0x90000000, len = 0x00020000 } SECTIONS { .EXTRAM .vecs .text .bss .cinit .stack .sysmem .const

:> SRAM_EXT :> IVECS :> IRAM :> IRAM :> IRAM :> IRAM :> IRAM :> IRAM

/*Created in vectors file*/ /*Created by C Compiler*/

1/3

UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA Y TECNOLGIAS AVANZADAS IPN


PROCESADORES DIGITALES DE SEALES Prctica No. 3 Usodelamemoriaexternaparagrabarvoz

.switch .far .cio .csldata }

:> IRAM :> IRAM :> IRAM :> IRAM

3. Cargue el siguiente cdigo C // DSP06_MEM_EXT.c


#include "dsk6713_aic23.h" Uint32 fs=DSK6713_AIC23_FREQ_8KHZ; #define N 24000 long i; short var; short buffer[N]; #pragma DATA_SECTION(buffer,".EXTRAM") void main() { comm_poll(); DSK6713_DIP_init(); DSK6713_LED_init(); while(1) { if(DSK6713_DIP_get(3) == 0) { DSK6713_LED_on(3); for (i = 0; i<N; i++) buffer[i] = input_sample(); DSK6713_LED_off(3); break; } }; var=0; while(1) { if((DSK6713_DIP_get(0)==0)&&(var==0)) { DSK6713_LED_on(0); for (i = 0; i<N; i++) output_sample(buffer[i]); var=1; DSK6713_LED_off(0); } if(DSK6713_DIP_get(0)==1) var=0; }; } //Archivo de soporte del DSK //Frecuencia de muestreo //Bffer

//buffer -> memoria externa

//DSK, CODEC y McBSP

//Bucle infinito //Verificar si el switch No. 3 est presionado //Encender LED No. 3 //Lectura de una muestra de entrada //Apagar el LED No. 3 cuando el BFFER est lleno

//Verificar si SW No. 0 est presionado y var=0 //Apagar el LED No. 0 //Reproduccin inversa //Apagar el LED#0 cuando se termine //Cambiar el estado de la bandera

4. Agregar el archivo: C6713dskinit.c en el cual se encuentran las funciones: input_sample, output_sample, comm_intr, etc. (Este archivo forma parte de [3]) 5. Agregar el archivo: vectors_poll.asm en el cual estn contenidos las rutinas de acceso a perifricos por poleo (este archivo forma parte de [3]). 6. Agregue las libreras: C:\CCStudio_v3.1\C6000\csl\lib\csl6713.lib C:\CCStudio_v3.1\C6000\dsk6713\lib\dsk6713bsl.lib C:\CCStudio_v3.1\C6000\cgtools\lib\rts6700.lib 7. Agregue el archivo de comandos: C6713DSK_r.cmd. 8. Modifique el registro 4 del archivo C6713dskinit.h y cambie el registro: 0x0011 por 0x0015, para que admita la entrada con micrfono y salida con el audfono. (Este archivo forma parte de [3]) 2/3

UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA Y TECNOLGIAS AVANZADAS IPN


PROCESADORES DIGITALES DE SEALES Prctica No. 3 Usodelamemoriaexternaparagrabarvoz

9. Compile el programa. 10. Cargue el archivo .out en el DSP. 11. Conecte un micrfono y un audfono. 12. Ejecute el programa.

Resultados
Comprobamos que efectivamente se pudo escuchar nuestra voz que fue almacenada dentro de la memoria RAM externa del DSP.

Cuestionario
1. Qu libreras se agregaron y porque?

csl6713.lib Es la biblioteca de soporte del chip, es necesaria para que el compilador genere el archivo ejecutable para el chip 6713.

dsk6713bsl.lib Es la BSL Board Support Library (biblioteca de soporte de tarjeta) contiene las funciones de soporte de nuestra placa de pruebas.
rts6700.lib Es una biblioteca con funciones usadas por algoritmos en DSPs de proposito general. Es una biblioteca con soporte de datos y funciones algebraicas y trigonomtricas.
2. Capture las ventanas y ajustes realizados en el CCS.

3/3

UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA Y TECNOLGIAS AVANZADAS IPN


PROCESADORES DIGITALES DE SEALES Prctica No. 3 Usodelamemoriaexternaparagrabarvoz

3. De que valor se debe seleccionar N de tal forma que se puedan grabar exactamente 10 segundos de voz? Si nuestra tasa de muestreo ocupada es de 8Khz (8000 muestras por segundo) necesitamos un buffer

N= 80,000
4. Qu capacidad de memoria RAM requiere almacenar 10 segundos de voz a una frecuencia de muestreo de 16 000 muestras por segundo? Asuma que cada posicin de memoria es de 8 bits. 160000 bits de muestras. = 19.54Kbytes 5. Qu funcin tiene el archivo: C6713dskinit.h? Imprima su contenido.

Es el archivo cabecera con los prototipos de funcin. Configuracin del cdec de chip, entrada de micrfono, la ganancia de entrada.
6. Qu capacidad tiene en la memoria: IVECS, IRAM, SRAM_EXT y FLASH? De acuerdo al archivo C6713DSK.cmd donde el contenido se ha mostrado previamente las secciones cuentan con las siguientes capacidades. IVECS: 68 bytes IRAM: 24Kbyte SRAM_EXT: 2Mbyte FLASH: 16Kbyte

4/3

UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA Y TECNOLGIAS AVANZADAS IPN


PROCESADORES DIGITALES DE SEALES Prctica No. 3 Usodelamemoriaexternaparagrabarvoz

Conclusiones CABRERA CORONA CESAR Como pudimos observar la memoria interna de nuestro DSP es pequea para aplicaciones como la voz y por eso es bastante til usar la memoria externa con la que cuenta el chip 6713 sin embargo siempre hay que tener en cuenta al hacer aplicaciones para tiempo real, ya que tenemos que recordar que el acceso a la memoria externa siempre ser ms lento que a la interna. Bibliografa [1] Code Composer Studio IDE Getting Started Guide, User's Guide. SPRU509f. [2] F. J. Barrero Garca, S. L. Toral Marn, M. Ruiz Gonzlez, Procesadores Digitales de Seal de altas prestaciones de Texas Instruments, Mc Graw-Hill, 2005. [3] R. Chassaing, Digital Signal Processing and Applications with the C6713 and C6416 DSK, WileyInterscience, 2005. [4] S. A. Tretter, Communication System Design Using DSP Algorithms, with Laboratory Experiments for the TMS320C6713TM DSK, Springer 2008.

5/3

You might also like