You are on page 1of 125

UNIVERSIDAD DE MAGALLANES

FACULTAD DE INGENIERA
Departamento de Electricidad

Programacin de DSP a travs de Herramientas disponibles en


Matlab 7.0 / Simulink

TRABAJO DE TITULACIN PARA OPTAR AL TTULO DE INGENIERO EN ELECTRICIDAD MENCIN


ELECTRONICA INDUSTRIAL

Cristian Erardo Miranda Barrientos

Profesor gua: Rolando Aguilar Crdenas

Punta Arenas, Chile


2011

P g i n a | ii

P g i n a | iii

Agradecimientos
Quiero expresar mis ms sinceros agradecimientos a todas las personas
que colaboraron en el desarrollo de este trabajo de titulacin.
Tambin merece mencin significativa el profesor Rolando Aguilar por su
apoyo para el desarrollo de este proyecto por su gua y ayuda.
Finalmente agradezco a mis familiares y amigos por su apoyo y
comprensin.

Pgina |v

Resumen
El presente trabajo de titulacin presenta la programacin de un
procesador digital de seales (DSP), a travs del software Matlab / Simulink,
como una forma alternativa a la programacin convencional de estos
dispositivos. El DSP seleccionado para el desarrollo del proyecto fue el
TMS320F28335 de la empresa Texas Instrument, y la tarjeta de desarrollo
XDS100 emulator. La programacin del DSP se ejecuto con el subprograma de
Matlab / Simulink Real-Time Workshop encargado de la creacin de cdigo en
lenguaje C. Este programa crea un cdigo ejecutable solamente en ambiente
Matlab, por lo tanto se hizo necesario modificar dicho cdigo para que sea
ejecutable en el DSP que se est utilizando. Por esto se recurri a otro
subprograma de Matlab denominado Embedded IDE Link. La particularidad de
este programa es lograr modificar el cdigo para que sea ejecutable en
plataformas especficas, este programa tiene soporte para diferentes modelos
de procesadores de la empresa Texas Instrument y en especfico del modelo
que se utiliz en el proyecto, se hizo de gran utilidad para el desarrollo de esta
herramienta de programacin. Por ltimo como se tiene un cdigo ejecutable
para una plataforma de hardware especfica, tambin se utiliz otra herramienta
de Matlab, el software Target Support Package el cual ofrece bloques que
simulan mdulos y perifricos del procesador. Son de gran utilidad ya que
cuando se procede a la generacin de cdigo estos bloques automticamente
se cargan todas las bibliotecas de funciones y archivos de cabecera necesarios
para la programacin de estos.

P g i n a | vi

Tabla de contenido
1.1

Introduccin al trabajo de ttulo..................................................................................... 2

1.2

Objetivos y alcances del trabajo de ttulo.................................................................... 3

1.3

Estructura del trabajo de ttulo. ..................................................................................... 4

2.1

Introduccin...................................................................................................................... 6

2.2

Procesamiento digital de seales................................................................................. 7

2.3

Elementos bsicos de un sistema de procesamiento digital.................................... 7

2.4

Conversin Anloga-Digital. .......................................................................................... 9

2.5

Conversin Digital-Anloga. .......................................................................................... 9

2.6

Procesador digital de seales ..................................................................................... 10

2.7

Introduccin al DSP. ..................................................................................................... 11

2.8

Procesador digital de seal TMS320f28335............................................................. 13

2.8.1

Perifricos............................................................................................................... 14

3.1

Introduccin.................................................................................................................... 16

3.2

Software de desarrollo y de aplicacin. ..................................................................... 17

3.3

Matlab 7 versin 2010. ................................................................................................. 17

3.3.1

Simulink. ................................................................................................................. 19

3.3.1.1

Bibliotecas de Simulink. ............................................................................... 19

3.3.2

Toolbox Embedded IDE link. ............................................................................... 20

3.3.3

Toolbox Real Time Workshop Embedder Coder. ............................................ 20

3.3.4

Toolbox Target Support Package ....................................................................... 20

3.3.5

IDE Link incrustado (Embedded IDE link)......................................................... 21

3.3.5.1

Introduccin Toolbox Embedded IDE link..................................................... 21

3.3.5.2

Conjunto de bloques disponibles en Embedded IDE Link. ........................ 23

3.3.5.3

Bloque TI CCS (Texas Instrument Code composer Studio). ..................... 23

3.3.5.3.1

Tipo de tarjeta (Board Type)........................................................................ 25

3.3.5.3.2

Procesador (Processor). .............................................................................. 25

3.3.5.3.3

Reloj CPU (CPU Clock)................................................................................ 25

3.3.5.3.4

Soporte tarjeta (Board Support).................................................................. 25

3.3.5.3.5

Obtener el IDE (Get from IDE). ................................................................... 26

3.3.5.4

Configuracin de los perifricos.................................................................. 26

3.3.5.4.1

ADC Conversor anlogo / digital. ............................................................... 26

P g i n a | vii

3.3.5.4.1.1

ADCLKS...................................................................................................... 27

3.3.5.4.1.2

CPS. ............................................................................................................ 27

3.3.5.4.1.3

ACQ_PS. .................................................................................................... 27

3.3.5.4.1.4

OFFset. ....................................................................................................... 27

3.3.5.4.2

Mdulo con controlador de rea de red mejorada (eCAN)..................... 28

3.3.5.4.2.1

Prescalador tasa de baudios (Baud Rate Prescaler). ......................... 28

3.3.5.4.2.2

SAM............................................................................................................. 28

3.3.5.4.2.3

SBG ............................................................................................................. 29

3.3.5.4.2.4

SJW ............................................................................................................. 29

3.3.5.4.2.5

TSEG1 ........................................................................................................ 29

3.3.5.4.2.6

TSEG2 ........................................................................................................ 29

3.3.5.4.2.7

Asignacin pin (Tx) ................................................................................... 29

3.3.5.4.2.8

Asignacin pin (Rx) ................................................................................... 29

3.3.5.4.3

Mdulo de captura mejorada (Enhanced Capture eCAP). ..................... 30

3.3.5.4.3.1

Asignacin pin ECAP1. ............................................................................ 30

3.3.5.4.3.2

Asignacin pin eCAP2.............................................................................. 30

3.3.5.4.3.3

Asignacin pin eCAP3 eCAP4. ............................................................... 30

3.3.5.4.4

Modulacin por ancho de pulso mejorada (ePWM)................................. 31

3.3.5.4.4.1

Asignacin pin SYNCI. ............................................................................. 31

3.3.5.4.4.2

Asignacin pin SYNCO. ........................................................................... 31

3.3.5.4.5

Circuito inter-integrado (I2C). ...................................................................... 32

3.3.5.4.5.1

Modo (Mode).............................................................................................. 32

3.3.5.4.5.2

Formato de direcciones (Addresing Format). ....................................... 32

3.3.5.4.5.3

Registro de direccin propia (Own address register). ......................... 33

3.3.5.4.5.4

Contador de bit (Bit count)....................................................................... 33

3.3.5.4.5.5

Mdulo frecuencia de reloj (Module clock frecuency). ........................ 33

3.3.5.4.5.6

Mdulo Prescalador de reloj (IPSC)....................................................... 33

3.3.5.4.5.7

Divisor de tiempo en baja del reloj patrn (Master clock low-time

divider).

...................................................................................................................... 34

3.3.5.4.5.8

Divisor de tiempo en alta del reloj patrn (Master clock high-time

divider).

...................................................................................................................... 34

3.3.5.4.5.9

Habilitacin bucle de regreso (Enable loopback)................................. 34

3.3.5.4.6

Habilitacin interrupcin Tx (Enable Tx interrupt).................................... 34

P g i n a | viii

3.3.5.4.6.1

Habilitacin interrupcin Rx (Enable Rx interrupt). .............................. 34

3.3.5.4.6.2

Habilitacin interrupcin de sistema (Enable system interrupt) ......... 34

3.3.5.4.7

Interfaz de comunicacin serie (SCI)........................................................ 35

3.3.5.4.7.1

Tasa de baudios (Baud rate)................................................................... 35

3.3.5.4.7.2

Modo de bloqueo (Blocking mode)......................................................... 35

3.3.5.4.7.3

Longitud de carcter en bits (Character length bits)............................ 36

3.3.5.4.7.4

Modo de comunicacin (Communication mode).................................. 36

3.3.5.4.7.5

Orden de los datos en bytes (Data byte order). ................................... 36

3.3.5.4.7.6

Cantidad de datos en transmisin (Data swap width). ........................ 36

3.3.5.4.7.7

Habilitacin bucle de regreso (Enable Loopback). .............................. 37

3.3.5.4.7.8

Nmero de bit de parada (Number of stop bits). .................................. 37

3.3.5.4.7.9

Modo paridad (Parity mode). ................................................................... 37

3.3.5.4.8

Modo de suspensin..................................................................................... 38

3.3.5.4.8.1

Asignacin de pines Rx (Pin assignment Rx)....................................... 38

3.3.5.4.8.2

Asignacin de pines Rx (Pin assignment Tx). ...................................... 38

3.3.5.4.9

Interfaz de perifricos serie (SPI). .............................................................. 39

3.3.5.4.9.1

Factor de tasa de baudios (Baud rate factor). ...................................... 39

3.3.5.4.9.2

Fase de reloj (Clock phase)..................................................................... 39

3.3.5.4.9.3

Polaridad de reloj (Clock polarity)........................................................... 40

3.3.5.4.9.4

Modo de suspensin (Suspension mode). ............................................ 40

3.3.5.4.9.5

Bits de datos (Data bits)........................................................................... 40

3.3.5.4.9.6

Habilitacin bucle de regreso (Enable Loopback). .............................. 40

3.3.5.4.9.7

Habilitacin modo tres cables (Enable 3wire mode). ........................ 40

3.3.5.4.9.8

Habilitacin FIFO (Enable FIFO). ........................................................... 41

3.3.5.4.9.9

Nivel de interrupcin FIFO Rx (FIFO interrupt level (Rx)). ................. 41

3.3.5.5

Nivel de interrupcin FIFO Tx (FIFO interrupt level (Tx)). ...................... 41

3.2.5.5.1

Retardo de transmisin FIFO (FIFO transmit delay). .............................. 41

3.3.5.5.2

Modo................................................................................................................ 41

3.3.5.5.3

Asignacin pin CLK....................................................................................... 41

3.3.5.5.4

Asignacin pin SOMI. ................................................................................... 41

3.3.5.5.5

Asignacin de pin STE (Pin de habilitacin para transmisin en modo

esclavo). .......................................................................................................................... 42
3.3.5.5.6

Asignacin pin SIMO. ................................................................................... 42

P g i n a | ix

3.3.5.6.0

Codificador de cuadratura por ancho de pulso (eQEP). ......................... 43

3.3.5.6.1

Asignacin pin EQEP1A. ............................................................................. 43

3.3.5.6.2

Asignacin pin EQEP1B. ............................................................................. 43

3.3.5.6.3

Asignacin pin EQEP1S. ............................................................................. 43

3.3.5.6.4

Asignacin pin EQEP1I. ............................................................................... 43

3.3.5.7.0

Pines entrada salida de propsito general (GPIO). ................................. 44

3.3.5.7.1

Sync to SYSCLKOUT................................................................................... 44

3.3.5.7.2

Calificacin usando 3 muestras (Qualification using 3 samples). ......... 45

3.3.5.7.3

Calificacin usando 6 muestras (Qualification using 6 samples). ......... 45

3.3.5.7.4

Prescalador del periodo de calificacin del muestreo (Qualification

sampling period prescaler). ............................................................................................. 45


3.3.5.8.0

Perro Guardin (Watchdog). ....................................................................... 47

3.3.5.8.1

Habilitacin de Perro guardin (Enable Watchdog)................................. 47

3.3.5.8.2

Contador de seal de reloj........................................................................... 47

3.3.5.8.3

Periodo del timer en segundos. .................................................................. 48

3.3.5.8.4

Tiempo fuera de ejecucin. ......................................................................... 48

3.3.5.9.0

Cargar a la memoria flash (Flash Loader)................................................. 49

3.3.5.9.1

Habilitacin de programacin memoria Flash. ......................................... 49

3.3.5.9.2

Deteccin sectores memoria Flash y borrado de archivos COFF......... 50

3.3.5.9.3

Borrado seleccionado de sectores. ............................................................ 50

3.3.5.9.4

Locacin especfica API............................................................................... 50

3.3.5.9.5

Ejecucin. ....................................................................................................... 50

3.3.6.0.0

Acceso directo a memoria (DMA)............................................................... 51

3.3.6.0.1

Habilitacin canal DMA. ............................................................................... 51

3.3.6.0.2

Tamao de dato. ........................................................................................... 51

3.3.6.0.3

Fuente de interrupcin.................................................................................. 52

3.3.6.0.4

External pin (GPIO)....................................................................................... 52

3.3.6.0.5

Generate interrupt. ........................................................................................ 52

3.3.6.0.6

Tamao (Size). .............................................................................................. 53

3.3.6.0.6.1

Rfaga (Burst)............................................................................................ 53

3.3.6.0.6.2

Transferencia (Transfer). ......................................................................... 53

3.3.6.0.6.3

Envoltura SRC (SRC wrap). .................................................................... 53

3.3.6.0.6.4

Envoltura DST (DST wrap). ..................................................................... 53

Pgina |x

3.3.6.0.7

Fuente (Source)............................................................................................. 54

3.3.6.0.8

Destino (Destination). ................................................................................... 55

3.3.6.0.9

Modo (Mode)................................................................................................. 56

3.3.6.0.9.1

Modo de habilitacin de un disparo (Enable one shot mode)............ 56

3.3.6.0.9.2

Habilitacin Sync (Sync enable). ............................................................ 56

3.3.6.0.9.3

Habilitacin modo continuo (Enable continuous mode)...................... 57

3.3.6.0.9.4

Habilitacin modo DST Sync (Enable DST Sync mode). ................... 57

3.3.6.0.9.5

Configurar canal 1 para prioridad alta (Set channel 1 to highest

priority).

...................................................................................................................... 57

3.3.6.0.9.6

Habilitacin de interrupcin de rebalse (Enable overflow interrupt).. 57

3.3.7.0.0
3.3.7

PLL. ................................................................................................................. 59

REAL TIME WORKSHOP.................................................................................... 61

3.3.7.1

Introduccin al Real-Time Workshop......................................................... 61

3.3.7.2

Capacidades del Real Time Workshop. .................................................... 62

3.3.7.3

Descripcin del procedimiento realizado por el software para la

generacin de cdigo y su posterior ejecucin en el hardware................................. 63


3.3.7.4

Cdigo generado para DSP. ....................................................................... 64

3.3.7.4.1

Generacin de cdigo. ................................................................................. 65

3.3.7.4.2

Configuracin parmetros para compilacin y ejecucin de cdigo..... 65

3.3.7.4.3

Configuracin parmetros SOLVER. ......................................................... 66

3.3.7.4.4

Configuracin parmetros implementacin de hardware. ...................... 66

3.3.7.4.5

Carga y Ejecucin del Programa Objeto. .................................................. 70

3.3.8

TARGET SUPPORT PACKAGE......................................................................... 72

3.3.8.1

Introduccin Toolbox Target Support Package ........................................ 72

3.3.8.2

Caractersticas principales........................................................................... 73

3.3.8.3

Opciones de configuracin de Bloques de Target Support Package

utilizados en el proyecto................................................................................................... 75
3.3.8.3.1

Bloque Conversor anlogo/digital............................................................... 75

3.3.8.3.1.1

Parmetros de configuracin Bloque ADC. .......................................... 76

3.3.8.3.1.2

Mdulo A..................................................................................................... 76

3.3.8.3.1.3

Mdulo B..................................................................................................... 76

3.3.8.3.1.4

Mdulo A B................................................................................................. 76

3.3.8.3.1.5

Modo de conversin.................................................................................. 76

P g i n a | xi

3.3.8.3.1.6

Comienzo de conversin.......................................................................... 76

3.3.8.3.1.7

Tiempo de muestreo................................................................................. 77

3.3.8.3.1.8

Tipo de datos. ............................................................................................ 77

3.3.8.3.1.9

Configuracin canales de entrada Bloque ADC................................... 78

3.3.8.3.2.0

Nmero de conversiones (Number of conversions). ........................... 78

3.3.8.3.2.1

Conversion no............................................................................................ 78

3.3.8.3.2.2

Uso de mltiples puertos de salida (Use multiple output ports)......... 78

3.3.8.3.3

Bloque Modulador de ancho de pulso mejorado...................................... 79

3.3.8.3.3.1

Parmetros de configuracin general del Bloque ePWM ................... 80

3.3.8.3.3.2

Configuracin General.............................................................................. 80

3.3.8.3.3.3

Mdulo (Module)........................................................................................ 80

3.3.8.3.3.4

Unidades del periodo del Timer (Timer period Units).......................... 80

3.3.8.3.3.5

Especificacin del periodo del timer via (Specify timer period via). .. 80

3.3.8.3.3.6

Periodo fuente del Timer (Timer period source)................................... 80

3.3.8.3.3.7

Periodo del Timer (Timer period)............................................................ 80

3.3.8.3.3.8

Modo de conteo (Counting mode). ......................................................... 80

3.3.8.3.3.9

Divisor de Prescalador del reloj TB (TB clock prescaler divider)....... 81

3.3.8.3.4

Especificaciones mdulo ePWMA ePWMB .............................................. 82

3.3.8.3.4.1

Unidades del registro del contador comparador A (CMPA). .............. 82

3.3.8.3.4.2

Va especfica del CMPA ......................................................................... 82

