Sunteți pe pagina 1din 17

UPIITA-IPN

Telemtica Medina Avils Irving Ivan Padilla Gonzlez Ricardo Axel 2010640344

Prctica 5
Medina Avils Irving Ivan Padilla Gonzlez Ricardo Axel
Acceso al puerto digital de E/S GPIO Dispositivos Programables
Profesor: Juan Manuel Madrigal Bravo

27 de febrero de 2013

Dispositivos Programables 1

Objetivo
Acceder al puerto digital de entrada salida de propsito general en modo lectura y en modo escritura.

Antecedentes
Arquitectura del TMS320C6713
Arquitectura del TMS320C6713 La familia TMS320C6000 dispone de un perifrico especfico para implementar entradas y salidas digitales de propsito general, denominado GPIO. Este perifrico permite manejar 16 lneas de entrada y salida, en las que adems de leer o escribir los datos que se necesiten, se pueden detectar cambios de nivel en las seales, generando peticiones de interrupcin a la CPU y eventos al controlador EDMA. La figura siguiente muestra el diagrama a bloques del DSK C6713. Observar el bloque de expansin de memoria al cual se accede a travs del conector J4 y el bloque de expansin de perifricos al cual se accede a travs del conector J3.

Registros del GPIO Registro de habilitacin del GPIO (GPEN) Registro de direccin del GPIO (GPDIR) Registro de valor del GPIO (GPVAL) Registro de transiciones de nivel alto (GPDH) y del nivel bajo (GPDL) del GPIO. Registros de mscaras a nivel bajo y alto del GPIO (GPLM) y (GPHM). Registro de polaridad de la peticin de interrupcin a la CPU o de evento a la EDMA (GPPOL) Registro de control global del GPIO (GPGC).

Dispositivos Programables 2

La figura siguiente muestra la localizacin fsica de los conectores J1, J4 y J3.

Dispositivos Programables 3

Arquitectura del TMS320C6713

Dispositivos Programables 4

La tabla siguiente muestra los pines del conector de expansin HPI J1. Para la presente prctica, los pines de inters son: GP0[0] pin 16, GP0[1] pin 44, GP0[2] pin 80, GP0[3] pin 15, GP0[8] pin 19, GP0[9] 22, GP0[10] pin 21, GP0[11] pin24, GP0[12] pin 23, GP0[13] pin 26, GP0[14] pin 25, GP0[15] pin 28.

Dispositivos Programables 5

La tabla siguiente muestra los pines del conector de expansin de perifricos J3. Para la presente prctica, los pines de inters son el GP0[4] (INT_EXT4) pin 53, GP0[5] (INT_EXT5) pin 48, GP0[6] (INT_EXT6) pin 67, GP0[7] (INT_EXT7) pin 68.

Dispositivos Programables 6

Material y Equipo
1 kit de desarrollo DSK6713 Computadora con CCS y puerto USB 4 buffers 74LS245 32 leds 32 resistencias de 330 Cables estaados de buen tamao 1 protoboard. 1 fuente de 5 V.

Desarrollo
Se requiere dar de alta el GPIO por medio de los switches de configuracin. 1. Crear un proyecto llamado DSP05_gpio.pjt. 2. Agregue el archivo de comandos: c6713dsk.cmd (este archivo forma parte de [3]) 3. Escriba el siguiente cdigo en C y agregarlo al proyecto (este archivo est basado en [3]) // DSP05_gpio_escritura #include <stdio.h> #include <stdlib.h> #include <math.h> #include <csl_gpio.h> #include <csl_gpiohal.h>

// CODIGO PARA DAR DE ALTA EL GPIO GPIO_Handle gpio_handle; /* handle para el GPIO */ //Configuracin de los registros del GPIO GPIO_Config gpio_config = { 0x00000000, // gpgc = Modo Passthrough de Interrupciones y control directo sobre GP0 0x0000FFFF, // gpen = Todos los pines de GPIO de 0 a 15 habilitados // 0x00000000, // gdir = Todos los pines de GPIO como entradas 0x0000FFFF, // gdir = Todos los pines de GPIO como salidas 0x00000000, // gpval = Guarda el nivel lgico de los pines 0x00000000, // gphm all interrupts disabled for io pins

Dispositivos Programables 7

0x00000000, // gplm all interrupts to cpu or edma disabled 0x00000000 // gppol -- default state */ };

main() { gpio_handle = GPIO_open( GPIO_DEV0, GPIO_OPEN_RESET); GPIO_config(gpio_handle,&gpio_config); GPIO_pinEnable(gpio_handle,GPIO_PIN0 | GPIO_PIN1); GPIO_write(gpio_handle,GPIO_PIN0|GPIO_PIN1|GPIO_PIN2|GPIO_PIN3|GPIO_PIN4|GPIO_PIN5|GPIO_PIN6|GPIO_PIN7| GPIO_PIN8|GPIO_PIN9|GPIO_PIN10|GPIO_PIN11|GPIO_PIN12|GPIO_PIN13|GPIO_PIN14|GPIO_PIN15,0x0000); }//end of main