3.3.8.3.4.3

Valor CMPA (CMPA value)...................................................................... 82

3.3.8.3.5

Bloques de Interfaz serial de perifricos (SPI). ........................................ 83

3.3.8.3.5.1

Parmetros de configuracin general del Bloque SPI......................... 84

3.3.8.3.5.2

Longitud de dato (Data length)................................................................ 84

3.3.8.3.5.3

Error en el estado de recepcin de salida (Output receive error

status).

...................................................................................................................... 84

3.3.8.3.5.4

Habilitacin de estado de bloqueo (Enable blocking status).............. 84

3.3.8.3.5.5

Error en el estado de salida de transmisin (Output transmit error

status).

...................................................................................................................... 85

3.3.8.3.5.6

Habilitacin modo de bloqueo (Enable blocking mode)...................... 85

3.3.8.3.5.7

Interrupcin despus de dato transmitido (Post interrupt when data is

transmitted). ...................................................................................................................... 85
3.3.8.3.6

Bloque de Interfaz de comunicacin serie (SCI)...................................... 86

P g i n a | xii

3.3.8.3.6.1

SCI receive................................................................................................. 86

3.3.8.3.6.2

SPI Transmit............................................................................................... 86

3.3.8.3.6.3

Parmetros de configuracin general del Bloques SCI....................... 87

3.3.8.3.6.4

Mdulo SCI (SCI Module). ....................................................................... 87

3.3.8.3.6.5

Paquete adicional al comienzo (Additional Package header)............ 87

3.3.8.3.6.6

Paquete adicional al trmino (Additional Package terminator). ......... 87

3.3.8.3.6.7

Tipo de dato (Data Type). ........................................................................ 87

3.3.8.3.6.8

Longitud de dato (Data Length). ............................................................. 87

3.3.8.3.6.9

Salida inicial (Initial output)..................................................................... 88

3.3.8.3.7.0

Mdulo SCI de transmisin (SCI Transmit Module). ........................... 88

3.3.8.3.7.1

Paquete adicional al comienzo (Additional Package header)............ 88

3.3.8.3.7.2

Paquete adicional al trmino (Additional Package terminator). ......... 88

3.3.8.3.7.3

Habilitacin de interrupcin FIFO (Enable FIFO interrupt). ................ 88


Bloque GPIO Puerta de entrada/salida de propsito general................ 89

3.3.8.3.8
3.3.8.3.8.1

Parmetros de configuracin general del Bloques GPIO ................... 90

3.3.8.3.8.2

Grupo GPIO (GPIO Group). .................................................................... 90

3.3.8.3.8.3

Tiempo de muestreo (Sample time). ...................................................... 90

3.3.8.3.8.4

Tipo de dato (Data type). ......................................................................... 90

3.4

Code composer studio. ............................................................................................ 91

3.4.1

Caractersticas................................................................................................... 92

3.4.2

Visualizacin de entorno del programa CCSv3.3. ....................................... 94

4.1

Introduccin................................................................................................................ 98

4.2

Mdulo SCI (Interfaz de comunicacin serie)...................................................... 99

4.3

Mdulo PWM (Modulacin por ancho de pulso). .............................................. 101

4.4

Mdulo ADC (Conversor anlogo-digital). ......................................................... 102

4.5

Mdulo SPI (Interfaz serial para perifricos). .................................................... 103

4.6

Mdulo GPIO (Puertas de entrada/salida de propsito general)..................... 107

5.1

Conclusiones. .......................................................................................................... 110

5.2

Referencias. ............................................................................................................. 111

P g i n a | xiii

ndice de Tablas

TABLA 1:

Configuracin Parametros Solver65

TABLA 2:

Configuracin Embedded Hardware (Implementacin de Hardware).65

TABLA 3:

Configuracin Real Time Workshop66

TABLA 4:

Configuracin TI c2000 seleccin de plataforma.67

TABLA 5:

Configuracin TI c2000 generacin de cdigo.....67

Captulo I
Introduccin

Pgina |2

1.1

Introduccin al trabajo de ttulo.


En el siguiente trabajo de titulacin se presenta la programacin de un

procesador digital de seales (DSP). La eleccin de este dispositivo


bsicamente se realiz por la potencialidad de uso en variados mbitos de
produccin, como son el control de mquinas, las telecomunicaciones, el
procesamiento de seales y la electrnica industrial. La programacin del
dispositivo se realiz a travs de Matlab / Simulink. Este software especializado
y de alto potencial para diferentes aplicaciones en el rea de la ingeniera es
normalmente usado durante cursos de pregrado de la carrera.
El objetivo principal del proyecto consisti en programar un DSP
utilizando las herramientas de Matlab / Simulink, facilitando este proceso que
por lo general se realiza con un lenguaje de programacin en C y un compilador
dedicado. El tiempo requerido y grado de complejidad para dominar estas
rutinas requiere de un usuario avanzado.
Sin embargo, la propuesta del presente trabajo, es utilizar la
programacin por medio de diagramas de bloques disponibles en Matlab /
Simulink. Esta herramienta se hace muy interesante por el potencial que posee
de realizar y validar algunos conceptos desde una perspectiva diferente de los
DSPs, siempre recordando que el proyecto no pretende cambiar la forma de
programar DSPs sino desarrollar una herramienta alternativa a la programacin
de estos.
El DSP que se utiliz fue el TMS320F28335 y la tarjeta de desarrollo
XDS100 emulator de la empresa Texas Instrument, por el gran potencial que
posee para el rea de control, su operacin en punto flotante, el hardware
disponible y su bajo costo.
Por los motivos anteriormente mencionados, la programacin se realiz
con el software Matlab / Simulink y subprogramas tales como Real-Time
Workshop, Target Support Package y Embedded IDE Link.

Pgina |3

1.2

Objetivos y alcances del trabajo de ttulo.


Desarrollar una herramienta de programacin alternativa a la manera

convencional, a travs de modelos realizados en Matlab / Simulink.


Creacin de modelos en Simulink para ejecucin en el DSP
TMS320F28335 de la empresa Texas Instrument.
Generacin de cdigo en lenguaje C de un modelo creado en Matlab /
Simulink, con el software Real-Time Workshop.
Modificacin de cdigo para su ejecucin en Code Composer Studio.
Prueba de cdigos generados por Matlab/Simulink y su ejecucin en el
DSP TMS320F28335.

Pgina |4

1.3

Estructura del trabajo de ttulo.


Esta constituida por seis captulos organizados de la siguiente forma:
En el captulo uno se entrega una introduccin general.
En el captulo dos se introduce sobre el procesamiento digital de seales,

los elementos bsicos para este procedimiento y su importancia en los


procesos productivos.
En el captulo tres se presenta el desarrollo del proyecto, se revisa los
programas utilizados para la generacin de cdigo que se ejecutan en el DSP,
se detallan los procedimientos de creacin de modelos, la generacin de
cdigos, la modificacin de cdigo para un IDE especfico y depuracin de
modelos. Adems se describe cada opcin de configuracin en el proceso de
creacin del modelo en Simulink. Por ltimo se indica configuraciones previas y
necesarias para generar cdigo en una plataforma dada.
En el captulo cuatro se entregan los resultados obtenidos en la
programacin de los perifricos del procesador (mdulos GPIO, ADC, SCI, SPI
y PWM) y se presenta una descripcin de los modelos creados en Simulink y
cul fue su desempeo en el hardware.

Pgina |5

Captulo II
Introduccin al procesamiento digital de
seales

Pgina |6

2.1

Introduccin.
En el siguiente captulo se describe el procesamiento digital de seales

su evolucin en el tiempo, su importancia en los procesos productivos y los


elementos que se utilizan para la realizacin de este proceso. Se menciona en
forma bsica las caractersticas que posee este proceso sus ventajas y
desventajas. En este contexto tambin se hace referencia al procesador digital
de seales (DSP) utilizado en este proyecto (DSP TMS320f28335). Se
describen sus principales caractersticas (hardware y software). Por ltimo se
detallan las caractersticas que lo diferencian de otros DSP en el mercado.

Pgina |7

2.2

Procesamiento digital de seales.


El mundo contemporneo est representado por el cambio constante de

los diversos procesos, es por eso que cada da se desarrollan mquinas


sofisticadas, que tratan en lo posible de optimizar tiempo, espacio, costo,
consumo de energa. Hoy en da es posible encontrar en el mercado distintos
proveedores con microprocesadores y DSP compitiendo en precio, rendimiento
para realizar un proceso especfico. Su principal diferencia es su arquitectura,
que vara de acuerdo a las aplicaciones y necesidades, en la cual van a ser
requeridos.
Las tcnicas de procesamiento digital, ahora no son tan complicadas de
implementar como ocurra aos atrs. Hoy en da podemos realizar
aplicaciones tanto en el dominio digital como analgico, con un conjunto de
herramientas que este proyecto desea evaluar y explotar. La fabricacin en
serie de estos productos y su masificacin a nivel de aplicaciones, hacen que el
precio de los productos sea cada vez menor.
El mejor ejemplo de ello, es que la tarjeta de evaluacin utilizada para
este proyecto bordea solamente US$100 al comprar solo una unidad.

2.3

Elementos bsicos de un sistema de procesamiento digital.


En forma generalizada todo sistema ya sea simple o con mayor

complejidad se puede representar como se muestra en la figura 2.1.

Fig. 2.1. Diagrama de Bloques de un sistema tpico a lazo abierto

Pgina |8

Al trabajar un proceso en el dominio digital, ya no tenemos los problemas


encontrados en los sistemas analgicos, debido a que estos no son afectados
por la temperatura, vibraciones mecnicas y variaciones de tensin que pueden
llegar a influir drsticamente en los resultados del sistema.
Con la utilizacin del procesamiento digital de seales se supera un gran
conjunto de obstculos, alcanzndose:
o Aplicaciones ms Variables.
o Aplicaciones ms Eficientes.
Adicional a lo anterior el procesamiento digital de seales reduce:
o El nmero de Circuitos integrados en la Aplicacin.
o Tiempo de ejecucin del proyecto.
o Costo de desarrollo y hardware final.
o Consumo de Energa
El Procesamiento Digital de Seales es el conjunto de operaciones de
una(s) seal(es) en un hardware digital programado en lenguaje de alto como
de bajo nivel. En la prctica se refiere al procesamiento electrnico de seales
tales como sonido, radio y microondas usando tcnicas matemticas para
realizar transformaciones o extraer informacin. En el caso particular de los
DSP, son dispositivos altamente eficientes en el manejo de seales optimizadas
para procesamiento de seales en tiempo real.

Fig. 2.2. Tiempo de Muestreo/Espera/Procesamiento


Se dice que una aplicacin est en tiempo real si el Tiempo de Espera
0. Esta capacidad de procesamiento en tiempo real hace a los DSP ideales
para aplicaciones que no toleran retardos limitados.

Pgina |9

2.4

Conversin Anloga-Digital.
Las aplicaciones comunes de los DSP son en tiempo real, tales como el

sonido y ondas de radio que se originan en forma anloga. Una seal anloga
tiene la caracterstica de ser continua en el tiempo. Los computadores digitales,
manejan seales de forma discontinua, una serie de nmeros binarios, y esta
misma caracterstica poseen los DSP. Para ello es necesaria la transformacin
de las seales anlogas en digitales.

Fig. 2.3. Visualizacin de la conversin ADC.

Esta transformacin la realizan los Convertidores Analgicos Digitales


(ADC). Una vez terminada la etapa de conversin analgica-digital, los datos se
encuentran en el dominio digital en el DSP. Ntese que la limitante para que un
procesamiento digital ocurra, es la velocidad de conversin del ADC.

2.5

Conversin Digital-Anloga.
El conversor Digital-Anlogo es un dispositivo electrnico que, a partir de

un dato digital genera una seal anloga. Conceptualmente la conversin DAC


se muestra en la figura 1.3.

Fig. 2.4. Visualizacin de la conversin DAC.

P g i n a | 10

Al utilizar una seal anloga s(t) de conversin, por cada muestra de la


secuencia s[n], se produce a la salida, a intervalos de T segundos, una rplica
de la seal s(t) con amplitud proporcional al valor de la muestra.

2.6

Procesador digital de seales


Un DSP o Digital Signal Processor (Procesador Digital de Seales) es

un procesador especializado en el anlisis y procesamiento de seales en


tiempo real. Se caracteriza por disponer de funciones especializadas en el
tratamiento de seales tales como etapas de filtro, generacin PWM,
conversin, etc. Su hardware esta diseado para realizar operaciones en punto
flotante, lo que permite realizar casi cualquier operacin de los MIPS. Los
sistemas basados en DSP deben trabajar en tiempo real, capturando y
procesando informacin.
Dentro de las aplicaciones de inters con los DSP tenemos:
o Eliminar ecos en lneas de comunicacin.
o Hacer imgenes ms ntidas en rganos internos en los equipos
mdicos.
o Cifrar conversaciones en telfonos celulares para mantener privacidad.
o Analizar datos ssmicos para encontrar nuevas reservas de petrleo.
El DSP debe ser capaz de manejar la informacin durante las
transformaciones de anlogo a digital. La capacidad del procesador es una
funcin de su ancho de datos (el nmero de bits manipulados) y el tipo de
aritmtica que posee (punto fijo o flotante).
Cada tipo de procesador es ideal para un margen particular de
aplicaciones. Los DSP de 16 bits son ideales para sistemas de voz tales como
telfonos ya que ellos trabajan con un estrecho rango de frecuencias de audio.
Para aplicaciones de procesamiento de imgenes, grficos 3-D y simulaciones
cientficas necesitan un rango dinmico mucho mayor y por lo tanto requieren
procesadores de punto flotante de 32 bits y ADC de 24 bits.

P g i n a | 11

2.7

Introduccin al DSP.
Un DSP es un Procesador de Seales Digitales, cuyo objetivo en

cualquier sistema es de dar el tratamiento digital adecuado de las seales que


ingresan a este dispositivo, dentro de sus caractersticas podemos mencionar:
o Procesamiento de seales a muy altas frecuencias: con esto se logra que
el DSP este orientado a reflejar un producto en tiempo real (real-time),
gracias a sus muy bajos tiempos de retardos.
o Reprogramacin con solo actualizar el programa que reside en la
memoria del DSP, una aplicacin que se le puede dar a esta
caracterstica es la de actualizar tecnologa.
o Diseo ptimo, con repeticiones o lazos comunes en algoritmos de
procesamiento de seal. El set de instrucciones de los DSP son
pequeos y ptimos para operaciones de procesamiento digital con un
simple ciclo realizamos multiplicaciones y acumulacin.
o El DSP tiene modos de direccionamiento indirecto. Estos son
mecanismos de direccionamiento eficientes para los algoritmos de
procesamiento de seal.
o El DSP posee perifricos apropiados que brindan interfaces eficientes de
entrada y salida con otros dispositivos.
o En los DSP es posible acceder a memoria con una simple instruccin, en
otras palabras estos dispositivos tienen un relativo ancho de banda entre
su Unidad Central de Procesamiento (CPU) y memoria Flash, Sram etc.
Los procesadores digitales de seal DSP se clasifican de acuerdo al
requerimiento y a la aplicacin final. En nuestro caso se utiliza el DSP de la
empresa Texas Instrument, por lo que se hace una breve descripcin de cada
familia de procesadores.

P g i n a | 12

1) C2000 (C20x/24x/28x). Esta familia de procesadores es de muy bajo


costo y puede ser utilizado en sistemas de Control como por ejemplo:
Control de Motores.
Almacenamiento.
Control de Sistemas Digitales.
2) C5000 (C54x/55x). La caracterstica de esta familia es estar provista de
un

procesador

eficiente,

pues

proporciona

ms

MIPS

(Mega

Instrucciones por Segundo) por Watt/Dlar/Medida. Dentro de las


aplicaciones podemos citar:
Telfonos Celulares.
Reproductores de Audio.
Cmaras Digitales.
Modem, Telefona y VoIP.

3) C6000 (C62x/64x/67x). Este dispositivo fue diseado para un mximo


rendimiento, con una fcil programacin (entorno de programacin C,
Matlab, Code Composer Studio). Dentro de las aplicaciones podemos
mencionar:
Multi-canalizacin y Multi-funcin.
Estaciones base, para servicios inalmbricos.
Procesamiento de Imgenes.
Servidores Multi-media.
Video.
El proyecto no est orientado a ninguna aplicacin en particular como se
explic. El proyecto apunta al desarrollo de una herramienta de programacin
de cualquier procesador, pero como el hardware que se tuvo a disposicin es
de la serie C2000 nos enfocaremos en dichos procesadores. Se espera que
independientemente que es uno de la ms baja gama, el haber seleccionado un
dispositivo con procesamiento de punto flotante ampla y generaliza las
aplicaciones.

P g i n a | 13

2.8

Procesador digital de seal TMS320f28335.


Este DSP es miembro de la familia C2000, utiliza aritmtica de punto

flotante, tiene una velocidad de reloj de 150 MHz (6,67 ns), el ncleo funciona
con una tensin de 1.9 V/1.8 V, los dispositivos de entrada y salida funcionan a
3.3 V, la CPU funciona con 32 bits, la arquitectura del bus es Harvard, posee
una respuesta rpida al procesamiento de interrupciones, la programacin del
microprocesador puede ser en lenguaje C o C++, contiene 6 canales
controladores DMA tiene 16-32 bits para interfaces externas, la memoria flash
es de 256Kx16, la SARAM 34Kx16 y memoria ROM 8Kx16 .

Fig. 2.5. Diagrama de Bloques DSP TMS320F2833x

P g i n a | 14

2.8.1 Perifricos.
Los perifricos en un procesador tpico F2833x en general incluyen:
o 18 salidas Moduladoras de ancho de pulso (PWM).
o 6 salidas HRPWM Modulacin por ancho de pulso de alta resolucin.
o 6 entradas Enhanced Capture ECAP (Modo de Captura mejorada).
o 2 Mdulos codificadores de cuadratura mejorado (eQEP Enhanced
quadrature Encoder).
o 3 CPU Timers de 32 bits
o 3 Mdulos SCI Transmisor receptor asncrono universal (UART).
o 2 Mdulo con controlador de rea de red mejorada eCAN (Enhanced
controller area network).
o 2 Mdulos McBSP Bfer multicanal de puerto serie.
o 1 Mdulo SPI Interfaz de protocolo serie.
o 1 Bus circuito inter-integrado (

o Conversor anlogo-digital ADC de 12 bits


o Pines de propsito general de entrada/salida (GPIO).
o PLL Fase de lazo cerrado (Phase locked-loop).

Fig. 2.6. Procesador TMS320F28335 con la tarjeta de desarrollo XDS100.

P g i n a | 15

Captulo III
Herramientas de desarrollo para generacin
de cdigo

P g i n a | 16

3.1

Introduccin.
En el siguiente captulo se presenta la parte ms importante del proyecto,

se describen todos los programas que se utilizaron para la generacin de


cdigo ejecutable en el DSP TMS320F28335, y se detallan las opciones de
configuracin en cada proceso de la generacin de cdigo. En primera instancia
se hace referencia al software principal en el desarrollo de esta herramienta, el
denominado Matlab en su versin 2010 y tambin Simulink, sus caractersticas
y su importancia en la solucin de problemas del mbito de la ingeniera.
Adems se describen los toolboxes utilizados para el desarrollo del proyecto,
como son Embedded IDE Link, Real-Time Workshop y Target Support Package.
El primer Toolbox o conjunto de funciones es el encargado de brindar la
integracin del cdigo que ser generado para que pueda ser reconocido y
ejecutado en el ambiente de desarrollo integrado del DSP. En especfico, en el
software Code Composer Studio brindado por Texas Instrument para la
programacin de DSPs en lenguaje C, se describen la mayora de sus opciones
de configuracin y su participacin en el proceso de programacin del DSP. El
software Real-Time Workshop es el encargado de la generacin de cdigo a
partir de la interpretacin de un modelo creado en el software Simulink. En el
captulo se describen las capacidades del software, sus potencialidades y
limitaciones. Adems se mencionan los procedimientos de configuracin para
la creacin de cdigo para el DSP TMS320F28335. Finalmente se menciona el
Toolbox Target Support Package; este software ofrece bloques que simulan los
mdulos del DSP, donde agregando solamente estos bloques al modelo se
cargarn automticamente todos los archivos necesarios para la configuracin
de estos, facilitando en gran medida la programacin de los DSP.

P g i n a | 17

3.2

Software de desarrollo y de aplicacin.


Para la ejecucin del proyecto se utilizaron varias herramientas de

software de desarrollo, como tambin software de aplicacin, las mismas que


dada su potencia y flexibilidad son parte medular en la generacin de cdigo,
interaccin entre hardware y software, comunicacin entre diferentes software,
importacin y exportacin de informacin entre ellos. Dentro del software de
desarrollo se hizo uso de software muy potentes como lo son Matlab 7 versin
2010, Code Componer Studio versin 3.3 y la biblioteca especializada Simulink.
A continuacin se entrega una pequea introduccin a las herramientas de
desarrollo empleadas.

3.3

Matlab 7 versin 2010.


Matlab es un lenguaje de muy alto rendimiento para clculo matemtico.

Este software integra en un solo programa varias herramientas entre las cuales
podemos citar: clculos, visualizacin y programacin en un ambiente fcil de
usar, donde los problemas y soluciones son expresadas en una notacin
matemtica.
Matlab se puede usar tpicamente en:
o Matemtica y computacin.
o Desarrollo de algoritmos.
o Adquisicin de datos.
o Modelacin, simulacin y desarrollo de prototipos
o Anlisis de datos, exploracin y visualizacin.
o Grficos cientficos y de ingeniera.
o Desarrollo de aplicaciones, incluyendo una interfaz grfica de usuario.
o Y la ms importante para el desarrollo de este proyecto, generacin de
cdigo ejecutable fuera del ambiente Matlab/Simulink.
Matlab es un sistema interactivo en donde el elemento bsico de datos
es una matriz que no requiere ser dimensionada previamente. Esto permite
resolver varios problemas computacionales, especialmente aquellos que
involucran el uso de matrices y vectores adems de aplicaciones de gran
complejidad.

P g i n a | 18

El nombre Matlab proviene de Matrix Laboratory. Matlab ha evolucionado


a lo largo de los aos con la ayuda de varios usuarios. En la industria, Matlab es
la herramienta escogida para la investigacin de la alta productividad, desarrollo
y anlisis.
Matlab provee una familia de aplicaciones especficas llamadas
toolboxes, que permiten aprender y aplicar tecnologa especializada. Son una
extensa coleccin de funciones de Matlab (M-files) que extienden el ambiente
de Matlab para resolver problemas de alguna clase particular. Las reas en las
cuales se emplean son: procesamiento de seales, sistemas de control, redes
neurales, simulacin, etc. El entorno de Matlab consta de cinco partes
principales.
1. Ambiente de desarrollo: Este es un set de herramientas que ayudan a
utilizar las funciones y archivos de Matlab. Muchas de estas
herramientas son GUI (Interface de Usuario Grfica).
2. Biblioteca de funciones matemticas: Esta es una coleccin de
programas computacionales, los cuales van desde funciones como
suma, seno, coseno, aritmtica compleja, hasta funciones ms
sofisticadas como matriz inversa, funciones de Bessel, y transformadas
de Fourier.
3. El lenguaje Matlab: Lenguaje de alto nivel con instrucciones de control de
flujo, estructuras de datos, y programacin orientada a objetos.
4. Grficos: Matlab tiene facilidades para la visualizacin de vectores y
matrices como grficos para observar el comportamiento de los mismos.
5. Aplicacin de Interfaz de Programas de Matlab (API): Permite escribir
programas en lenguaje C y Fortran los cuales pueden interactuar con
Matlab.
El uso de Matlab en el desarrollo de este proyecto es esencial y
totalmente necesario ya que es el encargado de interpretar un modelo en un
lenguaje de bloques y ser transformado en un cdigo que posteriormente va
ser ejecutado en otro ambiente diferente a Matlab. Todo este proceso se puede
llevar a cabo gracias a Matlab y Simulink.

P g i n a | 19

3.3.1 Simulink.
Simulink es un software que se utiliza para modelar, simular y analizar
sistemas dinmicos. Simulink soporta sistemas que son lineales y no lineales,
modelados en tiempo continuo, discreto o un hbrido de ambos. Dichos
sistemas pueden ser de

diferentes etapas y pueden ser muestreadas a

diferentes tasas. Para la simulacin, Simulink provee una interfaz grfica para la
construccin de modelos como diagramas de bloques, para lo cual se usan
operaciones de clic y arrastre del mouse. Con esta interfaz, se pueden construir
modelos como si fuera con un lpiz y papel. Simulink ofrece una extensiva
librera de componentes lineales y no lineales, conectores, tambin se pueden
personalizar y crear bloques propios de acuerdo a la funcin que se requiera
por parte del programador. Luego de definir el modelo, se puede proceder a
simularlo, y los resultados de la simulacin pueden ser colocados en el
escritorio de Matlab para su posterior visualizacin y procesamiento. Al enlazar
Simulink con Real-Time Workshop, otra herramienta de Matlab, se puede
transferir cdigo al compilador CCS (Code Composer Studio) y posteriormente
desde este transferirlo al DSP.

3.3.1.1

Bibliotecas de Simulink.

La principal caracterstica de Simulink es la de condensar una gran


cantidad de bibliotecas en las llamadas cajas de herramientas (toolboxes), las
cuales a su vez despliegan los diferentes bloques que se utilizan. A
continuacin se enumeran algunas de las bibliotecas ms utilizadas en este
proyecto.
o IDE link incrustado (Embedded IDE link).
o Taller en tiempo real (Real Time Workshop).
o Taller en tiempo real con cdigo incrustado (Real Time Workshop
Embedder Coder).
o Paquete para el soporte de tarjetas (Target Support Package).

P g i n a | 20

3.3.2 Toolbox Embedded IDE link.


Este conjunto de herramientas (Toolbox), es el encargado de establecer
la comunicacin entre Simulink y el procesador que se encuentra montado
sobre una tarjeta de desarrollo. Se debe destacar que para trabajar con las
tarjetas de desarrollo eZDSP el software (Matlab/Simulink) posee una biblioteca
dedicada a este tipo de tarjeta con bloque diseados exclusivamente para
interactuar con dicho hardware. Como en el proyecto se utiliz una tarjeta de
desarrollo de bajo costo, XDS100 emulator, se utiliz el Embedded IDE link que
contiene un bloque llamado Custom Board (Tarjeta personalizada) que permite
configurar una tarjeta segn los requerimiento del usuario.

3.3.3 Toolbox Real Time Workshop Embedder Coder.


Este conjunto de herramientas (Toolbox) o software debido a su gran
utilidad y capacidad es de gran potencial para poder migrar las funciones
propias de Matlab a otros programas o hardware. La principal funcin del
programa es la generacin de cdigo de modelos de Simulink y programas
escritos en Matlab. En el proyecto es el encargado de interpretar y generar
cdigos en lenguaje de programacin C, para posteriormente ser cargado al
Code Composer Studio y por consecuencia en el Procesador Digital de
Seales, objetivo principal de este proyecto.

3.3.4 Toolbox Target Support Package


Es un conjunto de herramientas que contiene los mdulos ms
importantes del procesador utilizados para programarlo desde Matlab &
Simulink. Estos bloques que posee el Toolbox estn creados exclusivamente
para interactuar con el procesador de la familia c280x/c28x3x. Por ejemplo un
bloque est configurado para comunicarse directamente con el conversor A/D,
tiene los registros que utiliza dicho perifrico y tiene las opciones de
configuracin necesarias para modificarlos segn la necesidad del usuario.

Fig 3.1. Bloques disponibles en el Target Support Package.

P g i n a | 21

3.3.5 IDE Link incrustado (Embedded IDE link).


3.3.5.1

Introduccin Toolbox Embedded IDE link.

Embedded IDE Link permite comunicar Matlab y Simulink con entornos


integrados de desarrollo de software (IDE). Embedded IDE Link permite
generar, construir, probar y optimizar cdigo incrustado para prototipos
especficos. Automatiza la depuracin, la generacin de proyectos y verificacin
de cdigo que se ejecuta en un procesador incrustado o en el simulador de
instrucciones proporcionadas por el entorno de desarrollo integrado (IDE). Se
puede reutilizar el cdigo de Matlab o Simulink como banco de pruebas para el
procesador. Tambin se puede utilizar en conjunto el Embedded IDE Link con
Real-Time Workshop y Real-Time Workshop Embedded Coder para generar
proyectos que se ejecuten automticamente en el IDE del procesador en el cual
se est trabajando. El cdigo creado no solo incluye el cdigo generado en C,
sino tambin el software incrustado necesario para inicializar, programar y
administrar la ejecucin del cdigo en el procesador en tiempo real. Se puede
utilizar Matlab para analizar y depurar el cdigo generado, adems se ejecuta
en el procesador incrustado o en un simulador de sistema. Con esto se puede
visualizar los resultados de la ejecucin a travs del uso de grficos de Matlab.
Otra ventaja del uso del Embedded IDE Link es que puede rpidamente probar
prototipos de sus diseos, con todos los procesadores compatibles.

Fig. 3.2. Diagrama de Bloques para indicar procesos en la generacin de cdigo


especializado

P g i n a | 22

En este captulo se presentar una descripcin del Toolbox Embedded


IDE link encargado de crear el vinculo entre el cdigo generado por REAL TIME
WORKSHOP, el software que se encarga de interpretar el modelo creado en
Simulink y generar posteriormente el cdigo en lenguaje C o C++. En esta parte
del proceso el Toolbox Embedded IDE link cumple la funcin de homogeneizar
el cdigo en C y depurarlo para que pueda ser cargado, interpretado y
ejecutado por el Code Componer Studio (IDE) y por consecuencia por los
registros del procesador de Texas Instruments.
Los IDE de los procesadores que soporta el software son los siguientes:
o Altium Tasking
o Analog Devices Visual DSP++
o Eclipse IDE
o Green Hills Multi
o Texas Instruments Code Composer Studio

Fig. 3.3. IDE s soportados por Embedded IDE Link


Como en el proyecto se utiliz el procesador de la empresa Texas
Instruments en especfico el de la familia DELFINO de la serie C2000
TMS320F28335, utilizamos el IDE TI CCS como se muestra en la figura 1.8.
Con este simple bloque se crea la comunicacin, el vnculo entre el procesador
y el software, en este caso Simulink.

P g i n a | 23

3.3.5.2

Conjunto de bloques disponibles en Embedded IDE Link.

Fig.3.4. Herramientas disponibles en Embedded IDE Link

3.3.5.3

Bloque TI CCS (Texas Instrument Code composer Studio).

Fig. 3.5. Bloque que simula el procesador con perifricos y registros.

P g i n a | 24

Este bloque es el ncleo de la creacin de cdigo ejecutable en un DSP


de la empresa Texas Instrument, especificamente en l se puede configurar
hardware, desde habilitar GPIO como entrada o salida hasta cargar cdigo en la
memoria Flash del procesador. Por tal motivo su importancia es esencial en el
software Embedded IDE Link debido a que se basa en gran medida en este
simple bloque.
A continuacin se presenta una descripcin detallada de las opciones de
configuracin del bloque tarjeta personalizada (custom board) disponible en el
software Embedded IDE Link de Matlab/Simulink.

Fig. 3.6. Ventana de configuracin principal del bloque tarjeta personalizada


(custom board).

P g i n a | 25

3.3.5.3.1

Tipo de tarjeta (Board Type).

En esta opcin podemos elegir cualquier tarjeta que posea un DSP


disponible en las opciones del programa. El modelo de la tarjeta de desarrollo
puede ser cualquiera. Esto se menciona por experiencia propia, debido a que al
comienzo del proyecto era una incgnita si el software era capaz de generar
cdigo coherente a pesar de la tarjeta en la cual estaba montado el procesador.
Por supuesto que existen limitaciones en algunas funciones.

3.3.5.3.2

Procesador (Processor).

En esta seccin el usuario tiene la opcin de seleccionar el tipo de


procesador a utilizar en la lista que se despliega. El procesador que selecciona
determina el contenido y configuracin de opciones de la memoria y registro
que van a ser creados por el cdigo generado por el Real-time workshop y
acondicionado por el Embedded IDE Link.

3.3.5.3.3

Reloj CPU (CPU Clock).

En esta opcin de configuracin se ingresa la frecuencia con la que


opera el oscilador del procesador seleccionado, en nuestro caso se ingresa 150
Mhz.

3.3.5.3.4
o

Soporte tarjeta (Board Support).

Source files En esta opcin se agregarn las rutas donde estn los
cdigos fuentes esenciales para el microprocesador.

Include paths En esta opcin se agregan las rutas donde estn los
archivos de cabecera que ofrece el software en este caso Matlab.

Libraries Biblioteca bsicas para la programacin del microprocesador


cuando se establezca la comunicacin entre el hardware y el software el
programa cargar automticamente dichas Biblioteca ya que forman
parte fundamental para que el cdigo pueda ser ejecutado.

Initialize functions Opcin especial, aqu se puede agregar funciones


especficas que bien pueden ser creadas por el usuario o ser cargadas
de otro proyecto (por defecto esta opcin no tiene nada).

Terminate functions En esta opcin se ingresa funciones que se


ejecutarn cuando el cdigo principal haya sido cargado.

P g i n a | 26

3.3.5.3.5

Obtener el IDE (Get from IDE).

Esta funcin importa los datos del DSP y la tarjeta de desarrollo a la cual
est montado, bsicamente crea un vnculo entre Matlab / Simulink, Code
Componer Studio y Embedded IDE link. Al utilizar esta funcin se nos mostrar
el nombre de la tarjeta y el nombre del procesador, para corroborar el correcto
reconocimiento del hardware podemos visualizar en el propio CCS si son
similares. Cabe mencionar que el reconocimiento del hardware no se efectuar
jams si el IDE (Code composer, Eclipse IDE, etc) con el cual se programan los
procesadores no tiene soporte en el software (Matlab/Simulink).
3.3.5.4

Configuracin de los perifricos

Peripherals Pane / Pestaa de perifricos el software Embedded IDE


Link ofrece las opciones de configuracin bsica de cada perifrico o mdulo, a
continuacin se muestra cuales son estas opciones.

3.3.5.4.1

ADC Conversor anlogo / digital.

Fig. 3.7. Opciones de configuracin mdulo ADC.

P g i n a | 27

Las opciones de configuracin del ADC son las siguientes:

3.3.5.4.1.1

ADCLKS.

Variable que no tiene realmente un efecto directo sobre la velocidad de


reloj del nucleo del ADC. Sirve para determinar el ancho del periodo de
muestreo o adquisicin. Cuanto mayor sea el valor ingresado en la opcin de
configuracin, mayor es el perodo de muestreo. El valor por defecto es 4.

3.3.5.4.1.2

CPS.

Esta opcin de configuracin permite modificar la variable HSPCLK (High


speed peripheral clock) los valores permitidos deben tener como mximo 4 bits.
3.3.5.4.1.3

ACQ_PS.

Esta opcin de configuracin permite dividir la variable HSPCLK por


el valor ingresado en la opcin ADCLKPS, por ejemplo si se configura la opcin
CPS en 1, el valor por defecto, divide el resultado por 2.

3.3.5.4.1.4
Este

OFFset.
parmetro

de

la

familia

de ADC 280X soporta correccin

de desplazamiento a travs de un valor de 9-bit que se agrega o resta antes de


los resultados disponibles en los registros del ADC. El tiempo para obtener
resultados no se ve afectado. El valor predeterminado es 0.

Fig. 3.8. Variables dentro del mdulo ADC.

P g i n a | 28

3.3.5.4.2

Mdulo con controlador de rea de red mejorada (eCAN).

Fig. 3.9. Opciones de configuracin del eCAN con el bloque tarjeta preferente.

3.3.5.4.2.1

Prescalador tasa de baudios (Baud Rate Prescaler).

En esta opcin elegimos el valor en escala de la velocidad de bits. Los


valores vlidos son de 1 a 256.

3.3.5.4.2.2

SAM

Esta opcin de configuracin permite establecer el nmero de muestras


que obtendr el mdulo eCAN para posteriormente determinar el nivel de bus
CAN para la transferencia de estos datos hacia el DSP. Existen dos opciones
disponibles la primera sample one time como su nombre lo indica toma, solo un
punto de muestreo y la segunda (sample three times), toma tres muestras,
donde realiza una seleccin propia de cul es la muestra ms real de las tres.

P g i n a | 29

3.3.5.4.2.3

SBG

Establece la re-sincronizacin del mensaje gatillado. Las opciones son


Only_falling_edges y Both_falling_and_rising_edges.

3.3.5.4.2.4

SJW

Este parmetro establece el ancho de salto de sincronizacin, lo que


determina cuntas unidades de TQ se puede acortar o alargar al volver a
sincronizar. Si este parmetro se establece en True, el mdulo eCAN va a
modo de bucle invertido, el modo de bucle invertido enva un "dummy",
reconoce el mensaje y enva de vuelta sin necesidad de un bit de
reconocimiento. El valor predeterminado es False.

3.3.5.4.2.5

TSEG1

Establece el valor de un segmento de tiempo, que, con TSEG2 y


prescala la velocidad de transmisin, determina la longitud de un bit en el bus
ECAN. Los valores vlidos para TSEG1 son de 1 a 16.

3.3.5.4.2.6

TSEG2

Establece el valor de segmento de tiempo 2, que, con TSEG1 y prescaler


velocidad de transmisin, determina la longitud de un bit en el bus ECAN. Los
valores vlidos para TSEG2 son de 1 a 8.

3.3.5.4.2.7

Asignacin pin (Tx)

Asigna el pin CAN que se utilizar para transmisin por el mdulo de


eCAN_B. Los valores posibles son GPIO10, GPIO13, GPIO17 y GPIO21.

3.3.5.4.2.8

Asignacin pin (Rx)

Asigna el pin CAN que se utilizar para recepcin por el mdulo de


eCAN_B. Los valores posibles son GPIO8, GPIO12, GPIO16 y GPIO20.

P g i n a | 30

3.3.5.4.3

Mdulo de captura mejorada (Enhanced Capture eCAP).

Fig. 3.10. Opciones de configuracin del eCAP con el bloque tarjeta preferente.
3.3.5.4.3.1

Asignacin pin ECAP1.

Seleccionamos el pin de la GPIO que se utilizar para esta funcin,


tenemos opcin desde la GPIO5 a la GPIO24.

3.3.5.4.3.2

Asignacin pin eCAP2.

Seleccionamos el pin de la GPIO que se utilizar para esta funcin,


tenemos opcin desde la GPIO7 a la GPIO25.

3.3.5.4.3.3

Asignacin pin eCAP3 eCAP4.

Seleccionamos el pin de la GPIO que se utilizar para esta funcin,


tenemos opciones desde la GPIO9 a la GPIO26 correspondiente a la eCAP3,
en eCAP4 tenemos las opciones desde la GPIO11 a la GPIO27. (As con las
dems opciones de eCAP pin).

P g i n a | 31

3.3.5.4.4

Modulacin por ancho de pulso mejorada (ePWM).

Fig. 3.11. Opciones de configuracin del ePWM con el bloque tarjeta preferente.

3.3.5.4.4.1

Asignacin pin SYNCI.

Asigna una puerta GPIO como entrada para una seal externa que ser
utilizada como modo de sincronizacin para el ePWM. La opcin por defecto no
tiene

nada

configurado,

los

pines

disponibles

para

esta

funcin

son GPIO6 y GPIO32.

3.3.5.4.4.2

Asignacin pin SYNCO.

Asigna una puerta GPIO como salida para un dispositivo externo que
ser utilizada como modo de sincronizacin para el ePWM. La opcin por
defecto no tiene nada configurado, los pines disponibles para esta funcin
son GPIO16 y GPIO28.

P g i n a | 32

3.3.5.4.5

Circuito inter-integrado (I2C).

Fig. 3.12. Opciones de configuracin del I2C con el bloque custom board.
3.3.5.4.5.1

Modo (Mode).

Esta opcin configura el mdulo I2C para que opere en modalidad


master o slave. Si el mdulo I2C est en modo maestro el funcionamiento es el
siguiente, se inicia la comunicacin con los dispositivos esclavos mediante el
envo de una seal a la direccin del esclavo y principalmente estar como
prioridad la transferencia de datos desde o hacia el esclavo. Si el mdulo I2C
est en modo esclavo el funcionamiento es el siguiente, el mdulo
responde a las peticiones de comunicacin del maestro.
3.3.5.4.5.2

Formato de direcciones (Addresing Format).

Si se utiliza el modo esclavo, esta opcin permite determinar el formato


de direccin del maestro y configurar el mdulo de I2C para interactuar
con este dispositivo:
o 7-bit de direccionamiento, el modo normal de direcciones.
o 10-Bit de direccionamiento, el modo de direccin ampliado.

P g i n a | 33

3.3.5.4.5.3

Registro de direccin propia (Own address register).

Esta opcin de configuracin nos permite indicar la direccin para el


mdulo I2C mientras este configurado en modo esclavo.
3.3.5.4.5.4

Contador de bit (Bit count).

Esta opcin permite configurar el mdulo I2C en modo esclavo, se puede


designar el nmero de bits que sern transmitidos por el mdulo I2C, esta
opcin de configuracin nos permite modificar esta variable.
3.3.5.4.5.5

Mdulo frecuencia de reloj (Module clock frecuency).

Esta opcin permite configurar la frecuencia interna del mdulo I2C.


3.3.5.4.5.6

Mdulo Prescalador de reloj (IPSC).

Esta opcin tiene la siguiente funcin, si est configurado el mdulo I2C


en modo maestro, se puede configurar la frecuencia de clock del mdulo por
valores entre 0-255.
La ecuacin que rige esta funcin es la siguiente:
Module clock frequency=I2C input clock frequency/(Module clock prescaler+ 1)
Hay que mencionar que el mdulo I2C requiere frecuencias que flucten
entre 7 MHZ y 12 MHZ. La variable input clock frecuency depende del DSP y el
valor del registro (PLLCR), PLL control register divider.

Fig. 3.13. Diagrama de operacin del reloj del mdulo I2C.

P g i n a | 34

3.3.5.4.5.7

Divisor de tiempo en baja del reloj patrn (Master clock low-

time divider).
Cuando el mdulo se configura en modo MASTER esta opcin est
disponible, esta variable determinar la duracin del estado en bajo (low state)
que tendr el serial clock pin (SCL), en el bus del mdulo I2C.
3.3.5.4.5.8

Divisor de tiempo en alta del reloj patrn (Master clock high-

time divider).
Cuando el mdulo se configura en modo MASTER esta opcin est
disponible, esta variable determinar la duracin del estado en alto (high state)
que tendr el serial clock pin (SCL), en el bus del mdulo I2C.
3.3.5.4.5.9

Habilitacin bucle de regreso (Enable loopback).

Cuando el mdulo se configura en modo maestro, se puede habilitar o


deshabilitar el modo digital loopback, donde se habilitan los registros I2CDXR
para transmitir y el registro I2CDDR para recibir datos en forma interna en el
DSP sin interactuar con el exterior.
3.3.5.4.6

Habilitacin interrupcin Tx (Enable Tx interrupt).

Esta opcin de configuracin permite indicar al FIFO de transmisin


cuando se producir una interrupcin despus de transmitir una cierta cantidad
de bytes las opciones pueden ser de 1 a 16. Esta opcin corresponde al bit 5
del registro I2CFFTX (I2C TRANSMIT FIFO register) que a su vez corresponde
a la variable TXFFIENA del DSP.
3.3.5.4.6.1

Habilitacin interrupcin Rx (Enable Rx interrupt).

Esta opcin de configuracin permite indicar al FIFO de recepcin


cuando se producir una interrupcin despus de recibir una cierta cantidad de
bytes las opciones pueden ser de 1 a 16. Esta opcin corresponde al bit 5 del
registro I2CFFRX (I2C RECEIVE FIFO register) que a su vez corresponde a la
variable RXFFIENA del DSP
3.3.5.4.6.2

Habilitacin interrupcin de sistema (Enable system interrupt)

Este parmetro de configuracin muestra la opcin de configurar los


requerimientos de interrupcin del mdulo I2C, accediendo directamente al
registro (I2CIER), del DSP.

P g i n a | 35

3.3.5.4.7

Interfaz de comunicacin serie (SCI).

Fig. 3.14. Opciones de configuracin del SCI con el bloque Tarjeta preferente.
3.3.5.4.7.1

Tasa de baudios (Baud rate).

En esta opcin se configura la tasa de bits que se van a trasmitir y recibir


por los datos. Tenemos las siguientes opciones 115200, 57600, 38400, 19200,
9600, 4800, 2400, 1200, 300 y 110.

3.3.5.4.7.2

Modo de bloqueo (Blocking mode).

Esta opcin de configuracin tiene dos opciones la primera TRUE, si se


selecciona, el sistema espera que existan datos disponibles para leer y
posteriormente enva un dato a la salida, si se selecciona la opcin FALSE el
sistema de control de la FIFO entra en modo de sondeo, si existe un dato
presente lo lee inmediatamente y lo enva a su destino pero si no existe dato el
sistema sigue enviando a destino el ltimo dato ledo.

P g i n a | 36

3.3.5.4.7.3

Longitud de carcter en bits (Character length bits).

Con esta opcin podemos elegir la cantidad de bits que contendr el dato
para ser transmitido o recibido.

3.3.5.4.7.4

Modo de comunicacin (Communication mode).

Con este parmetro de configuracin podemos seleccionar el modo Raw


Data o Protocol en donde si se selecciona la opcin:
Raw Data Mode

Enviamos un dato sin formato especfico donde la transmisin comienza


cuando el proceso de envi esta completo sin importar si el otro
dispositivo est listo para recibir informacin.
Protocol Mode

Cuando se selecciona esta opcin tanto la transmisin como la recepcin


entablan comunicacin para coordinar envi de datos. Por esto cuando el
dispositivo de transmisin est listo, este enva una seal para indicarlo.
Lo mismo ocurre en el dispositivo de recepcin este enva un indicador
de que est listo para la recepcin de datos y una vez haya terminado el
proceso se enva una seal al DSP para informarlo.

3.3.5.4.7.5

Orden de los datos en bytes (Data byte order).

Este parmetro permite seleccionar el tipo de orden en la transmisin de


la informacin en Little Endian o Big Endian.

3.3.5.4.7.6

Cantidad de datos en transmisin (Data swap width).

Esta opcin de configuracin permite establecer la cantidad de datos que


van a ser transmitidos, existen dos opciones 8 bits o 16 bits.

P g i n a | 37

3.3.5.4.7.7

Habilitacin bucle de regreso (Enable Loopback).

Este parmetro de configuracin nos permite ejecutar un test en el


mismo

dispositivo

con

propsito

de

diagnstico

nicamente.

Cuando

habilitamos este parmetro internamente el DSP conecta el pin de transmisin


con el de recepcin y se verifica la integridad de la informacin.

3.3.5.4.7.8

Nmero de bit de parada (Number of stop bits).

Este parmetro nos permite establecer el nmero de bits, vamos a


ingresar al dato como bits de parada, existen dos opciones 1 o 2 bits.

3.3.5.4.7.9

Modo paridad (Parity mode).

Este parmetro permite seleccionar el modo en el cual se van a


configurar los bits de paridad en el envi de datos, las opciones disponibles son
las siguientes None, Odd paridad, o Even paridad.

o Sin bit de parada (none)


Si se selecciona esta opcin deshabilitamos el modo de paridad en los
datos.

o Odd parity (Paridad impar)


Si seleccionamos esta opcin, y el nmero de 1 en el dato que va hacer
enviado es impar, el bit de paridad tambin ser un 1 lgico.

o Even parity (Paridad par)


Si seleccionamos esta opcin, y el nmero de 1 lgicos que posee el
dato que ser enviado es par, el bit de paridad tambin ser un 1 lgico.

P g i n a | 38

3.3.5.4.8

Modo de suspensin.

Esta opcin de configuracin si es seleccionada permite depurar el


programa, cuando este se encuentra en un punto de interrupcin, este modo
determina si se debe realizar la instruccin siguiente en el programa. Las
opciones disponibles son Hard Abort, Soft abort y Free run. Hard abort detiene
en forma inmediata el programa, Soft abort detiene el programa cuando se
termina el flujo de informacin en otras palabras cuando un dato es enviado y
recibido ntegramente y por ltimo Free run continua funcionando sin considerar
el punto de interrupcin.

3.3.5.4.8.1

Asignacin de pines Rx (Pin assignment Rx).

Esta opcin de configuracin permite establecer el pin que va a ser


utilizado como SCI Receive (Pin de recepcin de datos del mdulo SCI). Las
opciones disponibles para este propsito son la GPIO 28 y GPIO 35.

3.3.5.4.8.2

Asignacin de pines Rx (Pin assignment Tx).

Esta opcin de configuracin permite establecer el pin que va a ser


utilizado como SCI Transmit (Pin de transmisin de datos del mdulo SCI). Las
opciones disponibles para este propsito son la GPIO 29 y GPIO 36.

P g i n a | 39

3.3.5.4.9

Interfaz de perifricos serie (SPI).

Fig. 3.15. Opciones de configuracin del SPI con el bloque tarjeta preferente.

3.3.5.4.9.1

Factor de tasa de baudios (Baud rate factor).

Esta opcin de configuracin permite configurar directamente el registro


(SPIBBR), del microprocesador, que est relacionado con la tasa de baudios de
transmisin.

3.3.5.4.9.2

Fase de reloj (Clock phase).

Esta opcin de configuracin permite establecer cmo ser enviado la


seal de reloj para la sincronizacin entre dispositivo trasmisor y receptor. Las
opciones disponibles son No delay o Delay half cycle.

P g i n a | 40

3.3.5.4.9.3

Polaridad de reloj (Clock polarity).

Esta opcin de configuracin nos permite establecer la polaridad de la


seal de reloj, si el dato va a ser sincronizado con un flanco de subida o bajada.
Las opciones disponibles son Rising Edge o Falling Edge.

3.3.5.4.9.4

Modo de suspensin (Suspension mode).

Esta opcin de configuracin si es seleccionada permite depurar el


programa. Cuando este se encuentra en un punto de interrupcin, este modo
determina si se debe realizar la instruccin siguiente en el programa. Las
opciones disponibles son Hard Abort, Soft abort y Free run. Hard abort detiene
en forma inmediata el programa, Soft abort detiene el programa cuando se
termina el flujo de informacin en otras palabras cuando un dato es enviado y
recibido ntegramente y por ltimo Free run continua funcionando sin considerar
el punto de interrupcin.

3.3.5.4.9.5

Bits de datos (Data bits).

Esta opcin de configuracin permite establecer el tamao de los datos a


transmitir. Las opciones son 1 a 16 bit por cada carcter. Por ejemplo, si se
selecciona 8, el mximo de datos que pueden ser transmitidos ser 28-1. Si se
envan datos con mayor cantidad de bits se producir desbordamiento en el
buffer.

3.3.5.4.9.6

Habilitacin bucle de regreso (Enable Loopback).

Esta opcin de configuracin permite establecer el modo loopback para


realizar pruebas de auto-diagnstico. Cuando esta opcin est habilitada el pin
Tx (Transmisin) se conecta internamente con el pin Rx (Recepcin) y se
transmiten datos para comprobar la integridad de los datos enviados.

3.3.5.4.9.7

Habilitacin modo tres cables (Enable 3wire mode).

Esta opcin de configuracin permite establecer la comunicacin a travs


del SPI con 3 pines, y no con los 4 pines que se utilizan normalmente, como
son SPISTE Chip select, SPICLK seal de reloj, SPISIMO slave input master
output y SPISOMI slave output master input.

P g i n a | 41

3.3.5.4.9.8

Habilitacin FIFO (Enable FIFO).

Esta opcin de configuracin permite establecer o habilitar el FIFO en


True o False.
3.3.5.4.9.9

Nivel de interrupcin FIFO Rx (FIFO interrupt level (Rx)).

Esta opcin de configuracin permite configurar cuando se va a ejecutar


una interrupcin despus de una cantidad de veces en que el FIFO haya
recibido informacin. Opciones disponibles 1 a 16.
3.3.5.5

Nivel de interrupcin FIFO Tx (FIFO interrupt level (Tx)).

Esta opcin de configuracin permite configurar cuando se va a ejecutar


una interrupcin despus de una cantidad de veces en que el FIFO haya
enviado informacin. Opciones disponibles 1 a 16.
3.2.5.5.1

Retardo de transmisin FIFO (FIFO transmit delay).

Esta opcin de configuracin permite establecer un retardo (delay), en el


FIFO cuando transmita informacin.
3.3.5.5.2

Modo

Esta opcin de configuracin permite establecer el modo en el cual va a


ser transmitidos los datos teniendo las siguientes opciones maestro o esclavo.
3.3.5.5.3

Asignacin pin CLK.

Esta opcin de configuracin selecciona el pin de la GPIO que va a ser


utilizado para seal de clock (CLK), por defecto no viene ninguna opcin pero
los pines disponibles son GPIO 14 y GPIO 26.
3.3.5.5.4

Asignacin pin SOMI.

Esta opcin de configuracin selecciona el pin de la GPIO que va a ser


utilizado para seal de SOMI, por defecto no viene ninguna opcin pero los
pines disponibles son GPIO 13 o GPIO 25.

P g i n a | 42

3.3.5.5.5

Asignacin de pin STE (Pin de habilitacin para transmisin


en modo esclavo).

Esta opcin de configuracin permite seleccionar el pin de la GPIO que


va a ser utilizado para seal de STE, por defecto no viene ninguna opcin pero
los pines disponibles son GPIO 15 y GPIO 27.
3.3.5.5.6

Asignacin pin SIMO.

Esta opcin de configuracin permite seleccionar el pin de la GPIO que


va a ser utilizado para seal de SIMO, por defecto no viene ninguna opcin pero
los pines disponibles son GPIO 12 o GPIO 24.

P g i n a | 43

3.3.5.6.0

Codificador de cuadratura por ancho de pulso (eQEP).

Fig. 3.16. Ventana configuracin mdulo eQEP.


Este mdulo del DSP tiene como principal funcin ser una interfaz directa
a travs de un Encoder incremental ya sea lineal o rotatorio para obtener datos
de posicin, direccin, y velocidad de una mquina rotatoria, comnmente
utilizadas para efectuar movimientos precisos de alto rendimiento y sistemas de
control de posicin.
3.3.5.6.1

Asignacin pin EQEP1A.

Esta opcin de configuracin permite establecer la GPIO por la cual el


mdulo EQEP1A va interactuar con el exterior. Las opciones disponibles son
GPIO20 o GPIO 50.
3.3.5.6.2

Asignacin pin EQEP1B.

Esta opcin de configuracin permite establecer la GPIO por la cual el


mdulo EQEP1B va interactuar con el exterior. Las opciones disponibles son
GPIO21 o GPIO 51.
3.3.5.6.3

Asignacin pin EQEP1S.

Esta opcin de configuracin permite establecer la GPIO por la cual el


mdulo EQEP1S va interactuar con el exterior. Las opciones disponibles son
GPIO22 o GPIO 52.
3.3.5.6.4

Asignacin pin EQEP1I.

Esta opcin de configuracin permite establecer la GPIO por la cual el


mdulo EQEP1I va interactuar con el exterior. Las opciones disponibles son
GPIO23 o GPIO 53.

P g i n a | 44

3.3.5.7.0

Pines entrada salida de propsito general (GPIO).

Fig. 3.17. Ventana configuracin mdulos GPIO


3.3.5.7.1

Sync to SYSCLKOUT.

Esta opcin de configuracin permite establecer que la seales que van


a ser emitidas o recibidas por las GPIO, se puedan sincronizar con la seal de
reloj del sistema, el parmetro denominado SYSCLKOUT.

Fig. 3.18. Efecto del Sync to SYSCLKOUT.

P g i n a | 45

3.3.5.7.2

Calificacin usando 3 muestras

(Qualification using 3

samples).
Esta opcin de configuracin nos permite establecer que mnimo 3 ciclos
consecutivos del mismo valor de salida son necesarios para un cambio en la
GPIO.

Fig. 3.19. Efecto Qualification using 3 samples


3.3.5.7.3

Calificacin usando 6 muestras

(Qualification using 6

samples).
Esta opcin de configuracin permite establecer que para que ocurra un
cambio en la seal de entrada o salida de la GPIO es necesario que se
registren seis ciclos consecutivos del mismo valor, por ejemplo para evitar emitir
seales que no sean correctas.

Fig. 3.20. Efecto Qualification using 6 samples

3.3.5.7.4

Prescalador

del

periodo

de

calificacin

del

muestreo

(Qualification sampling period prescaler).


Esta opcin de configuracin permite establecer el periodo de muestreo
en la seal que es emitida o recibida por la GPIO, los valores de configuracin
posible son de 0 a 255.La ecuacin que rige esta frecuencia de muestreo es:
Sampling=SYSCLKOUT / (2*Prescaler)

Fig. 3.21. Qualification sampling period prescaler

(1)

P g i n a | 46

Las GPIO disponibles son desde la 0 a la 63 cada GPIO tiene por defecto
asignado un pin de acuerdo a la disposiciones de hardware ejemplo GPIO 1
tambin corresponde al pin ECAP6. Sin embargo, las opciones mencionadas
anteriormente corresponden cuando las GPIOs se configuran como entrada o
salida sin especificar ningn mdulo.

P g i n a | 47

3.3.5.8.0

Perro Guardin (Watchdog).

Fig. 3.22. Ventana configuracin Watchdog


3.3.5.8.1

Habilitacin de Perro guardin (Enable Watchdog).

Esta opcin de configuracin permite habilitar el mdulo Watchdog


Timer. Por software es necesario indicar al contador del timer que haga un reset
al valor por defecto. De lo contrario el Watchdog va a resetear el procesador
Adems controla el bit 6 (WDDDIS) del registro Watchdog control register
(WDCR) y el bit 0 (WDOVERRIDE) del registro System and status register
(SCSR).

3.3.5.8.2

Contador de seal de reloj.

Esta opcin de configuracin permite establecer el periodo del Timer del


Watchdog relativo donde el valor se rige por la siguiente ecuacin, OSCCLK /
512. Adems este parmetro tiene corresponde a los bits 2-0 (WDPS) del
registro Watchdog Control Register (WDCR).

P g i n a | 48

3.3.5.8.3

Periodo del timer en segundos.

Esta opcin permite visualizar el period en segundos del Watchdog. Este


valor se actualiza automticamente cuando se modifica el valor del parmetro
Counter Clock.

3.3.5.8.4

Tiempo fuera de ejecucin.

Esta opcin de configuracin permite resetear el procesador o generar


una interrupcin cuando el software falla al resetear el contador del Watchdog.
Si se selecciona la opcin chip reset generamos una seal para que el
procesador se reinicialice y deshabilitamos la seal de interrupcin del
Watchdog. Si seleccionamos la opcin raise WD interrupt generamos una seal
de interrupcin y deshabilitamos la seal de reiniciacin del procesador. Esta
seal puede ser utilizada para dejar el dispositivo en modo IDLE o STANDBY
(Bajo Consumo). Este parmetro acta directamente sobre el bit 1 (WDENINT)
del registro System control and status (SCSR).

Fig. 3.23. Mdulo Watchdog (Perro guardin)

P g i n a | 49

3.3.5.9.0

Cargar a la memoria flash (Flash Loader).

Fig. 3.24. Ventana configuracin Flash Loader


3.3.5.9.1

Habilitacin de programacin memoria Flash.

Esta opcin de configuracin permite habilitar la memoria Flash del DSP,


cuando seleccionamos la opcin Execute o Build el programa se cargar a la
memoria Flash. Una vez habilitada la opcin de programacin de la memoria
Flash podemos seleccionar las siguientes opciones. La opcin erase borra la
informacin anterior, la opcin program transfiere el programa creado
directamente a la memoria Flash y por ltimo la opcin Verify permite revisar la
informacin que tiene la memoria Flash.

P g i n a | 50

3.3.5.9.2

Deteccin sectores memoria Flash y borrado de archivos


COFF.

Esta opcin de configuracin permite borrar todos los sectores de la


memoria Flash que fueron seleccionados por los archivos COFF

3.3.5.9.3

Borrado seleccionado de sectores.

Esta opcin de configuracin cuando se habilita borra todos los sectores


de la memoria Flash sin discriminar.

3.3.5.9.4

Locacin especfica API.

Esta opcin permite ingresar la ruta en donde se encuentra el programa


TI Flash API, que es descargado e instalado en el computador donde se est
trabajando, proporcionado por Texas Instrument para poder utilizar la funcin de
programar la memoria Flash.

3.3.5.9.5

Ejecucin.

Esta opcin permite ejecutar o habilitar la programacin de la memoria


Flash.

P g i n a | 51

3.3.6.0.0

Acceso directo a memoria (DMA).

Fig. 3.25. Ventana configuracin mdulos DMA


3.3.6.0.1

Habilitacin canal DMA.

Esta opcin de configuracin nos permite habilitar un canal especfico


DMA. Si el modelo realizado en Simulink incluye un bloque ADC con el canal
DMA habilitado tenemos que deshabilitarlo para asegurar un correcto
funcionamiento del sistema.
3.3.6.0.2

Tamao de dato.

Esta opcin de configuracin nos permite establecer el tamao en bits de


los datos que van a ser transmitidos las opciones son 16 bits o 32 bits.
El DMA tiene disponible en su bus como mximo 32 bits para leer o escribir,
si la opcin elegida es 32 bits se estar ocupando el 100% de la capacidad del
DMA.

P g i n a | 52

Cuando habilitamos el servicio DMA McBSP y est configurado que el


tamao de los datos es 16 bits, debemos considerar el siguiente modelo de
configuracin.
o Size: Burst
o Source: Burst step
o Source: Transfer step
o Source: Wrap step
o Destination: Burst step
o Destination: Transfer step
o Destination: Wrap step
El parmetro Data size corresponde al bit 14 (DATASIZE) del registro MODE.
3.3.6.0.3

Fuente de interrupcin.

Esta opcin de configuracin nos permite generar una interrupcin


producto o generada de algn perifrico del sistema y que esto provoque una
ruptura en un canal especfico DMA.
Esta opcin nos permite seleccionar las opciones XINT1, XINT2 o
XINT13 para configurar como una interrupcin externa, los pines disponibles
para esta funcin son GPIO 0 al 31.Si seleccionamos la opcin XINT3 o XINT7
los pines disponibles para tal objetivo son GPIO 32 al GPIO 63.
3.3.6.0.4

External pin (GPIO)

Esta opcin de configuracin esta disponible cuando configuramos la


opcin Interrupt Source, como una interfaz externa desde el espacio XINT y
sirve para especificar el pin que va a ser utilizado como supervisor de donde se
genera la interrupcin. Este parmetro corresponde a la variable GPIO XINTn
de los registros (GPIOXINTnSEL, GPIOXNMISEL).

3.3.6.0.5

Generate interrupt.

Esta opcin de configuracin permite habilitar el parmetro que genera


una interrupcin del tipo PIE va CPU, por el canal DMA cuando comience o
termine un proceso de transferencia de datos.
Esta opcin de configuracin corresponde al bit 15 (CHINTE) y al bit 15
(CHITMODE) del registro MODE del procesador.

P g i n a | 53

3.3.6.0.6

Tamao (Size).

3.3.6.0.6.1

Rfaga (Burst).

Esta opcin nos permite especificar el nmero de palabras de 16 bits en


un Burst, desde 1 a 32. El mdulo DMA debe completar un Burst antes de
ofrecer servicio a otro canal. Para esto hay que configurar apropiadamente el
valor del Burst para el perifrico en el cual est trabajando el mdulo DMA. Para
el caso del ADC el valor seleccionado es igual nmero de registros usados
hasta 16. Para (McBSP), que carece de FIFO el valor es 1. Para la memoria
RAM el valor puede variar de 1 a 32.
Esta opcin de configuracin corresponde a los bits 4-0 (BURSTSIZE)
del registro BURST_SIZE del procesador.
3.3.6.0.6.2

Transferencia (Transfer).

Esta opcin de configuracin nos permite especificar el nmero de Burst


en una transferencia, puede variar desde 1 a 65536.
Esta

opcin

de

configuracin

corresponde

los

bits

15-0

(TRANSFERSIZE) del registro TRANSFERSIZE del procesador.


3.3.6.0.6.3

Envoltura SRC (SRC wrap).

Esta opcin de configuracin permite especificar el nmero de Burst


(Rfaga de datos) antes de devolver la direccin del puntero del valor de la
variable Source Begin Address.
Esta opcin de configuracin corresponde a los bits 15-0 (SRC_WRAP_SIZE)
del registro SRC_WRAP_SIZE del procesador.
3.3.6.0.6.4

Envoltura DST (DST wrap).

Esta opcin de configuracin permite especificar el nmero de Burst


antes de devolver la direccin del puntero del valor del parmetro Destination
Begin Address. Para deshabilitar el ajuste hay que ingresar el valor de DST
wrap que es mayor que el valor de transferencia.
Esta opcin de configuracin corresponde a los bits 15-0 (DST_WRAP_SIZE)
del registro DST_WRAP_SIZE del procesador.

P g i n a | 54

3.3.6.0.7

Fuente (Source).

Los siguientes parmetros permiten configurar las entradas de los


canales DMA.

Begin Address.
Este parmetro permite ajustar la direccin inicial del puntero fuente. Adems
los punteros apuntan a las direcciones de los mdulos DMA en el inicio de una
transferencia y devuelve el parmetro SRC wrap como haya sido configurado.
Esta opcin de configuracin corresponde a los bits 21-0 (BEGADDR) del
registro SRC_BEG_ADDR del procesador.

Burst step
Esta opcin de configuracin permite establecer el nmero de palabras de 16
bits, que se pueden incrementar o decrementar de acuerdo al flujo de
movimiento del puntero. Para deshabilitar el incremento o decremento de la
direccin del puntero, hay que configurar el Burst Step a 0. Por ejemplo como el
McBSP no utiliza FIFO, se configura el DMA para mantener la correcta
secuencia de los datos McBSP que van a ser movidos palabra por palabra
individualmente. En consecuencia cuando se utiliza el DMA para transmitir o
recibir datos desde McBSP, es necesario configurar el Burst size a 1 palabra y
el Burst step a 0.
Esta opcin de configuracin corresponde a los bits 15-0 (SRCBURSTSTEP)
del registro SRCBURSTSTEP del procesador.

Transfer step
Esta opcin de configuracin permite establecer el nmero de palabras de 16
bits que incrementa o decrementa la direccin actual del puntero antes de la
siguiente transferencia. Valores pueden variar desde -4096 a 4095. Si se
deshabilita el incremento o decremento del puntero de direcciones, hay que
configurar el parmetro Transfer step a 0.
Esta

opcin

de

configuracin

corresponde

los

bits

15-0

(SRCTRANSFERSTEP) del registro SRC_TRANSFER_STEP del procesador.

P g i n a | 55

Wrap step.
Esta opcin nos permite establecer el nmero de palabras de 16 bits que
permite incrementar o decrementar el puntero de direccin SCR_BEG_ADDR
cuando se produce un evento Wrap. Valores pueden variar desde -4096 a 4095.
Esta

opcin

de

configuracin

corresponde

los

bits

15-0

(SRCTRANSFERSTEP) del registro SRC_TRANSFER_STEP del procesador.

3.3.6.0.8

Destino (Destination).

Los siguientes parmetros permiten configurar las salidas de los canales


DMA.

Begin Address.
Este parmetro permite ajustar la direccin actual del puntero de destino.
Adems los punteros apuntan a las direcciones de los mdulos DMA en el inicio
de una transferencia y devuelve el parmetro DST wrap como haya sido
configurado.
Esta opcin de configuracin corresponde a los bits 21-0 (BEGADDR) del
registro DST_BEG_ADDR del procesador.

Burst step.
Esta opcin de configuracin permite establecer el nmero de palabras de 16
bits, que se pueden incrementar o decrementar la direccin actual del puntero.
Para deshabilitar el incremento o decremento de la direccin del puntero, hay
que configurar el Burst Step a 0. Por ejemplo como el McBSP no utiliza FIFO,
se configura el DMA para mantener la correcta secuencia de los datos McBSP
que van a ser movidos palabra por palabra individualmente. En consecuencia
cuando se utiliza el DMA para transmitir o recibir datos desde McBSP, es
necesario configurar el Burst size a 1 palabra y el Burst step a 0.
Esta opcin de configuracin corresponde a los bits 15-0 (DSTBURSTSTEP)
del registro DST_BURST_STEP del procesador.

P g i n a | 56

Transfer step.
Esta opcin de configuracin permite establecer el nmero de palabras de 16
bits que incrementa o decrementa la direccin actual del puntero antes de la
siguiente transferencia. Valores pueden variar desde -4096 a 4095. Si se
deshabilita el incremento o decremento del puntero de direcciones, hay que
configurar el parmetro Transfer step a 0.
Esta

opcin

de

configuracin

corresponde

los

bits

15-0

(DSTTRANSFERSTEP) del registro DST_TRANSFER_STEP del procesador.

Wrap step.
Esta opcin nos permite establecer el nmero de palabras de 16 bits que
permite incrementar o decrementar el puntero de direccin DST_BEG_ADDR
cuando se produce un evento Wrap. Valores pueden variar desde -4096 a 4095.
Esta opcin de configuracin corresponde a los bits 15-0 (WRAPSTEP) del
registro DST_WRAP_STEP del procesador.

3.3.6.0.9

Modo (Mode).

Los siguientes parmetros permiten configurar los canales DMA.


3.3.6.0.9.1

Modo de habilitacin de un disparo (Enable one shot mode).

Esta opcin nos permite activar el parmetro que ofrece una


transferencia completa en respuesta a un evento de interrupcin. Esta opcin
permite un nico canal de acceso directo de memoria y perifricos para
controlar los recursos y puede simplificar la tramitacin, sino que tambin
disminuye los conflictos por uso de recursos y retrasos en el funcionamiento.
3.3.6.0.9.2

Habilitacin Sync (Sync enable).

Este parmetro nos permite establecer que cuando la opcin Interrupt


Source, es configurada para SEQ1INT, habilitamos el parmetro de reinicio del
DMA con el contador Wrap cuando es recibida la seal ADCSYNC desde
SEQ1INT. Esto asegura que el contador de Wrap y los canales ADC
permanezcan sincronizados entre s. Si la opcin Interrupt Source no es
configurada para la habilitacin de SEQ1INT, Sync Enable no tiene efecto.
Este parmetro corresponde al bit 12 (SYNCE) del registro MODE del
procesador.

P g i n a | 57

3.3.6.0.9.3

Habilitacin modo continuo (Enable continuous mode).

Este parmetro permite establecer la habilitacin del canal DMA para


completar una transferencia. El canal va a esperar que el gatillado de la
interrupcin se produzca para seguir con el siguiente canal. Despus los
valores de los parmetros se borran y se desactiva el canal DMA luego de
completar la transferencia. El mdulo DMA deshabilita el canal borrando el bit
RUNSTS en el registro denominado CONTROL cuando se completa la
transferencia. Para utilizar canal de nuevo primero hay que restablecer los bits
que se ejecutan en el registro CONTROL.
3.3.6.0.9.4

Habilitacin modo DST Sync (Enable DST Sync mode).

Esta opcin de configuracin permite habilitar el reinicio del contador de


destino Wrap (DST_WRAP_COUNT) cuando el mdulo DMA recibe la seal
SEQ1INT Interrupt /ADCSYNC. Deshabilitando este parmetro reinicia el
contador de origen Wrap (SCR_WRAP_COUNT) cuando el mdulo DMA recibe
la seal SEQ1INT Interrupt /ADCSYNC. Este parmetro corresponde al bit 13
(SYNCSEL) del registro MODE del procesador.
3.3.6.0.9.5

Configurar canal 1 para prioridad alta (Set channel 1 to

highest priority).
Cuando esta opcin es habilitada el canal DMA nmero uno es
configurado para manejar altos ancho de banda, tales como datos provenientes
del ADC y otros canales de DMA configurados con menor prioridad. Cuando se
activan los servicios disponibles de los mdulos DMA se habilita tambin
secuencialmente el canal uno, el cual enva una seal de disparo. Cuando esta
deshabilitada la opcin del mdulo acceso directo a memoria (DMA) cada canal
es

habilitado

secuencialmente. Este

parmetro

corresponde al

bit

(CH1PRIORITY) del registro PRIORITYCTRL1 del procesador.


3.3.6.0.9.6

Habilitacin de interrupcin de rebalse (Enable overflow

interrupt).
Cuando habilitamos esta opcin el canal DMA enva una interrupcin a la
CPU a travs de la PIE si el mdulo DMA recibe alguna interrupcin de un
perifrico mientras habra recibido otra interrupcin anteriormente del mismo
perifrico y esta en espera de ser atendida. Esta opcin generalmente es
utilizada para la depuracin durante el desarrollo de un proyecto.

P g i n a | 58

Este parmetro corresponde al bit 7 (OVRINTE) del registro MODE y


involucra a los denominados registros Overflow Flag Bit (OVRFLG) y Peripheral
Interrupt Trigger Flag Bit (PERINTFLG) del procesador.

P g i n a | 59

3.3.7.0.0

PLL.

Fig. 3.26. Ventana configuracin PLL


Las configuraciones del PLL vienen destinadas por defecto y los registros
del PLL vienen con valores con el objetivo de que el clock de la CPU (CLKIN)
opere a mxima frecuencia. Estos parmetros son configurados asumiendo que
la frecuencia es proporcionada por un oscilador externo a la tarjeta.
Es recomendado cambiar las configuraciones del PLL si
o Se requiere cambiar la frecuencia de la CPU.
o La frecuencia del oscilador externo difiere de los valores recomendados
por manufactura.
Ecuacin que rige la frecuencia del clock de la CPU.
CLKIN = (OSCCLK * PLLCR) / (DIVSEL o CLKINDIV)

(2)

P g i n a | 60

Donde:
CLKIN Frecuencia con la que la CPU opera, denominado CPU clock.
OSCCLK Frecuencia del oscilador.
PLLCR Registro control PLL.
CLKINDIV Divisor de CLK.
DIVSEL Selector de divisor.
La disponibilidad de los parmetros DIVSEL o CLKINDIV cambia
dependiendo del procesador seleccionado. Si ninguno de los parmetros es
habilitado usa la siguiente ecuacin:
CLKIN = (OSCCLK * PLLCR) / 1

(3)

Por ltimo el resultado de la frecuencia de reloj (CLKIN) en el parmetro


CPU clock bloque Target Preferences.

P g i n a | 61

3.3.7 REAL TIME WORKSHOP


3.3.7.1

Introduccin al Real-Time Workshop.

Real-Time Workshop (RTW) es una extensin de capacidades


para Simulink y Matlab que permite compilar y generar automticamente el
cdigo fuente de modelos desarrollados en Simulink. De esta manera se
pueden crear aplicaciones de software en tiempo real.
Algunos de los principales componentes y objetos que maneja RTW son:
o El Generador de Cdigo Simulink (Simulink Code Generator): el cual
automticamente genera el cdigo C que representa exactamente al
modelo desarrollado en Simulink.

o El Creador de Proceso (Make Process): el Creador de Proceso permite


construir aplicaciones con especificaciones particulares en la compilacin
y conexin del cdigo generado.

o Modo Externo de Simulink (Simulink External Mode): permite la


comunicacin entre Simulink y un modelo que se est ejecutando en
tiempo real. Mediante esta opcin se puede ajustar algunos parmetros
de ejecucin, de almacenamiento de datos, y observar el modelo
mediante la ventana de Simulink.

o Soporte de Dispositivos (Targeting Support): mediante esta herramienta


se pueden emplear una gran variedad de drivers incluidos dentro de
RTW que permiten disear aplicaciones para ejecutarse en dispositivos o
plataformas ya declaradas en RTW.

Este software que forma parte de MATLAB / SIMULINK se encarga en


gran medida de proporcionar la transformacin del modelo desarrollado en
Simulink a un cdigo de lenguaje C o C++.Este software posee el potencial para
interpretar cualquier modelo desarrollado en Simulink. Lo que hay que tener en
consideracin es que el cdigo generado no puede ser interpretado por
cualquier compilador y esto se debe a que el modelo en Simulink debe tener
coherencia con el dispositivo fsico (Hardware) donde se pretende ejecutar.

P g i n a | 62

3.3.7.2

Capacidades del Real Time Workshop.

Generar cdigo fuente y ejecutables para modelos de Simulink en tiempo


discreto, tiempo continuo (Fixed Step) y sistemas hbridos.
Utilizar el cdigo generado para aplicaciones en tiempo real y no real adems
incluye las opciones de simulation acceleration (aceleracin de simulacin),
rapid prototyping, hardware in the loop (hardware en un bucle) y testing.
El cdigo generado usando bloques del software Simulink, puede ser utilizado
fuera de los ambientes del propio Simulink y Matlab. Una ventaja esencial para
desarrollar aplicaciones.
Generar cdigo para modelos diseados con el software Stateflow event-based
modeling y complementarlo con el State flow Coder.
Produce cdigo fuente para una infinidad de subprogramas de Simulink como
por ejemplo Signal Processing una aplicacin diseada para el tratamiento de
seales. Esto es una ventaja si se tiene un microprocesador que no sea
precisamente un DSP.

P g i n a | 63

3.3.7.3

Descripcin del procedimiento realizado por el software para


la generacin de cdigo y su posterior ejecucin en el
hardware.

El Real-Time Workshop (RTW) posee la capacidad de generar cdigo en


C o C++, de modelos desarrollados en Simulink y adems modelos que
contengan funciones propias de Matlab. Por lo tanto, como el objetivo del
proyecto es generar cdigo para una plataforma de hardware especfico, este
software formara parte importante en el desarrollo del proyecto.

Fig. 3.27. Diagrama de creacin de cdigo.


Generacin de cdigo para ambientes de programacin especficos.
Este software puede generar cdigo que se ejecute en el mismo
computador pero como un ejecutable. Es decir, un modelo en Simulink o un
archivo .m de Matlab que contenga funciones propias de este software puede
ser ejecutado en el computador como un programa independiente a los
mencionados anteriormente. Bsicamente lo que hace el real time workshop es
exportar funciones propias de Matlab/Simulink para ser ejecutadas en otro
ambiente de trabajo, en este caso en el ambiente windows o incluso linux.
Presenta una gran ventaja ya que al poder importar funciones propias de
Matlab, se reduce el problema de crear programas adicionales para cada
funcin especfica, dentro de la aplicacin general. Este software tiene la
ventaja de poseer el system target files. Este sistema es capaz de generar
compilar y ejecutar un cdigo para un ambiente especfico de programacin.
Para seleccionar el system target file correcto es necesario conocer el ambiente
de programacin del hardware donde el cdigo se ejecutar, tales como en un
simulador en tiempo real, procesador o en un PC.

P g i n a | 64

Fig. 3.28. Ambientes donde se puede crear cdigo con Real-Time Workshop
Como en el caso del proyecto presentado en esta tesis el cdigo
generado tiene que ser ejecutado en un DSP, el software o la tecnologa es
capaz de generar dicho cdigo para que sea ejecutado para este ambiente.

3.3.7.4

Cdigo generado para DSP.

Opciones para la creacin de cdigo ejecutables en DSP.


Generacin de cdigo.
Esta opcin de la generacin de cdigo, ofrece optimizar el cdigo para
mejorar la velocidad, el uso de memoria, la simplicidad con que este se
ejecutar en el procesador.
Ingresar el hardware en un bucle.
Con esta opcin generamos un bucle en la ejecucin del cdigo. Esta
funcin hace que el cdigo corra y se detenga una y otra vez como una
forma de observar su comportamiento.

P g i n a | 65

3.3.7.4.1

Generacin de cdigo.

Para el proceso de generacin de cdigo, antes se asegura la correcta


configuracin de los parmetros del modelo en que el software se va a encargar
de generar cdigo. Se puede crear un modelo que utilice bloques en tiempo
continuo pero configurar el real time workshop como un intrprete de bloques
en estado discreto. Por esta razn son muy importantes las configuraciones del
software y cules son sus limitaciones.
3.3.7.4.2

Configuracin parmetros para compilacin y ejecucin de


cdigo.

Procedimiento que realiza real time workshop, para la generacin de


cdigo. Una vez diseado el modelo en Simulink de acuerdo a los
requerimientos de hardware, el siguiente paso es la configuracin de todos los
parmetros del software Real Time Workshop.
En la ventana de Simulink seleccionamos la opcin Simulation y elegimos
Configuration Parameters.

Fig. 3.29. Ventana de configuracin de parmetros.

P g i n a | 66

3.3.7.4.3

Configuracin parmetros SOLVER.


Parametros SOLVER
Simulation time
Solver options

Start Time

0.0

Stop Time

inf

Type

Fixed Step

Solver

Discrete

Tabla 1.0 Configuracin Parametros Solver


Posteriormente

nos

situamos

en

las

siguientes

opciones

de

configuracin: Data Import/Export, Optimization, Diagnostics y se los deja con


los valores por omisin. Luego de esto, situarse en la opcin implementacin de
hardware y configurar como se muestra en la figura (Tabla).

Fig. 3.30. Ventana configuracin de implementacin de hardware


3.3.7.4.4

Configuracin parmetros implementacin de hardware.

Parmetros de implementacin de hardware


Embedded Hardware

Device Type:

TI C2000

Byte Ordering:

Little Endian

Tabla 2.0 Configuracin Embedded Hardware (Implementacin de Hardware).

P g i n a | 67

Luego situarse en la opcin de configuracin REAL TIME WORKSHOP y


configurar tal como se grafica en la ventana de configuracin que muestra la
siguiente figura.

Fig. 3.31. Ventana de configuracin Real Time Workshop.


Parmetros configuracin Real time Workshop
Seleccin de Plataforma

RTW system target File

ti_c2000.tlc

Tabla 3.0 Configuracin Real Time Workshop


Continuamos en la misma opcin de configuracin dentro de la seleccin
de plataformas tenemos varias alternativas que se seleccionaran de acuerdo al
tipo de hardware que se est empleando en la implementacin. La siguiente
figura muestra las diversas plataformas de hardware que estn disponibles,
para nuestro caso empleamos el hardware ti_c2000.tlc, ya que es la que se
acopla con nuestro DSP TMS320F28335.

Fig. 3.32. Ventana de configuracin de seleccin de plataforma.

P g i n a | 68

Luego, nos ubicamos en la opcin de configuracin TI c2000 Seleccin


de Plataforma, y configuramos como muestra la siguiente figura.

Fig. 3.33. Ventana de Configuracin TI c2000


Parmetros configuracin TI c2000 seleccin de plataforma
c2000

Tipo Cdigo Generado

Tabla 4.0 Configuracin TI c2000 seleccin de plataforma

Por ltimo, nos ubicamos en la opcin de configuracin TIC6000


Generacin de Cdigo y seleccionamos las opciones de acuerdo a la figura
(tabla).
Parmetros configuracin TI c6000 generacin de cdigo
Funcin de Procesamiento

Digital en linea_activado

Tabla 5.0 Configuracin TI c2000 generacin de cdigo

P g i n a | 69

Fig. 3.34. Ventana de Configuracin TI c2000 generacin de cdigo


Una vez seleccionados los valores especficos para el modelo a
implementar se deben aplicar los valores presionando Apply luego Ok. Luego
en la ventana que nos muestra el modelo hacer clic en Tools -> Real-Time
Workshop -> Build Model, con esto se inicia el proceso de compilacin del
modelo y en la ventana de MATLAB aparecen los archivos que genera dicha
compilacin. Al finalizar el proceso de compilacin debe aparecer en el
ambiente de programacin de CCS nuestro modelo como activo, lo cual se
comprueba porque el nombre de nuestro proyecto aparece en negrita y debe
contener varios archivos generados los cuales sern:
nombre_del_archivo.c
nombre_del_archivo_data.c
nombre_del_archivo_main.c
MW_c6xxx_csl.c
rt_nonfinite.c
rt_sim.c
nombre_del_archivo.cmd
Donde nombre_del_archivo es el nombre con que hemos guardado nuestro
modelo.

P g i n a | 70

3.3.7.4.5

Carga y Ejecucin del Programa Objeto.

Una vez que se han concluido los procesos de desarrollo, simulacin,


ajuste y verificacin del modelo en el ambiente de desarrollo de Simulink y
adems se ha ejecutado el procedimiento que realiza la compilacin del modelo
(este proceso se detallo en el punto 3.2.8.5.2), entonces es el momento de
proceder con el punto final del proceso de desarrollo del modelo, el cual
consiste en tomar el archivo que se genero luego de compilar el modelo y que
debe estar ahora activo en el entorno de desarrollo de CCS. Desde aqu se
ejecuta el proceso de carga del archivo objeto en la plataforma que en nuestro
caso es el DSP TMS320F28335.
A continuacin se detalla como cargar y la ejecutar modelo:
a) Dar clic en el men Project >>> Build. Automticamente se inicia el proceso
de compilacin del proyecto activo.
b) Luego (si no hay errores) seleccionar File >>> Load Program. Con lo que se
abre una ventana de donde se debe seleccionar el archivo generado
nombre_del_archivo.out y clic en Abrir.