4. Dentro del protoboard, deber tener armado y cableado los leds, las resistencias y los bfferes 74LS245. 5. Conecte los pines (del conector J1) mencionados a las entradas de los bffers 74LS245 por medio de cables estaados de una adecuada longitud. 6. De preferencia el protoboard deber ser alimentado con su propia fuente de 5 V. Si este es el caso, tanto el DSK como el protoboard debern tener una tierra comn. 7. Compile, cargue el archivo .out a la memoria del DSP y ejecute paso a paso usando el depurador. Visualice el resultado en los leds. 8. Si no se tiene un display hecho a base de barras de leds, se puede usar el depurador del CCS para visualizar el dato escrito en la GPIO. 9. En el men principal de click en lo siguiente: View Watch Window. Cuando se abra la ventana de monitoreo, dentro de la pestaa watch1 colocar el nombre de las variables (GPIO_PIN0) y seleccionar el tipo de formato numrico que se requiera. 10. Repetir un proceso similar, pero ahora utilizando GPIO para leer datos. En este caso, se debe emplear un protoboard que contenga dipswitches para introducir datos al GPIO. 12. Utilice el siguiente cdigo fuente: // DSP05_gpio_lectura .c #include #include #include #include <stdio.h> <stdlib.h> <math.h> <csl_gpio.h>

Dispositivos Programables 8

#include <csl_gpiohal.h> // INICIA CODIGO C ESTANDAR Uint32 Current_dir; Uint32 PinID= GPIO_PIN15|GPIO_PIN14|GPIO_PIN13|GPIO_PIN12|GPIO_PIN11|GPIO_PIN10|GPIO_PIN9|GPIO_PIN8|GPIO_PIN7|GPIO_PI N6|GPIO_PIN5|GPIO_PIN4|GPIO_PIN3|GPIO_PIN2|GPIO_PIN1|GPIO_PIN0; Uint32 val; // CODIGO PARA DAR DE ALTA EL GPIO GPIO_Handle gpio_handle; /* handle para el GPIO */ //Configuracin de los registros del GPIO GPIO_Config gpio_config = { 0x00000000, // gpgc = Modo Passthrough de Interrupciones y control directo sobre GP0 0x0000FFFF, // gpen = Todos los pines de GPIO de 0 a 15 habilitados 0x00000000, // gdir = Todos los pines de GPIO como entradas //0x0000FFFF, // gdir = Todos los pines de GPIO como salidas 0x00000000, // gpval = Guarda el nivel lgico de los pines 0x00000000, // gphm all interrupts disabled for io pins 0x00000000, // gplm all interrupts to cpu or edma disabled 0x00000000 // gppol -- default state */ }; main() { gpio_handle = GPIO_open( GPIO_DEV0, GPIO_OPEN_RESET); GPIO_config(gpio_handle,&gpio_config); GPIO_reset(gpio_handle); GPIO_pinEnable(gpio_handle,PinID); Current_dir = GPIO_pinDirection(gpio_handle,PinID,GPIO_INPUT); while(1) { //val = GPIO_pinRead (gpio_handle,PinID); val = GPIO_read(gpio_handle,PinID); printf("%i \n ", val); } } //end of main

Dispositivos Programables 9

Cuestionario
1. Qu aplicacin tiene la interfaz GPIO? Estos grupos de pines en un DSP pueden habilitarse como entradas o salidas y se usan para propsitos de control, aunque tambin se pueden usar para transferencia de datos. El perifrico GPIO proporciona pins dedicados de propsito general que se pueden configurar como entradas o como salidas. Cuando se configura como una salida, se puede escribir en un registro interno para controlar el estado que obtendr en el pin de salida. Cuando se configura como una entrada, se puede detectar el estado de la entrada por lectura del estado de un registro interno. 2. Coloque los registros del GPIO, sus campos y modos de configuracin GPIO Enable Register (GPEN)

Dispositivos Programables 10

GPIO Direction Register (GPDIR)

GPIO Value Register (GPVAL)

Dispositivos Programables 11

GPIO Delta High Register (GPDH)

Dispositivos Programables 12

GPIO Delta Low Register (GPDL)

GPIO High Mask Register (GPHM)

Dispositivos Programables 13

GPIO Low Mask Register (GPLM)

Dispositivos Programables 14

GPIO Global Control Register (GPGC)

Dispositivos Programables 15

Conclusiones
Medina Avils Irving Ivan

Dispositivos Programables 16

Padilla Gonzlez Ricardo Axel

Bibliografa
[1] SPRU189 TMS320C6000 CPU and Instruction Set Reference Guide. The CPU architecture, pipeline, instruction set, and interrupts for the TMS320C6000 digital signal processors. See also the manual update (SPRZ168). [2] SPRZ168 Manual Update to TMS320C6000 CPU and Instruction Set Reference Guide. This Manual Update Sheet describes changes for the TMS320C6000 CPU and Instruction Set Reference Guide. [3] R. Chassaing, Digital Signal Processing and Applications with the C6713 and C6416 DSK, Wiley-Interscience, 2005. [4] S. A. Tretter, Communication System Design Using DSP Algorithms, with Laboratory Experiments for the TMS320C6713TM DSK, Springer 2008. [5] http://www.ti.com/lit/ug/spru584a/spru584a.pdf

S-ar putea să vă placă și