Fig. 3.35. Cuadro de dialogo Cargar Programa.

P g i n a | 71

c) Al presionar Abrir se inicia de forma automtica el proceso mediante el cual el


archivo compilado se enva al DSP.

Fig. 3.36. Indicador de Carga de Programa Objeto.


d) Finalmente el archivo objeto que est fsicamente en el DSP puede ser
ejecutado dando clic en Debug >>> Run.

Fig. 3.37. Code Composer Studio luego de que se carga el programa desde
Matlab&Simulink.

P g i n a | 72

3.3.8 TARGET SUPPORT PACKAGE


3.3.8.1

Introduccin Toolbox Target Support Package

Target Support Package permite modificar el cdigo generado por RealTime Workshop para la ejecucin en tiempo real sobre procesadores
integrados, microcontroladores y DSP. El uso del Target Support Package
entrega como principal herramienta integrar dispositivos perifricos y sistemas
operativos en tiempo real con algoritmos creados a partir de modelos realizados
en Simulink, diagramas realizados en Toolbox Stateflow y Embedded Matlab
software con la caracterstica de crear archivos .m o funciones de Matlab y
utilizarlos en modelos creados en Simulink. El cdigo ejecutable resultante se
puede implementar en hardware integrados y tarjetas de desarrollo para anlisis
en tiempo real.

Fig. 3.38. Diagrama de proceso de generacin de cdigo

P g i n a | 73

3.3.8.2

Caractersticas principales

o Apoyo para generar archivos que sean ejecutables y que incluyen cdigo
y controladores de dispositivo.
o Puede generar cdigo para GPIO, SPI, ePWM, SCI, CAN y otros.
o Posee un parmetro de ajuste y control para aplicaciones complejas en
tiempo real utilizando el modo de Simulink externo.
o Posee una biblioteca especializada de bloques para gestionar y ejecutar
la comunicacin Ethernet.
o Generacin de cdigo ensamblador optimizado e integrado, posee
bloques de procesamiento de seales y bibliotecas digitales de control
de motores.
Tiene soporte para las familias de procesadores:
o Texas Instruments C2000, C5000 y C6000.
o Analog Devices Blackfin
o Freescale MPC5xx
o Infineon C166
o STMicroelectronics ST10

Fig. 3.39. Procesadores en los que tiene soporte Target Support Package

P g i n a | 74

Bloques disponibles en Target Support Package

Fig. 3.40. Modelos de la serie c2000 en los que tiene soporte Target Support
Package.

Fig. 3.41. Bloques especializados para la programacin de procesadores DSP


c280x/c2833x

P g i n a | 75

3.3.8.3

Opciones de configuracin de Bloques de Target Support


Package utilizados en el proyecto.

3.3.8.3.1

Bloque Conversor anlogo/digital.

Fig. 3.42. Bloque ADC c280x/c28x3x


El bloque ADC se encarga de configurar el conversor A/D del procesador
el Bloque ADC es capaz de desplegar los valores digitales que representan la
seal de entrada analgica y almacena los valores convertidos en el registro
correspondiente del procesador. En rigor este bloque es el encargado de
configurar automticamente todos los registros necesarios para que funcione el
conversor anlogo / digital del DSP, tambin posee una caracterstica
importante, es capaz de configurar el bloque para que los datos digitales pasen
directamente a la memoria sin necesidad de pasar por la CPU. Esto produce
una liberacin de tareas y aumenta el rendimiento del sistema en general.

Fig. 3.43. Ventana configuracin parmetros Bloque ADC.

P g i n a | 76

3.3.8.3.1.1

Parmetros de configuracin Bloque ADC.

3.3.8.3.1.2

Mdulo A.

Si se selecciona el mdulo A podemos configurar como entrada los


canales ADCINA0 al ADCINA7 individualmente o en forma simultnea.
3.3.8.3.1.3

Mdulo B.

Si se selecciona el mdulo B podemos configurar como entrada los


canales ADCINB0 al ADCINB7 individualmente o en forma simultnea.
3.3.8.3.1.4

Mdulo A B.

Tambin existe la opcin de elegir los dos mdulos en forma simultnea


y en esta opcin podemos elegir todas las entradas disponibles por los dos
mdulos.
3.3.8.3.1.5

Modo de conversin.

Esta opcin especfica el modo de muestreo para las seales anlogas que
son aplicadas al conversor. Existen dos opciones:
Secuencial
Si se selecciona este modo de conversin y se eligen como entrada
para seales dos canales, la conversin va a ser en forma secuencial.
Simultneo
Si se selecciona este modo de conversin y se eligen como entrada
para seales dos canales o ms, la conversin va a ser en forma
simultnea sin importar si las entradas son de diferentes mdulos.
3.3.8.3.1.6

Comienzo de conversin.

Esta opcin de configuracin especfica la forma en que va a comenzar


la conversin a travs de una seal de trigger. Existen las siguientes opciones:

Software
La seal de trigger para el comienzo de la conversin va a ser emitida
por software.

EPWMxA/ePWMxB/ePWMxA_ePWMxB
La seal de disparo para el comienzo de la conversin va a ser
controlada por el usuario a travs del PWM.

P g i n a | 77

XINT2_ADCSOC
La seal de trigger para el comienzo de la conversin va a ser controlada
por el pin XINT2_ADCSOC, cada vez que este pin recibe una seal externa
dar orden para el comienzo de la conversin del ADC.

3.3.8.3.1.7

Tiempo de muestreo.

Esta opcin de configuracin en el conversor AD representa el tiempo en


segundos entre muestreos de seal consecutivos que se toman de un canal
especfico, as tambin como la velocidad en la que son ledos los datos
digitales almacenados en los registros del DSP.

3.3.8.3.1.8

Tipo de datos.

Esta opcin de configuracin representa el formato o tipo de dato de


salida, entre los formatos disponibles se encuentran auto, double, single, int8,
uint8, int16, uint16, int32 o uint32.

Fig. 3.44. Ventana de configuracin entradas Bloque ADC

P g i n a | 78

3.3.8.3.1.9

Configuracin canales de entrada Bloque ADC.

3.3.8.3.2.0

Nmero de conversiones (Number of conversions).

Esta opcin de configuracin permite definir cuantos canales del ADC


van a ser utilizados para la conversin anloga a digital.
3.3.8.3.2.1

Conversion no

Esta opcin de configuracin permite definir el nmero de conversiones


que van a realizarse en cada canal de entrada del conversor AD. Adems existe
la posibilidad de configurar modo de sobre muestreo especificando ms de una
conversin para un mismo canal.
3.3.8.3.2.2

Uso de mltiples puertos de salida (Use multiple output


ports).

Esta opcin de configuracin permite utilizar puertos separados para


cada salida, si el ADC es configurado con ms de un canal de conversin, se
puede desplegar cada salida en forma independiente o en diferentes vectores.

P g i n a | 79

3.3.8.3.3

Bloque Modulador de ancho de pulso mejorado.

Fig. 3.45. Bloque ePWM c280x/c28x3x


El bloque ePWM se encarga de establecer la comunicacin con los
mdulos ePWM del microprocesador. El bloque tiene la opcin de configurar
dos salidas por cada mdulo, ePWMA y ePWMB, e incluso se puede configurar
hasta seis mdulos ePWM.

Fig. 3.46. Ventana configuracin Bloque ePWM.

P g i n a | 80

3.3.8.3.3.1

Parmetros de configuracin general del Bloque ePWM

3.3.8.3.3.2

Configuracin General

3.3.8.3.3.3

Mdulo (Module).

Esta opcin de configuracin especfica que mdulo ePWM va a ser


utilizado por el usuario.
3.3.8.3.3.4

Unidades del periodo del Timer (Timer period Units).

Esta opcin de configuracin especfica las unidades en la que van a


estar configuradas las variables Timer period o Timer initial period, por defecto
viene configurado como Clock Cycles (Ciclos de reloj). Cuando la variable Timer
Period est configurada con unidades de medicin (segundos), el software
convierte las variables Timer Period y Timer initial period en un doble periodo de
registro a formato UINT16.
3.3.8.3.3.5

Especificacin del periodo del timer via (Specify timer period

via).
3.3.8.3.3.6

Periodo fuente del Timer (Timer period source).

Configura el periodo del timer fuente que establecer a su vez el periodo


de la onda PWM.
3.3.8.3.3.7

Periodo del Timer (Timer period).

Esta opcin de configuracin se utiliza para configurar los periodos de


forma de onda PWM, y en que unidades se medirn ciclos de reloj o en
segundos

3.3.8.3.3.8

Modo de conteo (Counting mode).

Esta opcin de configuracin especfica el modo de conteo (Counting


Mode) en los cuales pueden operar los mdulos PWM. Existen tres opciones
Up, Down y Up-Down.

Fig. 3.47. Modos de conteo

P g i n a | 81

3.3.8.3.3.9

Divisor de Prescalador del reloj TB (TB clock prescaler

divider).
Esta opcin de configuracin permite establecer la velocidad en la que se
incrementar o decrementar el contador time-base (TB), y adems se encarga
de establecer el prescalamiento que va a tener la seal SYSCLKOUT.
Para calcular el TBCLK se utiliza la siguiente ecuacin:
TBCLK = SYSCLKOUT / (HSPCLKDIV * CLKDIV)

(4)

Por ejemplo se asume que por defecto CLKDIV y HSCLKDIV tienen un


valor 1, y por defecto la frecuencia de SYSCLKOUT es 100 Mhz por lo tanto:
TBCLK = 100 MHz = 100 MHz / (1 * 1)

(5)

Las opciones de configuracin para el TB clock prescaler divider son: 1,


2, 4, 8, 16, 32, 64, y 128.

Fig. 3.48. Diagrama sub mdulo Time Base (TB), del mdulo ePWM.

P g i n a | 82

Fig. 3.49. Ventana de configuracin mdulo ePWM

3.3.8.3.4

Especificaciones mdulo ePWMA ePWMB

3.3.8.3.4.1

Unidades del registro del contador comparador A (CMPA).

Esta opcin de configuracin especfica la unidad que se utilizar como


registro de comparacin, por defecto viene configurado en (ciclos de reloj) clock
cycles. Si se configuran las unidades CMPA y CMPB en modo porcentaje es
necesario habilitar el soporte para nmeros en punto flotante. Para realizar la
habilitacin de esta caracterstica seleccionamos Simulation > Configuration
Parameters, en esta ventana seleccionamos a su vez la opcin Real-Time
Workshop > Interface, por ltimo en la opcin Software Environment,
habilitamos floating-point numbers.

3.3.8.3.4.2

Va especfica del CMPA

Este parmetro configura la manera con la cual se van a generar los


PWM, si se elige la opcin Specify via dialog, tenemos la opcin de ingresar
valores a las variables CMPA value y CMPB value.

3.3.8.3.4.3

Valor CMPA (CMPA value).

Esta opcin de configuracin estn disponible si seleccionamos antes


Specify via dialog. Aparecern las opciones CMPA source y CMPB source. En
esta instancia podemos ingresar los valores de CMPA CMPB Units.

P g i n a | 83

3.3.8.3.5

Bloques de Interfaz serial de perifricos (SPI).

Fig. 3.50. Bloques SPI


El Bloque SPI Receive tiene soporte para comunicacin serie sncrona
entre el DSP y otros perifricos externos o otros dispositivos. El bloque tiene la
opcin de configurar la SPI en modo maestro o esclavo. En modo maestro, el
pin SPISIMO (Slave input Master output) transmite datos y el pin SPISOMI
(Slave output Master input) recibe datos. Cuando es seleccionado el modo
master la SPI inicia la transmisin de datos enviando una seal serial de clock
(SPICLK), la transferencia de datos son sincronizados por la configuracin del
registro (SPICLK), que puede ser habilitado en forma simultnea para el modo
maestro y esclavo.

El Bloque SPI Transmit tiene soporte para comunicacin serie sncrona


entre el DSP y otros perifricos externos. Puede operar en modo maestro o
esclavo. En general tiene las mismas caractersticas que el bloque SPI Receive
considerando que uno enva datos y el otro recibe datos. El bloque tiene
soporte para admitir en la entrada datos en formato UINT 16.

P g i n a | 84

3.3.8.3.5.1

Parmetros de configuracin general del Bloque SPI.

Fig. 3.51. Ventana de configuracin mdulo SPI Receive

3.3.8.3.5.2

Longitud de dato (Data length).

Este parmetro especfica la cantidad de datos del tipo UINT16 se


esperan van a ser recibidos. Se puede seleccionar desde 1 a 16.

3.3.8.3.5.3

Error en el estado de recepcin de salida (Output receive error


status).

Este parmetro de configuracin permite monitorear la correcta


transferencia de datos hacia el bloque generando una salida que puede tener
los siguientes valores:
o 0: Sin errores
o 1: Datos perdidos en el proceso de transferencia.
o 2: Datos no ledos, y tiempo de espera para recibir datos terminado.

3.3.8.3.5.4

Habilitacin de estado de bloqueo (Enable blocking status).

Esta opcin de configuracin permite habilitar que el sistema


permanezca en un estado de espera continuo, hasta que el dato que se
transmite llegue ntegramente a su destino. Luego de esto el sistema continua
operando normalmente.

P g i n a | 85

Fig. 3.52. Ventana de configuracin mdulo SPI Transmit


3.3.8.3.5.5

Error en el estado de salida de transmisin (Output transmit


error status).

Este parmetro al ser habilitado monitorea la correcta transmisin de


datos generando el registro de estado de la operacin indicando:
o 0: Sin errores
o 1: Tiempo de espera de transmisin terminado.
o 2: Error en transmisin de datos.

3.3.8.3.5.6 Habilitacin modo de bloqueo (Enable blocking mode).


Esta opcin de configuracin es simular a la opcin enable blocking
status. Si el sistema est en proceso de espera y se requiere que se le de
prioridad a la correcta transmisin de los datos, el sistema no realiza ninguna
accin hasta que se termine dicho proceso. La diferencia con la opcin anterior
es que el sistema est continuamente ejecutando dicho procedimiento.

3.3.8.3.5.7

Interrupcin despus de dato transmitido (Post interrupt when


data is transmitted).

Esta opcin de configuracin habilita la ejecucin de una interrupcin


despus de que un dato llegue a destino.

P g i n a | 86

3.3.8.3.6

Bloque de Interfaz de comunicacin serie (SCI).

Fig. 3.53. Bloques SCI


3.3.8.3.6.1

SCI receive

El bloque SCI Receive tiene soporte para comunicarse en forma serie


digital y asncrona, con otros perifricos y con otros procesadores y sus tarjetas
de desarrollo en formato non-return-to-zero (nrz).
Este bloque configura el DSP para recibir datos como un vector o escalar
desde el puerto COM.
3.3.8.3.6.2

SPI Transmit

El bloque SCI Transmit transmite datos como vector o escalar en formato


int8 o uint8 hacia el puerto COM (serial) con formato non-return-zero (nrz)
quiere decir que la tensin no tome valor cero, puede tomar valores positivos o
negativos.

P g i n a | 87

3.3.8.3.6.3

Parmetros de configuracin general del Bloques SCI

Fig. 3.54. Ventana de configuracin mdulo SCI Receive


3.3.8.3.6.4

Mdulo SCI (SCI Module).

Esta opcin de configuracin permite seleccionar que mdulo SCI A o B


para la comunicacin.
3.3.8.3.6.5

Paquete adicional al comienzo (Additional Package header).

Esta opcin de configuracin permite adicionar un valor en formato ASCII


para reconocer donde empieza el dato para asegurar la correcta transmisin y
recepcin, en la figura se agrega una S.
3.3.8.3.6.6

Paquete adicional al trmino (Additional Package terminator).

Esta opcin de configuracin nos permite adicionar un valor en formato


ASCII, en la figura se agrega una E.
3.3.8.3.6.7

Tipo de dato (Data Type).

Este parmetro de configuracin permite establecer el tipo de dato de


salida. Las opciones disponibles son single, int8, uint8, int16, uint16, int32, y
uint32.
3.3.8.3.6.8

Longitud de dato (Data Length).

Este parmetro especfica cuantos tipos de datos es capaz de recibir el


bloque (no la cantidad de bytes). El tamao del dato se auto-configura a partir
de las caractersticas del dato en la entrada.

P g i n a | 88

3.3.8.3.6.9

Salida inicial (Initial output).

Este parmetro de configuracin sirve si la transferencia de datos ha


sobrepasado el tiempo mximo de espera. Se detiene el proceso y este
parmetro permite inicializar nuevamente la transmisin enviando el ltimo dato
que haya sido correctamente recibido.

Fig. 3.55. Ventana de configuracin mdulo SPI Transmit.


3.3.8.3.7.0

Mdulo SCI de transmisin (SCI Transmit Module).

Esta opcin de configuracin permite seleccionar que mdulo SCI A o B


para la comunicacin.
3.3.8.3.7.1

Paquete adicional al comienzo (Additional Package header).

Esta opcin de configuracin permite adicionar un valor en formato ASCII


para reconocer donde empieza el dato para asegurar la correcta transmisin y
recepcin, en la figura se agrega una S.

3.3.8.3.7.2

Paquete adicional al trmino (Additional Package terminator).

Esta opcin de configuracin permite adicionar un valor en formato


ASCII, en la figura se agrega una E.
3.3.8.3.7.3

Habilitacin de interrupcin FIFO (Enable FIFO interrupt).

Esta opcin de configuracin si se habilitada ejecuta una interrupcin si


el FIFO se encuentra en desbordamiento.

P g i n a | 89

3.3.8.3.8

Bloque GPIO Puerta de entrada/salida de propsito general.

Fig. 3.56. Bloques GPIO


Estos Bloques son los encargados de configurar los registros de multiplexion
de las GPIO (Pines de propsito general de E/S). Cuando un pin es configurado
como entrada digital queda inmediatamente inhabilitado para utilizarse como
salida digital para algn perifrico. Cada procesador tiene disponible diferente
nmero de pines GPIO:
o C280x tiene disponible 35 pines GPIO.
o C2802x tiene disponible 22 pines GPIO.
o C2803x tiene disponible 45 pines GPIO.
o C28x3x tiene disponible 64 pines GPIO.

Fig. 3.57. Ventana de configuracin mdulos GPIO

P g i n a | 90

3.3.8.3.8.1

Parmetros de configuracin general del Bloques GPIO

3.3.8.3.8.2

Grupo GPIO (GPIO Group).

Esta opcin de configuracin permite seleccionar un grupo de pines


GPIO para configurar, cada procesador en particular va a tener diferente
distribucin de pines GPIO.

3.3.8.3.8.3

Tiempo de muestreo (Sample time).

Este parmetro de configuracin permite establecer el intervalo de


tiempo entre samples de entrada/salida, adems para establecer el tiempo de
muestreo antes del bloque GPIO, se configura este parmetro en -1.

3.3.8.3.8.4

Tipo de dato (Data type).

Este parmetro indica el tipo de dato que se puede ingresar a los


Bloques GPIO, la entrada del bloque es capaz de leer un tipo de dato de 16 bit
integrado, los tipos de datos permitidos o soportados por el bloque son los
siguientes auto, single, int8, uint8, int16, uint16, int32, uint32 o boolean.

P g i n a | 91

3.4

Code composer studio.

Code Composer Studio (CCS) es un IDE (Integrated Development


Environment). Es un ambiente de desarrollo integrado para programar los
procesadores digitales de seales (DSP) de Texas Instruments. Code
Composer Studio CCS entrega todas las herramientas necesarias facilidad,
flexibilidad e integracin para soporte de software en tiempo real para el DSP
TSM320F2833x. CCS permite un manejo rpido y sencillo para poder desplegar
herramientas necesarias en todas las etapas del proceso de diseo de una
aplicacin, incluyendo cdigo, compilacin, depuracin y anlisis.

Figura 3.58. Proceso de Desarrollo del cdigo en CCS.


Entre las principales propiedades del CCS se encuentran las siguientes:
o Cdigo TMS320 DSP estndar.
o Familiar y fcil de usar IDE con editor Code Wright integrado.
o Kernel DSP/BIOS escalable en tiempo real y herramientas de
configuracin.
o Herramientas

para

generacin

de

cdigo

en

lenguajes

C/C++/Assembly.
o Depurador de cdigo fuente con anlisis en tiempo real.
o Variedad de simuladores preconfigurados y tarjetas para todas las
plataformas.
o Variedad de tutoriales.
o Tutoriales para comenzar con el IDE CCStudio, Code Tuning, DSP
BIOS, RTDX y emulacin en tiempo real.
o Cdigos de ejemplo y Bibliotecas.
o Soporte para TMS320C2000, TMS320C5000 (incluyendo los
procesadores

OMAP),

TMS320C6000

(incluyendo

procesadores the Da Vinci la gama ms alta de Texas


Instrument).

P g i n a | 92

3.4.1 Caractersticas.
Entre las caractersticas que posee el ambiente de desarrollo de CCS se
encuentran las herramientas de trabajo que mejoran el tiempo de trabajo para
desarrollo de software y optimizan el funcionamiento para todas las aplicaciones
DSP en tiempo real.
Las herramientas ms importantes del Code Composer Studio incluyen:
o Herramientas

para

generacin

de

cdigo

DSP

TMS320:

compilador C/C++.
o Viene con Visual Proyect Manager con interfaz de control de
cdigo y soporte para multiproyectos que permite manejar sobre
100 archivos.
o Configuracin Drag and Drop CCStudio que soporta:
Drivers XDS560 de emulacin de alta velocidad.
Drivers XDS510 de emulacin.
Drivers XDS100 de emulacin.
Simuladores para todos los dispositivos, modo CPU y CPU
ms memoria.
Opciones de definicin configurable para tarjetas.
Editor Code Wright totalmente integrado.
Administrador de componentes soporta mltiples versiones
de DSP/BIOS y de herramientas de generacin de cdigo
dentro del IDE.

P g i n a | 93

La funcin depurador posee las siguientes propiedades:


o Debug Rewind: Retrocede en la simulacin.
o Simples breakpoints.
o Breakpoints avanzados y de Hardware.
o Puntos de prueba para inyeccin/extraccin de datos.
o Navegador para Smbolos y Watch Windows avanzado.
o Administrador unificado de Breakpoints para configurar y administrar
breakpoints por software y hardware desde una sola y simple interfaz.
o Connect / Disconnect; conexin robusta y resilente entre el cliente y la
tarjeta.
o Transmisor de datos RTDX para intercambio en tiempo real entre la
tarjeta y el cliente.
o Un sin nmero de guas y cdigos de ejemplo para hardware y software.
Adems de tutoriales y manuales.
El software Code Composer Studio adems incluye:
o DSP/BIOS Kernel para el TMS320 DSPs
o Multihebras previamente vacas.
o Comunicacin entre hebras (threads).
o Manejo de Interrupciones.
o Algoritmos estndar TMS320 DSP para poder volver a usar el software.
o Soporte de Bibliotecas para el Chip con el fin de simplificar la
configuracin del dispositivo.
o Bibliotecas DSP para optimizar las funcionalidades del DSP.

P g i n a | 94

3.4.2 Visualizacin de entorno del programa CCSv3.3.


Configuracin tarjeta de desarrollo XDS100 emulator para el DSP
TMS320F28335.
Una vez instalado el programa lo primero que hay que configurar es la
tarjeta en la cual est montado el microprocesador.

Fig. 3.59. Seleccin de Configuracin de la Tarjeta. Emulador XDS100


Seleccionar Create Board y

luego elegir la conexin

TI XDS100pp

Emulator y presionar el botn ADD. En la siguiente ventana escribir un nombre


arbitrariamente presionar el botn NEXT y luego FINISH. Esto ltimo se
muestra en la siguiente ventana:

Fig. 3.60. Ventana para ingresar nombre de la conexin

P g i n a | 95

Luego se marca la tarjeta creada y se escoge la tarjeta DSP modelo


TSM320C2800 y se agrega a la conexin, tal como se muestra en la siguiente
figura:

Fig. 3.61. Eleccin de modelo del DSP.


Para agregarla simplemente se presiona el botn ADD y aparecer la
siguiente ventana:

Fig. 3.62. Propiedades del microprocesador configurado

P g i n a | 96

Posteriormente se presiona OK y se guarda desde el panel de


configuraciones en la barra de herramientas o presionando el botn Save &
Quit. Luego de ello, el CCS se iniciar automticamente. Cabe mencionar que
si esta configuracin no es ejecutada el programa no podr reconocer el
hardware y la tarjeta no se podr conectar con el programa.

Fig. 3.63. Presionar el Botn Save & Quit.


Una vez configurado, se muestra la ventana principal de Code Composer
Studio.

Fig. 3.64. Entorno Code Composer Studio (CCSv3.3).

P g i n a | 97

Captulo IV
Resultados: Simulaciones y prueba en
perifricos

P g i n a | 98

4.1

Introduccin
En el siguiente captulo se entregan los resultados obtenidos en las

pruebas realizadas en laboratorio. Se describen las pruebas que se realiz a los


mdulos del DSP en especfico el mdulo ADC, SPI, SCI, PWM y GPIO. Se
muestran los modelos creados en Simulink para cada mdulo en particular
realizando una descripcin de lo que interpreta cada modelo a nivel del
hardware de DSP, adems se muestran algunas seales obtenidas con el
osciloscopio y tambin se visualizan los resultados de las pruebas obtenidas
con el mdulo SCI (UART).

P g i n a | 99

4.2

Mdulo SCI (Interfaz de comunicacin serie).

Fig. 4.1. Modelo en Simulink bloque SCI Transmit.


El siguiente modelo creado con el software Simulink, es una prueba de la
comunicacin SCI a travs de este mtodo de programacin, el modelo enva
un mensaje en formato UINT 16, que es lo permitido a la entrada del bloque SCI
XMT. El bloque Custom Board for TI CCS es configurado de acuerdo a la
caracterstica del hardware disponible en especfico para la tarjeta XDS100
emulator con el microprocesador TMS320F28335. El funcionamiento del
modelo en forma general es la siguiente, la constante que ingresa al bloque
Embedded Matlab Function se puede interpretar como una seal de disparo,
para que se envi un mensaje a la entrada del bloque SCI XMT. Todo este
procedimiento es posible gracias a la funcin que contiene el bloque Embedded
Matlab Function, que funciona de la siguiente manera: cuando la entrada al
bloque sea igual a uno, a la salida se desplegara un mensaje anteriormente
definido, luego este es transmitido hacia la puerta serial que en el proyecto se
hizo en forma virtual debido a que los computadores en los cuales se trabajo no
poseen puerta serie. Por esta razn se instalo un programa que simula dicha
entrada a nivel de software y adems nos permite visualizar dichos datos, es
una versin virtual de windows Hyperterminal. Con este podemos visualizar los
mensajes emitidos por el mdulo SCI del DSP.

P g i n a | 100

Visualizacin de un mensaje enviado al COM virtual a travs de


programacin con un modelo desarrollado en Simulink.

Fig. 4.2. Mensaje hola mundo enviado al puerto COM virtual con el modelo en
Simulink.
Las letras S y E corresponden a los datos que indican el comienzo y el
final del dato que debe ser enviado.

Fig 4.3. Caracteres adicionales que indican el comienzo y final del dato a
transmitir.

P g i n a | 101

4.3

Mdulo PWM (Modulacin por ancho de pulso).

Fig. 4.4. Modelo en Simulink donde se utilizan los mdulos ADC y PWM

Fig. 4.5. Modelo Simulink Bloque Sub-System


El modelo de la figura nos permite visualizar el uso del bloque ADC y el
bloque PWM, con lo cual el bloque ADC realiza un muestreo de una seal de
tensin analgica la cual vara continuamente en el tiempo, con esto logramos
obtener una seal digital, la cual utilizamos para generar una seal PWM que
varie su ciclo de trabajo proporcionalmente a la seal de entrada al conversor
anlogo / digital y comprobamos el funcionamiento de estos dos mdulos. Cabe
mencionar que el bloque Hardware Interrupt nos permite disponer de la rutina
de servicio de interrupcin (ISR), para interrumpir la ejecucin del subsistema
que posee el bloque ADC-PWM Subsystem cuando es recibido la alerta de
interrupcin por el registro ADCINT denominado registro ADC de interrupcin.

P g i n a | 102

4.4

Mdulo ADC (Conversor anlogo-digital).

Fig. 4.6. Modelo en Simulink donde se utilizan los mdulos ADC.


El modelo anterior muestra el funcionamiento del bloque ADC, se
comprob el funcionamiento de este mdulo. Se ingresa una seal anloga a
una entrada del conversor la cual es transmitida al bloque Embedded Matlab
Function que contiene una funcin que modifica los datos provenientes del
bloque ADC y luego estos datos modificados se almacenan en una variable
denominada Y. Este ejemplo fue creado para establecer si la programacin del
mdulo era correcta y si este guardaba correctamente los datos convertidos de
anlogo a digital.

P g i n a | 103

4.5

Mdulo SPI (Interfaz serial para perifricos).

Fig. 4.7. Modelo Simulink para comprobar funcionamiento mdulo SPI


El modelo presentado en la figura 8.6 muestra el funcionamiento del
mdulo SPI. El bloque denominado Read Duty Cycle es un bloque de los
Toolboxes de Simulink llamado Memory Copy Block. Este es el encargado
de leer la direccin de memoria 0x8FF0. El bloque C28x3x SPI XMIT es el
encargado de transmitir el valor ledo, mientras que el bloque C28x3x SPI
RCV es el encargado de recibir el valor. El valor que se recepciona por el
bloque SPI RCV se enva al bloque ePWM. Luego el ciclo de trabajo de la
seal ePWM es controlada por el valor enviado desde el bloque SPI RCV. El
periodo de la seal se establece en 6400 ciclos de reloj.
El ciclo de trabajo de la seal PWM puede variar entre 25%, 50% y 75%
segn lo que se seleccione en el modelo de Simulink. Una caracterstica que
se investig es la opcin de cambiar el ciclo de trabajo mientras se ejecute
el cdigo en el procesador. Esto se puede realizar si se selecciona la opcin
Write en el software Embedded IDE Link. Esta opcin nos permite escribir
un valor determinado en la direccin de memoria determinada por el bloque
Memory Copy Block, que en este caso es 0x8FF0.

P g i n a | 104

Visualizacin cambio del ciclo de trabajo de la seal PWM modificando


Duty Change Cycle.

Fig. 4.8. Ciclo de trabajo 25%.

Fig. 4.9. Ciclo de trabajo 50%.

Fig. 4.10. Ciclo de trabajo 75%.

P g i n a | 105

Fig. 4.11. Generacin de seal de reloj SPICLK a travs de la programacin con


el modelo creado en Simulink para prueba de mdulo SPI.

Fig. 4.12 Seal de SPICLK del mdulo SPI a travs de programacin con
Matlab/Simulink.

P g i n a | 106

Fig. 4.13. Seal de dato que sale del bloque SPI XMIT a travs de la
programacin con el modelo creado en Simulink para prueba de mdulo SPI.

Fig. 4.14. Forma de onda del dato generado por del mdulo SPI a travs de
programacin con Matlab/Simulink.

P g i n a | 107

4.6

Mdulo GPIO (Puertas de entrada/salida de propsito general).

Fig. 4.15. Modelo Simulink para comprobar funcionamiento mdulo GPIO

Fig. 4.16 Ventana de configuracin mdulo GPIO

P g i n a | 108

El modelo en Simulink mostrado en la figura anterior es bastante bsico,


y simplemente es una comprobacin de la generacin de cdigo ejecutable en
el microprocesador y su tarjeta de desarrollo, sirve bsicamente para
comprobar el funcionamiento de las GPIO, el modelo muestra un tren de pulsos
que es enviado al exterior a travs de una GPIO configurada por el bloque
Digital Output.
Visualizacin de pruebas ejecutadas en laboratorio con el bloque ePWM
(Modulador de ancho de pulso mejorado).

Fig. 4.17. Generacin de onda PWM a travs de la programacin con el modelo


creado en Simulink (Ejecucin de cdigo en tarjeta).

Fig. 4.18. Forma de onda PWM obtenida con el osciloscopio.

P g i n a | 109

Captulo V
Conclusiones

P g i n a | 110

5.1

Conclusiones.

En el presente trabajo de titulacin se present el desarrollo de una


herramienta de programacin para DSP. En especfico un DSP (Procesador
Digital de Seales) TMS320F28335 de la empresa Texas

Instrument; fue

programado de una forma no convencional para crear una perspectiva diferente


al entendimiento del funcionamiento de dicho dispositivo y tener una forma
alternativa de programacin a los DSP. Tambin se present una descripcin
detallada para la generacin de cdigo a partir de un modelo realizado en
Simulink, se profundiz en las opciones de configuracin necesarias para
generar cdigo integrado para una plataforma de hardware especfico. Se
trabajo en la verificacin y coherencia de los algoritmos desarrollados y su
ejecucin

en

el

respectivo

hardware,

observar

sus

limitaciones

potencialidades.
El objetivo principal de este trabajo era desarrollar una herramienta de
programacin a travs de Matlab/Simulink para una familia de DSP especficos,
el objetivo alcanzado fue generar cdigo para los mdulos ADC, SCI, SPI, PWM
y GPIO del sistema.
Con esto se comprob que el hardware que se dispuso para el proyecto
funciona con las herramientas presentadas. Si bien los modelos de Simulink
eran aplicaciones bsicas de los mdulos sirvi para comprobar si se poda
realizar la programacin de esta manera. Se explot el gran potencial que tiene
esta herramienta debido a que Matlab/Simulink posee una gran cantidad de
funciones en variados campos de la ingeniera desde procesamiento de seales
hasta biotecnologa. Por esto la utilizacin de Matlab/Simulink como plataforma
de programacin es una excelente eleccin para desarrollar aplicaciones que
resulten complejas de realizar a travs de programacin convencional de un
lenguaje de ms bajo nivel.
Como trabajo futuro se tiene como objetivo programar la memoria Flash y
la totalidad de los mdulos o perifricos del DSP, crear modelos para una
aplicacin en particular como por ejemplo control de motores, procesamiento de
imgenes, creacin de interfaz bsica, etc. El principal objetivo futuro es
desarrollar esta herramienta para su utilizacin en el entendimiento del
funcionamiento del DSP.

P g i n a | 111

5.2

Referencias.

[1]

The Mathworks Inc.Simulink-Simulation and Model Based Design

[2]

The Mathworks Inc. (Versin 2010). Matlab R2010a. [Programa de


computador]. Recuperado Septiembre 2010, The Mathworks Inc.

[3]

The Mathworks Inc. Real-Time Workshop Real-Time Workshop Users


Guide (Versin 7.5), recuperado septiembre 2010, The Mathworks Inc.

[4]

The Mathworks Inc. Embedded IDE Link Embedded IDE Link


Users Guide (Versin 4.2), recuperado septiembre 2010, The Mathworks
Inc.

[5]

The Mathworks Inc. Embedded IDE Link For Use with Texas
Instruments Code Composer Studio (Versin 4.2), recuperado
septiembre 2010, The Mathworks Inc.

[6]

The Mathworks Inc. Target Support Package Target Support


Package Users Guide (Versin 4.2), recuperado septiembre 2010, The
Mathworks Inc.

[7]

Texas Instrument. Code Composer Studio Code Composer Studio


Users Guide (Versin 3.3), recuperado octubre 2006, www.ti.com.

[8]

Texas Instrument. TMS320F28335 (DSCs) TMS320F28335 (DSCs)


Data Manual of Digital Signal Processor (Versin 2007), recuperado
marzo 2010, focus.ti.com/lit/ds/sprs439h/sprs439h.pdf.

P g i n a | 112

5.3

ANEXO.

Programas necesarios para la ejecucin del proyecto.


Matlab 7 versin 2010 (R2010a).
Sub-programas de Matlab.
o Real-Time Workshop.
o Embedded IDE Link.
o Target Support Package.
IDE de los DSP Texas Instrument.
Programa Code Composer Studio v3.3
Driver de la tarjeta XDS100 usb emulator.
Link de descarga drivers tarjeta XDS100 de la pgina www.ti.com. (Es
necesario crear una cuenta en la pgina para acceder a las opciones de
descarga).
http://software-dl.ti.com/dsps/dsps_registered_sw/sdo_ccstudio/CCSv3/Drivers/XDS100_v1_1_RTM.exe

Driver chip FTDI de la tarjeta XDS100 para comunicacin serial.


http://www.ftdichip.com/Resources/Utilities.htm#MProg

Hyperterminal Private Edition (Hyperterminal virtual para Win vista y Win 7).
http://download.cnet.com/HyperTerminal-Private-Edition/3000-2155_4-10966768.html

You might also like