programación de dsp a través de herramientas disponibles ... · universidad de magallanes...

125
UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de Herramientas disponibles en Matlab 7.0 / Simulink TRABAJO DE TITULACIÓN PARA OPTAR AL TÍTULO DE INGENIERO EN ELECTRICIDAD MENCIÓN ELECTRONICA INDUSTRIAL Cristian Erardo Miranda Barrientos Profesor guía: Rolando Aguilar Cárdenas Punta Arenas, Chile 2011

Upload: doantruc

Post on 04-Jun-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

UNIVERSIDAD DE MAGALLANES

FACULTAD DE INGENIERÍA

Departamento de Electricidad

Programación de DSP a través de Herramientas disponibles en

Matlab 7.0 / Simulink

TRABAJO DE TITULACIÓN PARA OPTAR AL TÍTULO DE INGENIERO EN ELECTRICIDAD MENCIÓN

ELECTRONICA INDUSTRIAL

Cristian Erardo Miranda Barrientos

Profesor guía: Rolando Aguilar Cárdenas

Punta Arenas, Chile

2011

Page 2: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | ii

Page 3: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | iii

Page 4: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

Agradecimientos

Quiero expresar mis más sinceros agradecimientos a todas las personas

que colaboraron en el desarrollo de este trabajo de titulación.

También merece mención significativa el profesor Rolando Aguilar por su

apoyo para el desarrollo de este proyecto por su guía y ayuda.

Finalmente agradezco a mis familiares y amigos por su apoyo y

comprensión.

Page 5: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | v

Resumen

El presente trabajo de titulación presenta la programación de un

procesador digital de señales (DSP), a través del software Matlab / Simulink,

como una forma alternativa a la programación 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 programación del DSP se ejecuto con el subprograma de

Matlab / Simulink Real-Time Workshop encargado de la creación de código en

lenguaje C. Este programa crea un código ejecutable solamente en ambiente

Matlab, por lo tanto se hizo necesario modificar dicho código 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 código para que sea ejecutable en

plataformas específicas, este programa tiene soporte para diferentes modelos

de procesadores de la empresa Texas Instrument y en específico del modelo

que se utilizó en el proyecto, se hizo de gran utilidad para el desarrollo de esta

herramienta de programación. Por último como se tiene un código ejecutable

para una plataforma de hardware específica, también se utilizó otra herramienta

de Matlab, el software Target Support Package el cual ofrece bloques que

simulan módulos y periféricos del procesador. Son de gran utilidad ya que

cuando se procede a la generación de código estos bloques automáticamente

se cargan todas las bibliotecas de funciones y archivos de cabecera necesarios

para la programación de estos.

Page 6: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | vi

Tabla de contenido

1.1 Introducción al trabajo de título. .................................................................................... 2

1.2 Objetivos y alcances del trabajo de título.................................................................... 3

1.3 Estructura del trabajo de título. ..................................................................................... 4

2.1 Introducción...................................................................................................................... 6

2.2 Procesamiento digital de señales................................................................................. 7

2.3 Elementos básicos de un sistema de procesamiento digital.................................... 7

2.4 Conversión Análoga-Digital. .......................................................................................... 9

2.5 Conversión Digital-Análoga. .......................................................................................... 9

2.6 Procesador digital de señales ..................................................................................... 10

2.7 Introducción al DSP. ..................................................................................................... 11

2.8 Procesador digital de señal TMS320f28335. ............................................................ 13

2.8.1 Periféricos............................................................................................................... 14

3.1 Introducción.................................................................................................................... 16

3.2 Software de desarrollo y de aplicación. ..................................................................... 17

3.3 Matlab 7 versión 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 Introducción 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 Configuración de los periféricos.................................................................. 26

3.3.5.4.1 ADC Conversor análogo / digital. ............................................................... 26

Page 7: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

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 Módulo 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 Asignación pin (Tx) ................................................................................... 29

3.3.5.4.2.8 Asignación pin (Rx) ................................................................................... 29

3.3.5.4.3 Módulo de captura mejorada (Enhanced Capture eCAP). ..................... 30

3.3.5.4.3.1 Asignación pin ECAP1. ............................................................................ 30

3.3.5.4.3.2 Asignación pin eCAP2.............................................................................. 30

3.3.5.4.3.3 Asignación pin eCAP3 eCAP4. ............................................................... 30

3.3.5.4.4 Modulación por ancho de pulso mejorada (ePWM)................................. 31

3.3.5.4.4.1 Asignación pin SYNCI. ............................................................................. 31

3.3.5.4.4.2 Asignación 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 dirección propia (Own address register). ......................... 33

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

3.3.5.4.5.5 Módulo frecuencia de reloj (Module clock frecuency). ........................ 33

3.3.5.4.5.6 Módulo Prescalador de reloj (IPSC)....................................................... 33

3.3.5.4.5.7 Divisor de tiempo en baja del reloj patrón (Master clock low-time

divider). ...................................................................................................................... 34

3.3.5.4.5.8 Divisor de tiempo en alta del reloj patrón (Master clock high-time

divider). ...................................................................................................................... 34

3.3.5.4.5.9 Habilitación bucle de regreso (Enable loopback)................................. 34

3.3.5.4.6 Habilitación interrupción Tx (Enable Tx interrupt). ................................... 34

Page 8: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | viii

3.3.5.4.6.1 Habilitación interrupción Rx (Enable Rx interrupt). .............................. 34

3.3.5.4.6.2 Habilitación interrupción de sistema (Enable system interrupt) ......... 34

3.3.5.4.7 Interfaz de comunicación 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 carácter en bits (Character length bits)............................ 36

3.3.5.4.7.4 Modo de comunicación (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 transmisión (Data swap width). ........................ 36

3.3.5.4.7.7 Habilitación bucle de regreso (Enable Loopback). .............................. 37

3.3.5.4.7.8 Número 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 suspensión..................................................................................... 38

3.3.5.4.8.1 Asignación de pines Rx (Pin assignment Rx)....................................... 38

3.3.5.4.8.2 Asignación de pines Rx (Pin assignment Tx). ...................................... 38

3.3.5.4.9 Interfaz de periféricos 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 suspensión (Suspension mode). ............................................ 40

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

3.3.5.4.9.6 Habilitación bucle de regreso (Enable Loopback). .............................. 40

3.3.5.4.9.7 Habilitación modo tres cables (Enable 3–wire mode). ........................ 40

3.3.5.4.9.8 Habilitación FIFO (Enable FIFO). ........................................................... 41

3.3.5.4.9.9 Nivel de interrupción FIFO Rx (FIFO interrupt level (Rx)). ................. 41

3.3.5.5 Nivel de interrupción FIFO Tx (FIFO interrupt level (Tx)). ...................... 41

3.2.5.5.1 Retardo de transmisión FIFO (FIFO transmit delay). .............................. 41

3.3.5.5.2 Modo................................................................................................................ 41

3.3.5.5.3 Asignación pin CLK....................................................................................... 41

3.3.5.5.4 Asignación pin SOMI. ................................................................................... 41

3.3.5.5.5 Asignación de pin STE (Pin de habilitación para transmisión en modo

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

3.3.5.5.6 Asignación pin SIMO. ................................................................................... 42

Page 9: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

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 Asignación pin EQEP1A. ............................................................................. 43

3.3.5.6.2 Asignación pin EQEP1B. ............................................................................. 43

3.3.5.6.3 Asignación pin EQEP1S. ............................................................................. 43

3.3.5.6.4 Asignación pin EQEP1I. ............................................................................... 43

3.3.5.7.0 Pines entrada salida de propósito general (GPIO). ................................. 44

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

3.3.5.7.2 Calificación usando 3 muestras (Qualification using 3 samples). ......... 45

3.3.5.7.3 Calificación usando 6 muestras (Qualification using 6 samples). ......... 45

3.3.5.7.4 Prescalador del periodo de calificación del muestreo (Qualification

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

3.3.5.8.0 Perro Guardián (Watchdog). ....................................................................... 47

3.3.5.8.1 Habilitación de Perro guardián (Enable Watchdog)................................. 47

3.3.5.8.2 Contador de señal de reloj........................................................................... 47

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

3.3.5.8.4 Tiempo fuera de ejecución. ......................................................................... 48

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

3.3.5.9.1 Habilitación de programación memoria Flash. ......................................... 49

3.3.5.9.2 Detección sectores memoria Flash y borrado de archivos COFF......... 50

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

3.3.5.9.4 Locación específica API. .............................................................................. 50

3.3.5.9.5 Ejecución. ....................................................................................................... 50

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

3.3.6.0.1 Habilitación canal DMA. ............................................................................... 51

3.3.6.0.2 Tamaño de dato. ........................................................................................... 51

3.3.6.0.3 Fuente de interrupción.................................................................................. 52

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

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

3.3.6.0.6 Tamaño (Size). .............................................................................................. 53

3.3.6.0.6.1 Ráfaga (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

Page 10: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 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 habilitación de un disparo (Enable one shot mode). ........... 56

3.3.6.0.9.2 Habilitación Sync (Sync enable). ............................................................ 56

3.3.6.0.9.3 Habilitación modo continuo (Enable continuous mode). ..................... 57

3.3.6.0.9.4 Habilitación 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 Habilitación de interrupción de rebalse (Enable overflow interrupt).. 57

3.3.7.0.0 PLL. ................................................................................................................. 59

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

3.3.7.1 Introducción al Real-Time Workshop. ........................................................ 61

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

3.3.7.3 Descripción del procedimiento realizado por el software para la

generación de código y su posterior ejecución en el hardware................................. 63

3.3.7.4 Código generado para DSP. ....................................................................... 64

3.3.7.4.1 Generación de código. ................................................................................. 65

3.3.7.4.2 Configuración parámetros para compilación y ejecución de código. .... 65

3.3.7.4.3 Configuración parámetros SOLVER. ......................................................... 66

3.3.7.4.4 Configuración parámetros implementación de hardware. ...................... 66

3.3.7.4.5 Carga y Ejecución del Programa Objeto. .................................................. 70

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

3.3.8.1 Introducción Toolbox Target Support Package ........................................ 72

3.3.8.2 Características principales........................................................................... 73

3.3.8.3 Opciones de configuración de Bloques de Target Support Package™

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

3.3.8.3.1 Bloque Conversor análogo/digital............................................................... 75

3.3.8.3.1.1 Parámetros de configuración Bloque ADC. .......................................... 76

3.3.8.3.1.2 Módulo A..................................................................................................... 76

3.3.8.3.1.3 Módulo B..................................................................................................... 76

3.3.8.3.1.4 Módulo A B................................................................................................. 76

3.3.8.3.1.5 Modo de conversión.................................................................................. 76

Page 11: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | xi

3.3.8.3.1.6 Comienzo de conversión.......................................................................... 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 Configuración canales de entrada Bloque ADC................................... 78

3.3.8.3.2.0 Número de conversiones (Number of conversions). ........................... 78

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

3.3.8.3.2.2 Uso de múltiples 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 Parámetros de configuración general del Bloque ePWM ................... 80

3.3.8.3.3.2 Configuración General.............................................................................. 80

3.3.8.3.3.3 Módulo (Module)........................................................................................ 80

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

3.3.8.3.3.5 Especificación 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 módulo ePWMA ePWMB .............................................. 82

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

3.3.8.3.4.2 Vía específica del CMPA ......................................................................... 82

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

3.3.8.3.5 Bloques de Interfaz serial de periféricos (SPI). ........................................ 83

3.3.8.3.5.1 Parámetros de configuración 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 recepción de salida (Output receive error

status). ...................................................................................................................... 84

3.3.8.3.5.4 Habilitación de estado de bloqueo (Enable blocking status).............. 84

3.3.8.3.5.5 Error en el estado de salida de transmisión (Output transmit error

status). ...................................................................................................................... 85

3.3.8.3.5.6 Habilitación modo de bloqueo (Enable blocking mode). ..................... 85

3.3.8.3.5.7 Interrupción después de dato transmitido (Post interrupt when data is

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

3.3.8.3.6 Bloque de Interfaz de comunicación serie (SCI). ..................................... 86

Page 12: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

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 Parámetros de configuración general del Bloques SCI....................... 87

3.3.8.3.6.4 Módulo 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 término (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 Módulo SCI de transmisión (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 término (Additional Package terminator). ......... 88

3.3.8.3.7.3 Habilitación de interrupción FIFO (Enable FIFO interrupt). ................ 88

3.3.8.3.8 Bloque GPIO Puerta de entrada/salida de propósito general. ............... 89

3.3.8.3.8.1 Parámetros de configuración 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 Características................................................................................................... 92

3.4.2 Visualización de entorno del programa CCSv3.3. ....................................... 94

4.1 Introducción................................................................................................................ 98

4.2 Módulo SCI (Interfaz de comunicación serie)...................................................... 99

4.3 Módulo PWM (Modulación por ancho de pulso). .............................................. 101

4.4 Módulo ADC (Conversor análogo-digital). ......................................................... 102

4.5 Módulo SPI (Interfaz serial para periféricos). .................................................... 103

4.6 Módulo GPIO (Puertas de entrada/salida de propósito general)..................... 107

5.1 Conclusiones. .......................................................................................................... 110

5.2 Referencias. ............................................................................................................. 111

Page 13: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | xiii

Índice de Tablas

TABLA 1: Configuración Parametros Solver………………………………………65

TABLA 2: Configuración Embedded Hardware (Implementación de Hardware)….65

TABLA 3: Configuración Real Time Workshop……………………………………66

TABLA 4: Configuración TI c2000 selección de plataforma……………………….67

TABLA 5: Configuración TI c2000 generación de código…...……………………..67

Page 14: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

Capítulo IIntroducción

Page 15: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 2

1.1 Introducción al trabajo de título.

En el siguiente trabajo de titulación se presenta la programación de un

procesador digital de señales (DSP). La elección de este dispositivo

básicamente se realizó por la potencialidad de uso en variados ámbitos de

producción, como son el control de máquinas, las telecomunicaciones, el

procesamiento de señales y la electrónica industrial. La programación del

dispositivo se realizó a través de Matlab / Simulink. Este software especializado

y de alto potencial para diferentes aplicaciones en el área de la ingeniería 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 programación 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

programación 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 programación

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 operación en punto flotante, el hardware

disponible y su bajo costo.

Por los motivos anteriormente mencionados, la programación se realizó

con el software Matlab / Simulink y subprogramas tales como Real-Time

Workshop, Target Support Package y Embedded IDE Link.

Page 16: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 3

1.2 Objetivos y alcances del trabajo de título.

Desarrollar una herramienta de programación alternativa a la manera

convencional, a través de modelos realizados en Matlab / Simulink.

Creación de modelos en Simulink para ejecución en el DSP

TMS320F28335 de la empresa Texas Instrument.

Generación de código en lenguaje C de un modelo creado en Matlab /

Simulink, con el software Real-Time Workshop.

Modificación de código para su ejecución en Code Composer Studio.

Prueba de códigos generados por Matlab/Simulink y su ejecución en el

DSP TMS320F28335.

Page 17: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 4

1.3 Estructura del trabajo de título.

Esta constituida por seis capítulos organizados de la siguiente forma:

En el capítulo uno se entrega una introducción general.

En el capítulo dos se introduce sobre el procesamiento digital de señales,

los elementos básicos para este procedimiento y su importancia en los

procesos productivos.

En el capítulo tres se presenta el desarrollo del proyecto, se revisa los

programas utilizados para la generación de código que se ejecutan en el DSP,

se detallan los procedimientos de creación de modelos, la generación de

códigos, la modificación de código para un IDE específico y depuración de

modelos. Además se describe cada opción de configuración en el proceso de

creación del modelo en Simulink. Por último se indica configuraciones previas y

necesarias para generar código en una plataforma dada.

En el capítulo cuatro se entregan los resultados obtenidos en la

programación de los periféricos del procesador (módulos GPIO, ADC, SCI, SPI

y PWM) y se presenta una descripción de los modelos creados en Simulink y

cuál fue su desempeño en el hardware.

Page 18: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 5

Capítulo IIIntroducción al procesamiento digital de

señales

Page 19: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 6

2.1 Introducción.

En el siguiente capítulo se describe el procesamiento digital de señales

su evolución en el tiempo, su importancia en los procesos productivos y los

elementos que se utilizan para la realización de este proceso. Se menciona en

forma básica las características que posee este proceso sus ventajas y

desventajas. En este contexto también se hace referencia al procesador digital

de señales (DSP) utilizado en este proyecto (DSP TMS320f28335). Se

describen sus principales características (hardware y software). Por último se

detallan las características que lo diferencian de otros DSP en el mercado.

Page 20: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 7

2.2 Procesamiento digital de señales.

El mundo contemporáneo está representado por el cambio constante de

los diversos procesos, es por eso que cada día se desarrollan máquinas

sofisticadas, que tratan en lo posible de optimizar tiempo, espacio, costo,

consumo de energía. Hoy en día es posible encontrar en el mercado distintos

proveedores con microprocesadores y DSP compitiendo en precio, rendimiento

para realizar un proceso específico. Su principal diferencia es su arquitectura,

que varía de acuerdo a las aplicaciones y necesidades, en la cual van a ser

requeridos.

Las técnicas de procesamiento digital, ahora no son tan complicadas de

implementar como ocurría años atrás. Hoy en día podemos realizar

aplicaciones tanto en el dominio digital como analógico, con un conjunto de

herramientas que este proyecto desea evaluar y explotar. La fabricación en

serie de estos productos y su masificación 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 evaluación utilizada para

este proyecto bordea solamente US$100 al comprar solo una unidad.

2.3 Elementos básicos 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 típico a lazo abierto

Page 21: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 8

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

encontrados en los sistemas analógicos, debido a que estos no son afectados

por la temperatura, vibraciones mecánicas y variaciones de tensión que pueden

llegar a influir drásticamente en los resultados del sistema.

Con la utilización del procesamiento digital de señales se supera un gran

conjunto de obstáculos, alcanzándose:

o Aplicaciones más Variables.

o Aplicaciones más Eficientes.

Adicional a lo anterior el procesamiento digital de señales reduce:

o El número de Circuitos integrados en la Aplicación.

o Tiempo de ejecución del proyecto.

o Costo de desarrollo y hardware final.

o Consumo de Energía

El Procesamiento Digital de Señales es el conjunto de operaciones de

una(s) señal(es) en un hardware digital programado en lenguaje de alto como

de bajo nivel. En la práctica se refiere al procesamiento electrónico de señales

tales como sonido, radio y microondas usando técnicas matemáticas para

realizar transformaciones o extraer información. En el caso particular de los

DSP, son dispositivos altamente eficientes en el manejo de señales optimizadas

para procesamiento de señales en tiempo real.

Fig. 2.2. Tiempo de Muestreo/Espera/Procesamiento

Se dice que una aplicación 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.

Page 22: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 9

2.4 Conversión Análoga-Digital.

Las aplicaciones comunes de los DSP son en tiempo real, tales como el

sonido y ondas de radio que se originan en forma análoga. Una señal análoga

tiene la característica de ser continua en el tiempo. Los computadores digitales,

manejan señales de forma discontinua, una serie de números binarios, y esta

misma característica poseen los DSP. Para ello es necesaria la transformación

de las señales análogas en digitales.

Fig. 2.3. Visualización de la conversión ADC.

Esta transformación la realizan los Convertidores Analógicos Digitales

(ADC). Una vez terminada la etapa de conversión analógica-digital, los datos se

encuentran en el dominio digital en el DSP. Nótese que la limitante para que un

procesamiento digital ocurra, es la velocidad de conversión del ADC.

2.5 Conversión Digital-Análoga.

El conversor Digital-Análogo es un dispositivo electrónico que, a partir de

un dato digital genera una señal análoga. Conceptualmente la conversión DAC

se muestra en la figura 1.3.

Fig. 2.4. Visualización de la conversión DAC.

Page 23: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 10

Al utilizar una señal análoga s(t) de conversión, por cada muestra de la

secuencia s[n], se produce a la salida, a intervalos de T segundos, una réplica

de la señal s(t) con amplitud proporcional al valor de la muestra.

2.6 Procesador digital de señales

Un DSP o Digital Signal Processor (Procesador Digital de Señales) es

un procesador especializado en el análisis y procesamiento de señales en

tiempo real. Se caracteriza por disponer de funciones especializadas en el

tratamiento de señales tales como etapas de filtro, generación PWM,

conversión, etc. Su hardware esta diseñado para realizar operaciones en punto

flotante, lo que permite realizar casi cualquier operación de los MIPS. Los

sistemas basados en DSP deben trabajar en tiempo real, capturando y

procesando información.

Dentro de las aplicaciones de interés con los DSP tenemos:

o Eliminar ecos en líneas de comunicación.

o Hacer imágenes más nítidas en órganos internos en los equipos

médicos.

o Cifrar conversaciones en teléfonos celulares para mantener privacidad.

o Analizar datos sísmicos para encontrar nuevas reservas de petróleo.

El DSP debe ser capaz de manejar la información durante las

transformaciones de análogo a digital. La capacidad del procesador es una

función de su ancho de datos (el número de bits manipulados) y el tipo de

aritmética 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

teléfonos ya que ellos trabajan con un estrecho rango de frecuencias de audio.

Para aplicaciones de procesamiento de imágenes, gráficos 3-D y simulaciones

científicas necesitan un rango dinámico mucho mayor y por lo tanto requieren

procesadores de punto flotante de 32 bits y ADC de 24 bits.

Page 24: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 11

2.7 Introducción al DSP.

Un DSP es un Procesador de Señales Digitales, cuyo objetivo en

cualquier sistema es de dar el tratamiento digital adecuado de las señales que

ingresan a este dispositivo, dentro de sus características podemos mencionar:

o Procesamiento de señales 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 Reprogramación con solo actualizar el programa que reside en la

memoria del DSP, una aplicación que se le puede dar a esta

característica es la de actualizar tecnología.

o Diseño óptimo, con repeticiones o lazos comunes en algoritmos de

procesamiento de señal. El set de instrucciones de los DSP son

pequeños y óptimos para operaciones de procesamiento digital con un

simple ciclo realizamos multiplicaciones y acumulación.

o El DSP tiene modos de direccionamiento indirecto. Estos son

mecanismos de direccionamiento eficientes para los algoritmos de

procesamiento de señal.

o El DSP posee periféricos apropiados que brindan interfaces eficientes de

entrada y salida con otros dispositivos.

o En los DSP es posible acceder a memoria con una simple instrucción, 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 señal DSP se clasifican de acuerdo al

requerimiento y a la aplicación final. En nuestro caso se utiliza el DSP de la

empresa Texas Instrument, por lo que se hace una breve descripción de cada

familia de procesadores.

Page 25: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

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 característica de esta familia es estar provista de

un procesador eficiente, pues proporciona más MIPS (Mega

Instrucciones por Segundo) por Watt/Dólar/Medida. Dentro de las

aplicaciones podemos citar:

Teléfonos Celulares.

Reproductores de Audio.

Cámaras Digitales.

Modem, Telefonía y VoIP.

3) C6000 (C62x/64x/67x). Este dispositivo fue diseñado para un máximo

rendimiento, con una fácil programación (entorno de programación C,

Matlab, Code Composer Studio). Dentro de las aplicaciones podemos

mencionar:

Multi-canalización y Multi-función.

Estaciones base, para servicios inalámbricos.

Procesamiento de Imágenes.

Servidores Multi-media.

Video.

El proyecto no está orientado a ninguna aplicación en particular como se

explicó. El proyecto apunta al desarrollo de una herramienta de programación

de cualquier procesador, pero como el hardware que se tuvo a disposición es

de la serie C2000 nos enfocaremos en dichos procesadores. Se espera que

independientemente que es uno de la más baja gama, el haber seleccionado un

dispositivo con procesamiento de punto flotante amplía y generaliza las

aplicaciones.

Page 26: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 13

2.8 Procesador digital de señal TMS320f28335.

Este DSP es miembro de la familia C2000, utiliza aritmética de punto

flotante, tiene una velocidad de reloj de 150 MHz (6,67 ns), el núcleo funciona

con una tensión 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 rápida al procesamiento de interrupciones, la programación 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

Page 27: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 14

2.8.1 Periféricos.

Los periféricos en un procesador típico F2833x en general incluyen:

o 18 salidas Moduladoras de ancho de pulso (PWM).

o 6 salidas HRPWM Modulación por ancho de pulso de alta resolución.

o 6 entradas Enhanced Capture ECAP (Modo de Captura mejorada).

o 2 Módulos codificadores de cuadratura mejorado (eQEP Enhanced

quadrature Encoder).

o 3 CPU Timers de 32 bits

o 3 Módulos SCI Transmisor receptor asíncrono universal (UART).

o 2 Módulo con controlador de área de red mejorada eCAN (Enhanced

controller area network).

o 2 Módulos McBSP Búfer multicanal de puerto serie.

o 1 Módulo SPI Interfaz de protocolo serie.

o 1 Bus circuito inter-integrado ( )

o Conversor análogo-digital ADC de 12 bits

o Pines de propósito 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.

Page 28: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 15

Capítulo IIIHerramientas de desarrollo para generación

de código

Page 29: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 16

3.1 Introducción.

En el siguiente capítulo se presenta la parte más importante del proyecto,

se describen todos los programas que se utilizaron para la generación de

código ejecutable en el DSP TMS320F28335, y se detallan las opciones de

configuración en cada proceso de la generación de código. En primera instancia

se hace referencia al software principal en el desarrollo de esta herramienta, el

denominado Matlab en su versión 2010 y también Simulink, sus características

y su importancia en la solución de problemas del ámbito de la ingeniería.

Además 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

integración del código que será generado para que pueda ser reconocido y

ejecutado en el ambiente de desarrollo integrado del DSP. En específico, en el

software Code Composer Studio brindado por Texas Instrument para la

programación de DSPs en lenguaje C, se describen la mayoría de sus opciones

de configuración y su participación en el proceso de programación del DSP. El

software Real-Time Workshop es el encargado de la generación de código a

partir de la interpretación de un modelo creado en el software Simulink. En el

capítulo se describen las capacidades del software, sus potencialidades y

limitaciones. Además se mencionan los procedimientos de configuración para

la creación de código para el DSP TMS320F28335. Finalmente se menciona el

Toolbox Target Support Package; este software ofrece bloques que simulan los

módulos del DSP, donde agregando solamente estos bloques al modelo se

cargarán automáticamente todos los archivos necesarios para la configuración

de estos, facilitando en gran medida la programación de los DSP.

Page 30: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 17

3.2 Software de desarrollo y de aplicación.

Para la ejecución del proyecto se utilizaron varias herramientas de

software de desarrollo, como también software de aplicación, las mismas que

dada su potencia y flexibilidad son parte medular en la generación de código,

interacción entre hardware y software, comunicación entre diferentes software,

importación y exportación de información entre ellos. Dentro del software de

desarrollo se hizo uso de software muy potentes como lo son Matlab 7 versión

2010, Code Componer Studio versión 3.3 y la biblioteca especializada Simulink.

A continuación se entrega una pequeña introducción a las herramientas de

desarrollo empleadas.

3.3 Matlab 7 versión 2010.

Matlab es un lenguaje de muy alto rendimiento para cálculo matemático.

Este software integra en un solo programa varias herramientas entre las cuales

podemos citar: cálculos, visualización y programación en un ambiente fácil de

usar, donde los problemas y soluciones son expresadas en una notación

matemática.

Matlab se puede usar típicamente en:

o Matemática y computación.

o Desarrollo de algoritmos.

o Adquisición de datos.

o Modelación, simulación y desarrollo de prototipos

o Análisis de datos, exploración y visualización.

o Gráficos científicos y de ingeniería.

o Desarrollo de aplicaciones, incluyendo una interfaz gráfica de usuario.

o Y la más importante para el desarrollo de este proyecto, generación de

código ejecutable fuera del ambiente Matlab/Simulink.

Matlab es un sistema interactivo en donde el elemento básico 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 además de aplicaciones de gran

complejidad.

Page 31: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 18

El nombre Matlab proviene de Matrix Laboratory. Matlab ha evolucionado

a lo largo de los años con la ayuda de varios usuarios. En la industria, Matlab es

la herramienta escogida para la investigación de la alta productividad, desarrollo

y análisis.

Matlab provee una familia de aplicaciones específicas llamadas

toolboxes, que permiten aprender y aplicar tecnología especializada. Son una

extensa colección 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 señales, sistemas de control, redes

neurales, simulación, 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 Gráfica).

2. Biblioteca de funciones matemáticas: Esta es una colección de

programas computacionales, los cuales van desde funciones como

suma, seno, coseno, aritmética compleja, hasta funciones más

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 programación orientada a objetos.

4. Gráficos: Matlab tiene facilidades para la visualización de vectores y

matrices como gráficos para observar el comportamiento de los mismos.

5. Aplicación 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 código que posteriormente va

ser ejecutado en otro ambiente diferente a Matlab. Todo este proceso se puede

llevar a cabo gracias a Matlab y Simulink.

Page 32: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 19

3.3.1 Simulink.

Simulink es un software que se utiliza para modelar, simular y analizar

sistemas dinámicos. Simulink soporta sistemas que son lineales y no lineales,

modelados en tiempo continuo, discreto o un híbrido de ambos. Dichos

sistemas pueden ser de diferentes etapas y pueden ser muestreadas a

diferentes tasas. Para la simulación, Simulink provee una interfaz gráfica para la

construcción 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 lápiz y papel. Simulink ofrece una extensiva

librería de componentes lineales y no lineales, conectores, también se pueden

personalizar y crear bloques propios de acuerdo a la función que se requiera

por parte del programador. Luego de definir el modelo, se puede proceder a

simularlo, y los resultados de la simulación pueden ser colocados en el

escritorio de Matlab para su posterior visualización y procesamiento. Al enlazar

Simulink con Real-Time Workshop, otra herramienta de Matlab, se puede

transferir código al compilador CCS (Code Composer Studio) y posteriormente

desde este transferirlo al DSP.

3.3.1.1 Bibliotecas de Simulink.

La principal característica 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

continuación se enumeran algunas de las bibliotecas más 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 código incrustado (Real Time Workshop

Embedder Coder).

o Paquete para el soporte de tarjetas (Target Support Package).

Page 33: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 20

3.3.2 Toolbox Embedded IDE link.

Este conjunto de herramientas (Toolbox), es el encargado de establecer

la comunicación 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 diseñados 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 según 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 función del

programa es la generación de código de modelos de Simulink y programas

escritos en Matlab. En el proyecto es el encargado de interpretar y generar

códigos en lenguaje de programación C, para posteriormente ser cargado al

Code Composer Studio y por consecuencia en el Procesador Digital de

Señales, objetivo principal de este proyecto.

3.3.4 Toolbox Target Support Package

Es un conjunto de herramientas que contiene los módulos más

importantes del procesador utilizados para programarlo desde Matlab &

Simulink. Estos bloques que posee el Toolbox están 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 periférico y tiene las opciones de

configuración necesarias para modificarlos según la necesidad del usuario.

Fig 3.1. Bloques disponibles en el Target Support Package.

Page 34: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 21

3.3.5 IDE Link incrustado (Embedded IDE link).

3.3.5.1 Introducción 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 código incrustado para prototipos

específicos. Automatiza la depuración, la generación de proyectos y verificación

de código 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 código de Matlab o Simulink como banco de pruebas para el

procesador. También 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 automáticamente en el IDE del procesador en el cual

se está trabajando. El código creado no solo incluye el código generado en C,

sino también el software incrustado necesario para inicializar, programar y

administrar la ejecución del código en el procesador en tiempo real. Se puede

utilizar Matlab para analizar y depurar el código generado, además se ejecuta

en el procesador incrustado o en un simulador de sistema. Con esto se puede

visualizar los resultados de la ejecución a través del uso de gráficos de Matlab.

Otra ventaja del uso del Embedded IDE Link es que puede rápidamente probar

prototipos de sus diseños, con todos los procesadores compatibles.

Fig. 3.2. Diagrama de Bloques para indicar procesos en la generación de código

especializado

Page 35: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 22

En este capítulo se presentará una descripción del Toolbox Embedded

IDE link encargado de crear el vinculo entre el código generado por REAL TIME

WORKSHOP, el software que se encarga de interpretar el modelo creado en

Simulink y generar posteriormente el código en lenguaje C o C++. En esta parte

del proceso el Toolbox Embedded IDE link cumple la función de homogeneizar

el código 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 específico 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 comunicación, el vínculo entre el procesador

y el software, en este caso Simulink.

Page 36: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

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 periféricos y registros.

Page 37: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 24

Este bloque es el núcleo de la creación de código 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 código 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 continuación se presenta una descripción detallada de las opciones de

configuración del bloque tarjeta personalizada (custom board) disponible en el

software Embedded IDE Link de Matlab/Simulink.

Fig. 3.6. Ventana de configuración principal del bloque tarjeta personalizada

(custom board).

Page 38: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 25

3.3.5.3.1 Tipo de tarjeta (Board Type).

En esta opción 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 incógnita si el software era capaz de generar

código 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 sección el usuario tiene la opción de seleccionar el tipo de

procesador a utilizar en la lista que se despliega. El procesador que selecciona

determina el contenido y configuración de opciones de la memoria y registro

que van a ser creados por el código generado por el Real-time workshop y

acondicionado por el Embedded IDE Link.

3.3.5.3.3 Reloj CPU (CPU Clock).

En esta opción de configuración 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 Soporte tarjeta (Board Support).

o Source files — En esta opción se agregarán las rutas donde estén los

códigos fuentes esenciales para el microprocesador.

o Include paths — En esta opción se agregan las rutas donde estén los

archivos de cabecera que ofrece el software en este caso Matlab.

o Libraries — Biblioteca básicas para la programación del microprocesador

cuando se establezca la comunicación entre el hardware y el software el

programa cargará automáticamente dichas Biblioteca ya que forman

parte fundamental para que el código pueda ser ejecutado.

o Initialize functions — Opción especial, aquí se puede agregar funciones

específicas que bien pueden ser creadas por el usuario o ser cargadas

de otro proyecto (por defecto esta opción no tiene nada).

o Terminate functions — En esta opción se ingresa funciones que se

ejecutarán cuando el código principal haya sido cargado.

Page 39: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 26

3.3.5.3.5 Obtener el IDE (Get from IDE).

Esta función importa los datos del DSP y la tarjeta de desarrollo a la cual

está montado, básicamente crea un vínculo entre Matlab / Simulink, Code

Componer Studio y Embedded IDE link. Al utilizar esta función 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á

jamás 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 Configuración de los periféricos

Peripherals Pane / Pestaña de periféricos el software Embedded IDE

Link ofrece las opciones de configuración básica de cada periférico o módulo, a

continuación se muestra cuales son estas opciones.

3.3.5.4.1 ADC Conversor análogo / digital.

Fig. 3.7. Opciones de configuración módulo ADC.

Page 40: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 27

Las opciones de configuración 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 adquisición. Cuanto mayor sea el valor ingresado en la opción de

configuración, mayor es el período de muestreo. El valor por defecto es 4.

3.3.5.4.1.2 CPS.

Esta opción de configuración permite modificar la variable HSPCLK (High

speed peripheral clock) los valores permitidos deben tener como máximo 4 bits.

3.3.5.4.1.3 ACQ_PS.

Esta opción de configuración permite dividir la variable HSPCLK por

el valor ingresado en la opción ADCLKPS, por ejemplo si se configura la opción

CPS en 1, el valor por defecto, divide el resultado por 2.

3.3.5.4.1.4 OFFset.

Este parámetro de la familia de ADC 280X soporta corrección

de desplazamiento a través 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 módulo ADC.

Page 41: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 28

3.3.5.4.2 Módulo con controlador de área de red mejorada (eCAN).

Fig. 3.9. Opciones de configuración del eCAN con el bloque tarjeta preferente.

3.3.5.4.2.1 Prescalador tasa de baudios (Baud Rate Prescaler).

En esta opción elegimos el valor en escala de la velocidad de bits. Los

valores válidos son de 1 a 256.

3.3.5.4.2.2 SAM

Esta opción de configuración permite establecer el número de muestras

que obtendrá el módulo 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 selección propia de cuál es la muestra más real de las tres.

Page 42: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 29

3.3.5.4.2.3 SBG

Establece la re-sincronización del mensaje gatillado. Las opciones son

Only_falling_edges y Both_falling_and_rising_edges.

3.3.5.4.2.4 SJW

Este parámetro establece el ancho de salto de sincronización, lo que

determina cuántas unidades de TQ se puede acortar o alargar al volver a

sincronizar. Si este parámetro se establece en True, el módulo eCAN va a

modo de bucle invertido, el modo de bucle invertido envía un "dummy",

reconoce el mensaje y envía 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 transmisión, determina la longitud de un bit en el bus

ECAN. Los valores válidos 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 transmisión, determina la longitud de un bit en el bus ECAN. Los

valores válidos para TSEG2 son de 1 a 8.

3.3.5.4.2.7 Asignación pin (Tx)

Asigna el pin CAN que se utilizará para transmisión por el módulo de

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

3.3.5.4.2.8 Asignación pin (Rx)

Asigna el pin CAN que se utilizará para recepción por el módulo de

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

Page 43: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 30

3.3.5.4.3 Módulo de captura mejorada (Enhanced Capture eCAP).

Fig. 3.10. Opciones de configuración del eCAP con el bloque tarjeta preferente.

3.3.5.4.3.1 Asignación pin ECAP1.

Seleccionamos el pin de la GPIO que se utilizará para esta función,

tenemos opción desde la GPIO5 a la GPIO24.

3.3.5.4.3.2 Asignación pin eCAP2.

Seleccionamos el pin de la GPIO que se utilizará para esta función,

tenemos opción desde la GPIO7 a la GPIO25.

3.3.5.4.3.3 Asignación pin eCAP3 eCAP4.

Seleccionamos el pin de la GPIO que se utilizará para esta función,

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

demás opciones de eCAP pin).

Page 44: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 31

3.3.5.4.4 Modulación por ancho de pulso mejorada (ePWM).

Fig. 3.11. Opciones de configuración del ePWM con el bloque tarjeta preferente.

3.3.5.4.4.1 Asignación pin SYNCI.

Asigna una puerta GPIO como entrada para una señal externa que será

utilizada como modo de sincronización para el ePWM. La opción por defecto no

tiene nada configurado, los pines disponibles para esta función

son GPIO6 y GPIO32.

3.3.5.4.4.2 Asignación pin SYNCO.

Asigna una puerta GPIO como salida para un dispositivo externo que

será utilizada como modo de sincronización para el ePWM. La opción por

defecto no tiene nada configurado, los pines disponibles para esta función

son GPIO16 y GPIO28.

Page 45: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 32

3.3.5.4.5 Circuito inter-integrado (I2C).

Fig. 3.12. Opciones de configuración del I2C con el bloque custom board.

3.3.5.4.5.1 Modo (Mode).

Esta opción configura el módulo I2C para que opere en modalidad

master o slave. Si el módulo I2C está en modo maestro el funcionamiento es el

siguiente, se inicia la comunicación con los dispositivos esclavos mediante el

envío de una señal a la dirección del esclavo y principalmente estará como

prioridad la transferencia de datos desde o hacia el esclavo. Si el módulo I2C

está en modo esclavo el funcionamiento es el siguiente, el módulo

responde a las peticiones de comunicación del maestro.

3.3.5.4.5.2 Formato de direcciones (Addresing Format).

Si se utiliza el modo esclavo, esta opción permite determinar el formato

de dirección del maestro y configurar el módulo 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 dirección ampliado.

Page 46: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 33

3.3.5.4.5.3 Registro de dirección propia (Own address register).

Esta opción de configuración nos permite indicar la dirección para el

módulo I2C mientras este configurado en modo esclavo.

3.3.5.4.5.4 Contador de bit (Bit count).

Esta opción permite configurar el módulo I2C en modo esclavo, se puede

designar el número de bits que serán transmitidos por el módulo I2C, esta

opción de configuración nos permite modificar esta variable.

3.3.5.4.5.5 Módulo frecuencia de reloj (Module clock frecuency).

Esta opción permite configurar la frecuencia interna del módulo I2C.

3.3.5.4.5.6 Módulo Prescalador de reloj (IPSC).

Esta opción tiene la siguiente función, si está configurado el módulo I2C

en modo maestro, se puede configurar la frecuencia de clock del módulo por

valores entre 0-255.

La ecuación que rige esta función es la siguiente:

Module clock frequency=I2C input clock frequency/(Module clock prescaler+ 1)

Hay que mencionar que el módulo I2C requiere frecuencias que fluctúen

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 operación del reloj del módulo I2C.

Page 47: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 34

3.3.5.4.5.7 Divisor de tiempo en baja del reloj patrón (Master clock low-

time divider).

Cuando el módulo se configura en modo MASTER esta opción está

disponible, esta variable determinará la duración del estado en bajo (low state)

que tendrá el serial clock pin (SCL), en el bus del módulo I2C.

3.3.5.4.5.8 Divisor de tiempo en alta del reloj patrón (Master clock high-

time divider).

Cuando el módulo se configura en modo MASTER esta opción está

disponible, esta variable determinará la duración del estado en alto (high state)

que tendrá el serial clock pin (SCL), en el bus del módulo I2C.

3.3.5.4.5.9 Habilitación bucle de regreso (Enable loopback).

Cuando el módulo 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 Habilitación interrupción Tx (Enable Tx interrupt).

Esta opción de configuración permite indicar al FIFO de transmisión

cuando se producirá una interrupción después de transmitir una cierta cantidad

de bytes las opciones pueden ser de 1 a 16. Esta opción 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 Habilitación interrupción Rx (Enable Rx interrupt).

Esta opción de configuración permite indicar al FIFO de recepción

cuando se producirá una interrupción después de recibir una cierta cantidad de

bytes las opciones pueden ser de 1 a 16. Esta opción 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 Habilitación interrupción de sistema (Enable system interrupt)

Este parámetro de configuración muestra la opción de configurar los

requerimientos de interrupción del módulo I2C, accediendo directamente al

registro (I2CIER), del DSP.

Page 48: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 35

3.3.5.4.7 Interfaz de comunicación serie (SCI).

Fig. 3.14. Opciones de configuración del SCI con el bloque Tarjeta preferente.

3.3.5.4.7.1 Tasa de baudios (Baud rate).

En esta opción 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 opción de configuración tiene dos opciones la primera TRUE, si se

selecciona, el sistema espera que existan datos disponibles para leer y

posteriormente envía un dato a la salida, si se selecciona la opción FALSE el

sistema de control de la FIFO entra en modo de sondeo, si existe un dato

presente lo lee inmediatamente y lo envía a su destino pero si no existe dato el

sistema sigue enviando a destino el último dato leído.

Page 49: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 36

3.3.5.4.7.3 Longitud de carácter en bits (Character length bits).

Con esta opción podemos elegir la cantidad de bits que contendrá el dato

para ser transmitido o recibido.

3.3.5.4.7.4 Modo de comunicación (Communication mode).

Con este parámetro de configuración podemos seleccionar el modo Raw

Data o Protocol en donde si se selecciona la opción:

Raw Data Mode

Enviamos un dato sin formato específico donde la transmisión comienza

cuando el proceso de envió esta completo sin importar si el otro

dispositivo está listo para recibir información.

Protocol Mode

Cuando se selecciona esta opción tanto la transmisión como la recepción

entablan comunicación para coordinar envió de datos. Por esto cuando el

dispositivo de transmisión está listo, este envía una señal para indicarlo.

Lo mismo ocurre en el dispositivo de recepción este envía un indicador

de que está listo para la recepción de datos y una vez haya terminado el

proceso se envía una señal al DSP para informarlo.

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

Este parámetro permite seleccionar el tipo de orden en la transmisión de

la información en Little Endian o Big Endian.

3.3.5.4.7.6 Cantidad de datos en transmisión (Data swap width).

Esta opción de configuración permite establecer la cantidad de datos que

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

Page 50: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 37

3.3.5.4.7.7 Habilitación bucle de regreso (Enable Loopback).

Este parámetro de configuración nos permite ejecutar un test en el

mismo dispositivo con propósito de diagnóstico únicamente. Cuando

habilitamos este parámetro internamente el DSP conecta el pin de transmisión

con el de recepción y se verifica la integridad de la información.

3.3.5.4.7.8 Número de bit de parada (Number of stop bits).

Este parámetro nos permite establecer el número 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 parámetro 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 opción deshabilitamos el modo de paridad en los

datos.

o Odd parity (Paridad impar)

Si seleccionamos esta opción, y el número de 1 en el dato que va hacer

enviado es impar, el bit de paridad también será un 1 lógico.

o Even parity (Paridad par)

Si seleccionamos esta opción, y el número de 1 lógicos que posee el

dato que será enviado es par, el bit de paridad también será un 1 lógico.

Page 51: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 38

3.3.5.4.8 Modo de suspensión.

Esta opción de configuración si es seleccionada permite depurar el

programa, cuando este se encuentra en un punto de interrupción, este modo

determina si se debe realizar la instrucción 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 información en otras palabras cuando un dato es enviado y

recibido íntegramente y por último Free run continua funcionando sin considerar

el punto de interrupción.

3.3.5.4.8.1 Asignación de pines Rx (Pin assignment Rx).

Esta opción de configuración permite establecer el pin que va a ser

utilizado como SCI Receive (Pin de recepción de datos del módulo SCI). Las

opciones disponibles para este propósito son la GPIO 28 y GPIO 35.

3.3.5.4.8.2 Asignación de pines Rx (Pin assignment Tx).

Esta opción de configuración permite establecer el pin que va a ser

utilizado como SCI Transmit (Pin de transmisión de datos del módulo SCI). Las

opciones disponibles para este propósito son la GPIO 29 y GPIO 36.

Page 52: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 39

3.3.5.4.9 Interfaz de periféricos serie (SPI).

Fig. 3.15. Opciones de configuración del SPI con el bloque tarjeta preferente.

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

Esta opción de configuración permite configurar directamente el registro

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

transmisión.

3.3.5.4.9.2 Fase de reloj (Clock phase).

Esta opción de configuración permite establecer cómo será enviado la

señal de reloj para la sincronización entre dispositivo trasmisor y receptor. Las

opciones disponibles son No delay o Delay half cycle.

Page 53: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 40

3.3.5.4.9.3 Polaridad de reloj (Clock polarity).

Esta opción de configuración nos permite establecer la polaridad de la

señal 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 suspensión (Suspension mode).

Esta opción de configuración si es seleccionada permite depurar el

programa. Cuando este se encuentra en un punto de interrupción, este modo

determina si se debe realizar la instrucción 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 información en otras palabras cuando un dato es enviado y

recibido íntegramente y por último Free run continua funcionando sin considerar

el punto de interrupción.

3.3.5.4.9.5 Bits de datos (Data bits).

Esta opción de configuración permite establecer el tamaño de los datos a

transmitir. Las opciones son 1 a 16 bit por cada carácter. Por ejemplo, si se

selecciona 8, el máximo de datos que pueden ser transmitidos será 28-1. Si se

envían datos con mayor cantidad de bits se producirá desbordamiento en el

buffer.

3.3.5.4.9.6 Habilitación bucle de regreso (Enable Loopback).

Esta opción de configuración permite establecer el modo loopback para

realizar pruebas de auto-diagnóstico. Cuando esta opción está habilitada el pin

Tx (Transmisión) se conecta internamente con el pin Rx (Recepción) y se

transmiten datos para comprobar la integridad de los datos enviados.

3.3.5.4.9.7 Habilitación modo tres cables (Enable 3–wire mode).

Esta opción de configuración permite establecer la comunicación a través

del SPI con 3 pines, y no con los 4 pines que se utilizan normalmente, como

son SPISTE Chip select, SPICLK señal de reloj, SPISIMO slave input master

output y SPISOMI slave output master input.

Page 54: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 41

3.3.5.4.9.8 Habilitación FIFO (Enable FIFO).

Esta opción de configuración permite establecer o habilitar el FIFO en

True o False.

3.3.5.4.9.9 Nivel de interrupción FIFO Rx (FIFO interrupt level (Rx)).

Esta opción de configuración permite configurar cuando se va a ejecutar

una interrupción después de una cantidad de veces en que el FIFO haya

recibido información. Opciones disponibles 1 a 16.

3.3.5.5 Nivel de interrupción FIFO Tx (FIFO interrupt level (Tx)).

Esta opción de configuración permite configurar cuando se va a ejecutar

una interrupción después de una cantidad de veces en que el FIFO haya

enviado información. Opciones disponibles 1 a 16.

3.2.5.5.1 Retardo de transmisión FIFO (FIFO transmit delay).

Esta opción de configuración permite establecer un retardo (delay), en el

FIFO cuando transmita información.

3.3.5.5.2 Modo

Esta opción de configuración 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 Asignación pin CLK.

Esta opción de configuración selecciona el pin de la GPIO que va a ser

utilizado para señal de clock (CLK), por defecto no viene ninguna opción pero

los pines disponibles son GPIO 14 y GPIO 26.

3.3.5.5.4 Asignación pin SOMI.

Esta opción de configuración selecciona el pin de la GPIO que va a ser

utilizado para señal de SOMI, por defecto no viene ninguna opción pero los

pines disponibles son GPIO 13 o GPIO 25.

Page 55: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 42

3.3.5.5.5 Asignación de pin STE (Pin de habilitación para transmisión

en modo esclavo).

Esta opción de configuración permite seleccionar el pin de la GPIO que

va a ser utilizado para señal de STE, por defecto no viene ninguna opción pero

los pines disponibles son GPIO 15 y GPIO 27.

3.3.5.5.6 Asignación pin SIMO.

Esta opción de configuración permite seleccionar el pin de la GPIO que

va a ser utilizado para señal de SIMO, por defecto no viene ninguna opción pero

los pines disponibles son GPIO 12 o GPIO 24.

Page 56: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 43

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

Fig. 3.16. Ventana configuración módulo eQEP.

Este módulo del DSP tiene como principal función ser una interfaz directa

a través de un Encoder incremental ya sea lineal o rotatorio para obtener datos

de posición, dirección, y velocidad de una máquina rotatoria, comúnmente

utilizadas para efectuar movimientos precisos de alto rendimiento y sistemas de

control de posición.

3.3.5.6.1 Asignación pin EQEP1A.

Esta opción de configuración permite establecer la GPIO por la cual el

módulo EQEP1A va interactuar con el exterior. Las opciones disponibles son

GPIO20 o GPIO 50.

3.3.5.6.2 Asignación pin EQEP1B.

Esta opción de configuración permite establecer la GPIO por la cual el

módulo EQEP1B va interactuar con el exterior. Las opciones disponibles son

GPIO21 o GPIO 51.

3.3.5.6.3 Asignación pin EQEP1S.

Esta opción de configuración permite establecer la GPIO por la cual el

módulo EQEP1S va interactuar con el exterior. Las opciones disponibles son

GPIO22 o GPIO 52.

3.3.5.6.4 Asignación pin EQEP1I.

Esta opción de configuración permite establecer la GPIO por la cual el

módulo EQEP1I va interactuar con el exterior. Las opciones disponibles son

GPIO23 o GPIO 53.

Page 57: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 44

3.3.5.7.0 Pines entrada salida de propósito general (GPIO).

Fig. 3.17. Ventana configuración módulos GPIO

3.3.5.7.1 Sync to SYSCLKOUT.

Esta opción de configuración permite establecer que la señales que van

a ser emitidas o recibidas por las GPIO, se puedan sincronizar con la señal de

reloj del sistema, el parámetro denominado SYSCLKOUT.

Fig. 3.18. Efecto del Sync to SYSCLKOUT.

Page 58: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 45

3.3.5.7.2 Calificación usando 3 muestras (Qualification using 3

samples).

Esta opción de configuración nos permite establecer que mínimo 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 Calificación usando 6 muestras (Qualification using 6

samples).

Esta opción de configuración permite establecer que para que ocurra un

cambio en la señal de entrada o salida de la GPIO es necesario que se

registren seis ciclos consecutivos del mismo valor, por ejemplo para evitar emitir

señales que no sean correctas.

Fig. 3.20. Efecto Qualification using 6 samples

3.3.5.7.4 Prescalador del periodo de calificación del muestreo

(Qualification sampling period prescaler).

Esta opción de configuración permite establecer el periodo de muestreo

en la señal que es emitida o recibida por la GPIO, los valores de configuración

posible son de 0 a 255.La ecuación que rige esta frecuencia de muestreo es:

Sampling=SYSCLKOUT / (2*Prescaler) (1)

Fig. 3.21. Qualification sampling period prescaler

Page 59: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

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

también corresponde al pin ECAP6. Sin embargo, las opciones mencionadas

anteriormente corresponden cuando las GPIOs se configuran como entrada o

salida sin especificar ningún módulo.

Page 60: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 47

3.3.5.8.0 Perro Guardián (Watchdog).

Fig. 3.22. Ventana configuración Watchdog

3.3.5.8.1 Habilitación de Perro guardián (Enable Watchdog).

Esta opción de configuración permite habilitar el módulo 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

Además 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 señal de reloj.

Esta opción de configuración permite establecer el periodo del Timer del

Watchdog relativo donde el valor se rige por la siguiente ecuación, OSCCLK /

512. Además este parámetro tiene corresponde a los bits 2-0 (WDPS) del

registro Watchdog Control Register (WDCR).

Page 61: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 48

3.3.5.8.3 Periodo del timer en segundos.

Esta opción permite visualizar el period en segundos del Watchdog. Este

valor se actualiza automáticamente cuando se modifica el valor del parámetro

Counter Clock.

3.3.5.8.4 Tiempo fuera de ejecución.

Esta opción de configuración permite resetear el procesador o generar

una interrupción cuando el software falla al resetear el contador del Watchdog.

Si se selecciona la opción chip reset generamos una señal para que el

procesador se reinicialice y deshabilitamos la señal de interrupción del

Watchdog. Si seleccionamos la opción raise WD interrupt generamos una señal

de interrupción y deshabilitamos la señal de reiniciación del procesador. Esta

señal puede ser utilizada para dejar el dispositivo en modo IDLE o STANDBY

(Bajo Consumo). Este parámetro actúa directamente sobre el bit 1 (WDENINT)

del registro System control and status (SCSR).

Fig. 3.23. Módulo Watchdog (Perro guardián)

Page 62: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 49

3.3.5.9.0 Cargar a la memoria flash (Flash Loader).

Fig. 3.24. Ventana configuración Flash Loader

3.3.5.9.1 Habilitación de programación memoria Flash.

Esta opción de configuración permite habilitar la memoria Flash del DSP,

cuando seleccionamos la opción Execute o Build el programa se cargará a la

memoria Flash. Una vez habilitada la opción de programación de la memoria

Flash podemos seleccionar las siguientes opciones. La opción erase borra la

información anterior, la opción program transfiere el programa creado

directamente a la memoria Flash y por último la opción Verify permite revisar la

información que tiene la memoria Flash.

Page 63: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 50

3.3.5.9.2 Detección sectores memoria Flash y borrado de archivos

COFF.

Esta opción de configuración 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 opción de configuración cuando se habilita borra todos los sectores

de la memoria Flash sin discriminar.

3.3.5.9.4 Locación específica API.

Esta opción 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 función de

programar la memoria Flash.

3.3.5.9.5 Ejecución.

Esta opción permite ejecutar o habilitar la programación de la memoria

Flash.

Page 64: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 51

3.3.6.0.0 Acceso directo a memoria (DMA).

Fig. 3.25. Ventana configuración módulos DMA

3.3.6.0.1 Habilitación canal DMA.

Esta opción de configuración nos permite habilitar un canal específico

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 Tamaño de dato.

Esta opción de configuración nos permite establecer el tamaño 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 máximo 32 bits para leer o escribir,

si la opción elegida es 32 bits se estará ocupando el 100% de la capacidad del

DMA.

Page 65: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 52

Cuando habilitamos el servicio DMA McBSP y está configurado que el

tamaño de los datos es 16 bits, debemos considerar el siguiente modelo de

configuración.

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 parámetro Data size corresponde al bit 14 (DATASIZE) del registro MODE.

3.3.6.0.3 Fuente de interrupción.

Esta opción de configuración nos permite generar una interrupción

producto o generada de algún periférico del sistema y que esto provoque una

ruptura en un canal específico DMA.

Esta opción nos permite seleccionar las opciones XINT1, XINT2 o

XINT13 para configurar como una interrupción externa, los pines disponibles

para esta función son GPIO 0 al 31.Si seleccionamos la opción XINT3 o XINT7

los pines disponibles para tal objetivo son GPIO 32 al GPIO 63.

3.3.6.0.4 External pin (GPIO)

Esta opción de configuración esta disponible cuando configuramos la

opción 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 interrupción. Este parámetro corresponde a la variable GPIO XINTn

de los registros (GPIOXINTnSEL, GPIOXNMISEL).

3.3.6.0.5 Generate interrupt.

Esta opción de configuración permite habilitar el parámetro que genera

una interrupción del tipo PIE vía CPU, por el canal DMA cuando comience o

termine un proceso de transferencia de datos.

Esta opción de configuración corresponde al bit 15 (CHINTE) y al bit 15

(CHITMODE) del registro MODE del procesador.

Page 66: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 53

3.3.6.0.6 Tamaño (Size).

3.3.6.0.6.1 Ráfaga (Burst).

Esta opción nos permite especificar el número de palabras de 16 bits en

un Burst, desde 1 a 32. El módulo DMA debe completar un Burst antes de

ofrecer servicio a otro canal. Para esto hay que configurar apropiadamente el

valor del Burst para el periférico en el cual está trabajando el módulo DMA. Para

el caso del ADC el valor seleccionado es igual número 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 opción de configuración corresponde a los bits 4-0 (BURSTSIZE)

del registro BURST_SIZE del procesador.

3.3.6.0.6.2 Transferencia (Transfer).

Esta opción de configuración nos permite especificar el número de Burst

en una transferencia, puede variar desde 1 a 65536.

Esta opción de configuración corresponde a los bits 15-0

(TRANSFERSIZE) del registro TRANSFERSIZE del procesador.

3.3.6.0.6.3 Envoltura SRC (SRC wrap).

Esta opción de configuración permite especificar el número de Burst

(Ráfaga de datos) antes de devolver la dirección del puntero del valor de la

variable Source Begin Address.

Esta opción de configuración 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 opción de configuración permite especificar el número de Burst

antes de devolver la dirección del puntero del valor del parámetro Destination

Begin Address. Para deshabilitar el ajuste hay que ingresar el valor de DST

wrap que es mayor que el valor de transferencia.

Esta opción de configuración corresponde a los bits 15-0 (DST_WRAP_SIZE)

del registro DST_WRAP_SIZE del procesador.

Page 67: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 54

3.3.6.0.7 Fuente (Source).

Los siguientes parámetros permiten configurar las entradas de los

canales DMA.

Begin Address.

Este parámetro permite ajustar la dirección inicial del puntero fuente. Además

los punteros apuntan a las direcciones de los módulos DMA en el inicio de una

transferencia y devuelve el parámetro SRC wrap como haya sido configurado.

Esta opción de configuración corresponde a los bits 21-0 (BEGADDR) del

registro SRC_BEG_ADDR del procesador.

Burst step

Esta opción de configuración permite establecer el número 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

dirección 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 opción de configuración corresponde a los bits 15-0 (SRCBURSTSTEP)

del registro SRCBURSTSTEP del procesador.

Transfer step

Esta opción de configuración permite establecer el número de palabras de 16

bits que incrementa o decrementa la dirección 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 parámetro Transfer step a 0.

Esta opción de configuración corresponde a los bits 15-0

(SRCTRANSFERSTEP) del registro SRC_TRANSFER_STEP del procesador.

Page 68: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 55

Wrap step.

Esta opción nos permite establecer el número de palabras de 16 bits que

permite incrementar o decrementar el puntero de dirección SCR_BEG_ADDR

cuando se produce un evento Wrap. Valores pueden variar desde -4096 a 4095.

Esta opción de configuración corresponde a los bits 15-0

(SRCTRANSFERSTEP) del registro SRC_TRANSFER_STEP del procesador.

3.3.6.0.8 Destino (Destination).

Los siguientes parámetros permiten configurar las salidas de los canales

DMA.

Begin Address.

Este parámetro permite ajustar la dirección actual del puntero de destino.

Además los punteros apuntan a las direcciones de los módulos DMA en el inicio

de una transferencia y devuelve el parámetro DST wrap como haya sido

configurado.

Esta opción de configuración corresponde a los bits 21-0 (BEGADDR) del

registro DST_BEG_ADDR del procesador.

Burst step.

Esta opción de configuración permite establecer el número de palabras de 16

bits, que se pueden incrementar o decrementar la dirección actual del puntero.

Para deshabilitar el incremento o decremento de la dirección 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 opción de configuración corresponde a los bits 15-0 (DSTBURSTSTEP)

del registro DST_BURST_STEP del procesador.

Page 69: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 56

Transfer step.

Esta opción de configuración permite establecer el número de palabras de 16

bits que incrementa o decrementa la dirección 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 parámetro Transfer step a 0.

Esta opción de configuración corresponde a los bits 15-0

(DSTTRANSFERSTEP) del registro DST_TRANSFER_STEP del procesador.

Wrap step.

Esta opción nos permite establecer el número de palabras de 16 bits que

permite incrementar o decrementar el puntero de dirección DST_BEG_ADDR

cuando se produce un evento Wrap. Valores pueden variar desde -4096 a 4095.

Esta opción de configuración corresponde a los bits 15-0 (WRAPSTEP) del

registro DST_WRAP_STEP del procesador.

3.3.6.0.9 Modo (Mode).

Los siguientes parámetros permiten configurar los canales DMA.

3.3.6.0.9.1 Modo de habilitación de un disparo (Enable one shot mode).

Esta opción nos permite activar el parámetro que ofrece una

transferencia completa en respuesta a un evento de interrupción. Esta opción

permite un único canal de acceso directo de memoria y periféricos para

controlar los recursos y puede simplificar la tramitación, sino que también

disminuye los conflictos por uso de recursos y retrasos en el funcionamiento.

3.3.6.0.9.2 Habilitación Sync (Sync enable).

Este parámetro nos permite establecer que cuando la opción Interrupt

Source, es configurada para SEQ1INT, habilitamos el parámetro de reinicio del

DMA con el contador Wrap cuando es recibida la señal ADCSYNC desde

SEQ1INT. Esto asegura que el contador de Wrap y los canales ADC

permanezcan sincronizados entre sí. Si la opción Interrupt Source no es

configurada para la habilitación de SEQ1INT, Sync Enable no tiene efecto.

Este parámetro corresponde al bit 12 (SYNCE) del registro MODE del

procesador.

Page 70: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 57

3.3.6.0.9.3 Habilitación modo continuo (Enable continuous mode).

Este parámetro permite establecer la habilitación del canal DMA para

completar una transferencia. El canal va a esperar que el gatillado de la

interrupción se produzca para seguir con el siguiente canal. Después los

valores de los parámetros se borran y se desactiva el canal DMA luego de

completar la transferencia. El módulo 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 Habilitación modo DST Sync (Enable DST Sync mode).

Esta opción de configuración permite habilitar el reinicio del contador de

destino Wrap (DST_WRAP_COUNT) cuando el módulo DMA recibe la señal

SEQ1INT Interrupt /ADCSYNC. Deshabilitando este parámetro reinicia el

contador de origen Wrap (SCR_WRAP_COUNT) cuando el módulo DMA recibe

la señal SEQ1INT Interrupt /ADCSYNC. Este parámetro 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 opción es habilitada el canal DMA número 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 módulos DMA se habilita también

secuencialmente el canal uno, el cual envía una señal de disparo. Cuando esta

deshabilitada la opción del módulo acceso directo a memoria (DMA) cada canal

es habilitado secuencialmente. Este parámetro corresponde al bit 0

(CH1PRIORITY) del registro PRIORITYCTRL1 del procesador.

3.3.6.0.9.6 Habilitación de interrupción de rebalse (Enable overflow

interrupt).

Cuando habilitamos esta opción el canal DMA envía una interrupción a la

CPU a través de la PIE si el módulo DMA recibe alguna interrupción de un

periférico mientras habría recibido otra interrupción anteriormente del mismo

periférico y esta en espera de ser atendida. Esta opción generalmente es

utilizada para la depuración durante el desarrollo de un proyecto.

Page 71: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 58

Este parámetro 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.

Page 72: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 59

3.3.7.0.0 PLL.

Fig. 3.26. Ventana configuración 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 máxima frecuencia. Estos parámetros 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.

Ecuación que rige la frecuencia del clock de la CPU.

CLKIN = (OSCCLK * PLLCR) / (DIVSEL o CLKINDIV) (2)

Page 73: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

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 parámetros DIVSEL o CLKINDIV cambia

dependiendo del procesador seleccionado. Si ninguno de los parámetros es

habilitado usa la siguiente ecuación:

CLKIN = (OSCCLK * PLLCR) / 1 (3)

Por último el resultado de la frecuencia de reloj (CLKIN) en el parámetro

CPU clock bloque Target Preferences.

Page 74: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 61

3.3.7 REAL TIME WORKSHOP

3.3.7.1 Introducción al Real-Time Workshop.

Real-Time Workshop (RTW) es una extensión de capacidades

para Simulink y Matlab que permite compilar y generar automáticamente el

código 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 Código Simulink (Simulink Code Generator): el cual

automáticamente genera el código 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 compilación

y conexión del código generado.

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

comunicación entre Simulink y un modelo que se esté ejecutando en

tiempo real. Mediante esta opción se puede ajustar algunos parámetros

de ejecución, 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 diseñar 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 transformación del modelo desarrollado en

Simulink a un código de lenguaje C o C++.Este software posee el potencial para

interpretar cualquier modelo desarrollado en Simulink. Lo que hay que tener en

consideración es que el código generado no puede ser interpretado por

cualquier compilador y esto se debe a que el modelo en Simulink debe tener

coherencia con el dispositivo físico (Hardware) donde se pretende ejecutar.

Page 75: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 62

3.3.7.2 Capacidades del Real Time Workshop.

Generar código fuente y ejecutables para modelos de Simulink en tiempo

discreto, tiempo continuo (Fixed Step) y sistemas híbridos.

Utilizar el código generado para aplicaciones en tiempo real y no real además

incluye las opciones de simulation acceleration (aceleración de simulación),

rapid prototyping, hardware in the loop (hardware en un bucle) y testing.

El código 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 código para modelos diseñados con el software Stateflow event-based

modeling y complementarlo con el State flow Coder.

Produce código fuente para una infinidad de subprogramas de Simulink como

por ejemplo Signal Processing una aplicación diseñada para el tratamiento de

señales. Esto es una ventaja si se tiene un microprocesador que no sea

precisamente un DSP.

Page 76: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 63

3.3.7.3 Descripción del procedimiento realizado por el software para

la generación de código y su posterior ejecución en el

hardware.

El Real-Time Workshop (RTW) posee la capacidad de generar código en

C o C++, de modelos desarrollados en Simulink y además modelos que

contengan funciones propias de Matlab. Por lo tanto, como el objetivo del

proyecto es generar código para una plataforma de hardware específico, este

software formara parte importante en el desarrollo del proyecto.

Fig. 3.27. Diagrama de creación de código.

Generación de código para ambientes de programación específicos.

Este software puede generar código 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. Básicamente 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

función específica, dentro de la aplicación general. Este software tiene la

ventaja de poseer el system target files. Este sistema es capaz de generar

compilar y ejecutar un código para un ambiente específico de programación.

Para seleccionar el system target file correcto es necesario conocer el ambiente

de programación del hardware donde el código se ejecutará, tales como en un

simulador en tiempo real, procesador o en un PC.

Page 77: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 64

Fig. 3.28. Ambientes donde se puede crear código con Real-Time Workshop

Como en el caso del proyecto presentado en esta tesis el código

generado tiene que ser ejecutado en un DSP, el software o la tecnología es

capaz de generar dicho código para que sea ejecutado para este ambiente.

3.3.7.4 Código generado para DSP.

Opciones para la creación de código ejecutables en DSP.

Generación de código.

Esta opción de la generación de código, ofrece optimizar el código 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 opción generamos un bucle en la ejecución del código. Esta

función hace que el código corra y se detenga una y otra vez como una

forma de observar su comportamiento.

Page 78: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 65

3.3.7.4.1 Generación de código.

Para el proceso de generación de código, antes se asegura la correcta

configuración de los parámetros del modelo en que el software se va a encargar

de generar código. Se puede crear un modelo que utilice bloques en tiempo

continuo pero configurar el real time workshop como un intérprete de bloques

en estado discreto. Por esta razón son muy importantes las configuraciones del

software y cuáles son sus limitaciones.

3.3.7.4.2 Configuración parámetros para compilación y ejecución de

código.

Procedimiento que realiza real time workshop, para la generación de

código. Una vez diseñado el modelo en Simulink de acuerdo a los

requerimientos de hardware, el siguiente paso es la configuración de todos los

parámetros del software Real Time Workshop.

En la ventana de Simulink seleccionamos la opción Simulation y elegimos

Configuration Parameters.

Fig. 3.29. Ventana de configuración de parámetros.

Page 79: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 66

3.3.7.4.3 Configuración parámetros SOLVER.

Parametros SOLVER

Simulation time Start Time 0.0

Stop Time inf

Solver options Type Fixed Step

Solver Discrete

Tabla 1.0 Configuración Parametros Solver

Posteriormente nos situamos en las siguientes opciones de

configuración: Data Import/Export, Optimization, Diagnostics y se los deja con

los valores por omisión. Luego de esto, situarse en la opción implementación de

hardware y configurar como se muestra en la figura (Tabla).

Fig. 3.30. Ventana configuración de implementación de hardware

3.3.7.4.4 Configuración parámetros implementación de hardware.

Parámetros de implementación de hardware

Embedded Hardware Device Type: TI C2000

Byte Ordering: Little Endian

Tabla 2.0 Configuración Embedded Hardware (Implementación de Hardware).

Page 80: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 67

Luego situarse en la opción de configuración REAL TIME WORKSHOP y

configurar tal como se grafica en la ventana de configuración que muestra la

siguiente figura.

Fig. 3.31. Ventana de configuración Real Time Workshop.

Parámetros configuración Real time Workshop

Selección de Plataforma RTW system target File ti_c2000.tlc

Tabla 3.0 Configuración Real Time Workshop

Continuamos en la misma opción de configuración dentro de la selección

de plataformas tenemos varias alternativas que se seleccionaran de acuerdo al

tipo de hardware que se esté empleando en la implementación. La siguiente

figura muestra las diversas plataformas de hardware que están 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 configuración de selección de plataforma.

Page 81: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 68

Luego, nos ubicamos en la opción de configuración TI c2000 Selección

de Plataforma, y configuramos como muestra la siguiente figura.

Fig. 3.33. Ventana de Configuración TI c2000

Parámetros configuración TI c2000 selección de plataforma

Tipo Código Generado c2000

Tabla 4.0 Configuración TI c2000 selección de plataforma

Por último, nos ubicamos en la opción de configuración TIC6000

Generación de Código y seleccionamos las opciones de acuerdo a la figura

(tabla).

Parámetros configuración TI c6000 generación de código

Función de Procesamiento Digital en linea_activado

Tabla 5.0 Configuración TI c2000 generación de código

Page 82: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 69

Fig. 3.34. Ventana de Configuración TI c2000 generación de código

Una vez seleccionados los valores específicos 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 compilación del

modelo y en la ventana de MATLAB aparecen los archivos que genera dicha

compilación. Al finalizar el proceso de compilación debe aparecer en el

ambiente de programación 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 serán:

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.

Page 83: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 70

3.3.7.4.5 Carga y Ejecución del Programa Objeto.

Una vez que se han concluido los procesos de desarrollo, simulación,

ajuste y verificación del modelo en el ambiente de desarrollo de Simulink y

además se ha ejecutado el procedimiento que realiza la compilación 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 continuación se detalla como cargar y la ejecutar modelo:

a) Dar clic en el menú Project >>> Build. Automáticamente se inicia el proceso

de compilación 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.

Page 84: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 71

c) Al presionar Abrir se inicia de forma automática el proceso mediante el cual el

archivo compilado se envía al DSP.

Fig. 3.36. Indicador de Carga de Programa Objeto.

d) Finalmente el archivo objeto que está físicamente 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.

Page 85: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 72

3.3.8 TARGET SUPPORT PACKAGE

3.3.8.1 Introducción Toolbox Target Support Package

Target Support Package permite modificar el código generado por Real-

Time Workshop para la ejecución en tiempo real sobre procesadores

integrados, microcontroladores y DSP. El uso del Target Support Package

entrega como principal herramienta integrar dispositivos periféricos 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 característica de crear archivos .m o funciones de Matlab y

utilizarlos en modelos creados en Simulink. El código ejecutable resultante se

puede implementar en hardware integrados y tarjetas de desarrollo para análisis

en tiempo real.

Fig. 3.38. Diagrama de proceso de generación de código

Page 86: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 73

3.3.8.2 Características principales

o Apoyo para generar archivos que sean ejecutables y que incluyen código

y controladores de dispositivo.

o Puede generar código para GPIO, SPI, ePWM, SCI, CAN y otros.

o Posee un parámetro 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 comunicación Ethernet.

o Generación de código ensamblador optimizado e integrado, posee

bloques de procesamiento de señales 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™

Page 87: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

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 programación de procesadores DSP

c280x/c2833x

Page 88: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 75

3.3.8.3 Opciones de configuración de Bloques de Target Support

Package™ utilizados en el proyecto.

3.3.8.3.1 Bloque Conversor análogo/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

señal de entrada analógica y almacena los valores convertidos en el registro

correspondiente del procesador. En rigor este bloque es el encargado de

configurar automáticamente todos los registros necesarios para que funcione el

conversor análogo / digital del DSP, también posee una característica

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 liberación de tareas y aumenta el rendimiento del sistema en general.

Fig. 3.43. Ventana configuración parámetros Bloque ADC.

Page 89: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 76

3.3.8.3.1.1 Parámetros de configuración Bloque ADC.

3.3.8.3.1.2 Módulo A.

Si se selecciona el módulo A podemos configurar como entrada los

canales ADCINA0 al ADCINA7 individualmente o en forma simultánea.

3.3.8.3.1.3 Módulo B.

Si se selecciona el módulo B podemos configurar como entrada los

canales ADCINB0 al ADCINB7 individualmente o en forma simultánea.

3.3.8.3.1.4 Módulo A B.

También existe la opción de elegir los dos módulos en forma simultánea

y en esta opción podemos elegir todas las entradas disponibles por los dos

módulos.

3.3.8.3.1.5 Modo de conversión.

Esta opción específica el modo de muestreo para las señales análogas que

son aplicadas al conversor. Existen dos opciones:

Secuencial

Si se selecciona este modo de conversión y se eligen como entrada

para señales dos canales, la conversión va a ser en forma secuencial.

Simultáneo

Si se selecciona este modo de conversión y se eligen como entrada

para señales dos canales o más, la conversión va a ser en forma

simultánea sin importar si las entradas son de diferentes módulos.

3.3.8.3.1.6 Comienzo de conversión.

Esta opción de configuración específica la forma en que va a comenzar

la conversión a través de una señal de trigger. Existen las siguientes opciones:

Software

La señal de trigger para el comienzo de la conversión va a ser emitida

por software.

EPWMxA/ePWMxB/ePWMxA_ePWMxB

La señal de disparo para el comienzo de la conversión va a ser

controlada por el usuario a través del PWM.

Page 90: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 77

XINT2_ADCSOC

La señal de trigger para el comienzo de la conversión va a ser controlada

por el pin XINT2_ADCSOC, cada vez que este pin recibe una señal externa

dará orden para el comienzo de la conversión del ADC.

3.3.8.3.1.7 Tiempo de muestreo.

Esta opción de configuración en el conversor AD representa el tiempo en

segundos entre muestreos de señal consecutivos que se toman de un canal

específico, así también como la velocidad en la que son leídos los datos

digitales almacenados en los registros del DSP.

3.3.8.3.1.8 Tipo de datos.

Esta opción de configuración 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 configuración entradas Bloque ADC

Page 91: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 78

3.3.8.3.1.9 Configuración canales de entrada Bloque ADC.

3.3.8.3.2.0 Número de conversiones (Number of conversions).

Esta opción de configuración permite definir cuantos canales del ADC

van a ser utilizados para la conversión análoga a digital.

3.3.8.3.2.1 Conversion no

Esta opción de configuración permite definir el número de conversiones

que van a realizarse en cada canal de entrada del conversor AD. Además existe

la posibilidad de configurar modo de sobre muestreo especificando más de una

conversión para un mismo canal.

3.3.8.3.2.2 Uso de múltiples puertos de salida (Use multiple output

ports).

Esta opción de configuración permite utilizar puertos separados para

cada salida, si el ADC es configurado con más de un canal de conversión, se

puede desplegar cada salida en forma independiente o en diferentes vectores.

Page 92: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

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 comunicación con los

módulos ePWM del microprocesador. El bloque tiene la opción de configurar

dos salidas por cada módulo, ePWMA y ePWMB, e incluso se puede configurar

hasta seis módulos ePWM.

Fig. 3.46. Ventana configuración Bloque ePWM.

Page 93: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 80

3.3.8.3.3.1 Parámetros de configuración general del Bloque ePWM

3.3.8.3.3.2 Configuración General

3.3.8.3.3.3 Módulo (Module).

Esta opción de configuración específica que módulo ePWM va a ser

utilizado por el usuario.

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

Esta opción de configuración específica 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 medición (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 Especificación 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 opción de configuración se utiliza para configurar los periodos de

forma de onda PWM, y en que unidades se medirán ciclos de reloj o en

segundos

3.3.8.3.3.8 Modo de conteo (Counting mode).

Esta opción de configuración específica el modo de conteo (Counting

Mode) en los cuales pueden operar los módulos PWM. Existen tres opciones

Up, Down y Up-Down.

Fig. 3.47. Modos de conteo

Page 94: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 81

3.3.8.3.3.9 Divisor de Prescalador del reloj TB (TB clock prescaler

divider).

Esta opción de configuración permite establecer la velocidad en la que se

incrementará o decrementará el contador time-base (TB), y además se encarga

de establecer el prescalamiento que va a tener la señal SYSCLKOUT.

Para calcular el TBCLK se utiliza la siguiente ecuación:

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 configuración para el TB clock prescaler divider son: 1,

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

Fig. 3.48. Diagrama sub módulo Time Base (TB), del módulo ePWM.

Page 95: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 82

Fig. 3.49. Ventana de configuración módulo ePWM

3.3.8.3.4 Especificaciones módulo ePWMA ePWMB

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

Esta opción de configuración específica la unidad que se utilizará como

registro de comparación, 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 números en punto flotante. Para realizar la

habilitación de esta característica seleccionamos Simulation > Configuration

Parameters, en esta ventana seleccionamos a su vez la opción Real-Time

Workshop > Interface, por último en la opción Software Environment,

habilitamos floating-point numbers.

3.3.8.3.4.2 Vía específica del CMPA

Este parámetro configura la manera con la cual se van a generar los

PWM, si se elige la opción Specify via dialog, tenemos la opción de ingresar

valores a las variables CMPA value y CMPB value.

3.3.8.3.4.3 Valor CMPA (CMPA value).

Esta opción de configuración están disponible si seleccionamos antes

Specify via dialog. Aparecerán las opciones CMPA source y CMPB source. En

esta instancia podemos ingresar los valores de CMPA CMPB Units.

Page 96: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 83

3.3.8.3.5 Bloques de Interfaz serial de periféricos (SPI).

Fig. 3.50. Bloques SPI

El Bloque SPI Receive tiene soporte para comunicación serie síncrona

entre el DSP y otros periféricos externos o otros dispositivos. El bloque tiene la

opción 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 transmisión de datos enviando una señal serial de clock

(SPICLK), la transferencia de datos son sincronizados por la configuración del

registro (SPICLK), que puede ser habilitado en forma simultánea para el modo

maestro y esclavo.

El Bloque SPI Transmit tiene soporte para comunicación serie síncrona

entre el DSP y otros periféricos externos. Puede operar en modo maestro o

esclavo. En general tiene las mismas características que el bloque SPI Receive

considerando que uno envía datos y el otro recibe datos. El bloque tiene

soporte para admitir en la entrada datos en formato UINT 16.

Page 97: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 84

3.3.8.3.5.1 Parámetros de configuración general del Bloque SPI.

Fig. 3.51. Ventana de configuración módulo SPI Receive

3.3.8.3.5.2 Longitud de dato (Data length).

Este parámetro específica 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 recepción de salida (Output receive error

status).

Este parámetro de configuración 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 leídos, y tiempo de espera para recibir datos terminado.

3.3.8.3.5.4 Habilitación de estado de bloqueo (Enable blocking status).

Esta opción de configuración 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.

Page 98: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 85

Fig. 3.52. Ventana de configuración módulo SPI Transmit

3.3.8.3.5.5 Error en el estado de salida de transmisión (Output transmit

error status).

Este parámetro al ser habilitado monitorea la correcta transmisión de

datos generando el registro de estado de la operación indicando:

o 0: Sin errores

o 1: Tiempo de espera de transmisión terminado.

o 2: Error en transmisión de datos.

3.3.8.3.5.6 Habilitación modo de bloqueo (Enable blocking mode).

Esta opción de configuración es simular a la opción enable blocking

status. Si el sistema está en proceso de espera y se requiere que se le de

prioridad a la correcta transmisión de los datos, el sistema no realiza ninguna

acción hasta que se termine dicho proceso. La diferencia con la opción anterior

es que el sistema está continuamente ejecutando dicho procedimiento.

3.3.8.3.5.7 Interrupción después de dato transmitido (Post interrupt when

data is transmitted).

Esta opción de configuración habilita la ejecución de una interrupción

después de que un dato llegue a destino.

Page 99: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 86

3.3.8.3.6 Bloque de Interfaz de comunicación 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 asíncrona, con otros periféricos 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 tensión no tome valor cero, puede tomar valores positivos o

negativos.

Page 100: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 87

3.3.8.3.6.3 Parámetros de configuración general del Bloques SCI

Fig. 3.54. Ventana de configuración módulo SCI Receive

3.3.8.3.6.4 Módulo SCI (SCI Module).

Esta opción de configuración permite seleccionar que módulo SCI A o B

para la comunicación.

3.3.8.3.6.5 Paquete adicional al comienzo (Additional Package header).

Esta opción de configuración permite adicionar un valor en formato ASCII

para reconocer donde empieza el dato para asegurar la correcta transmisión y

recepción, en la figura se agrega una ‘S’.

3.3.8.3.6.6 Paquete adicional al término (Additional Package terminator).

Esta opción de configuración 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 parámetro de configuración 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 parámetro específica cuantos tipos de datos es capaz de recibir el

bloque (no la cantidad de bytes). El tamaño del dato se auto-configura a partir

de las características del dato en la entrada.

Page 101: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 88

3.3.8.3.6.9 Salida inicial (Initial output).

Este parámetro de configuración sirve si la transferencia de datos ha

sobrepasado el tiempo máximo de espera. Se detiene el proceso y este

parámetro permite inicializar nuevamente la transmisión enviando el último dato

que haya sido correctamente recibido.

Fig. 3.55. Ventana de configuración módulo SPI Transmit.

3.3.8.3.7.0 Módulo SCI de transmisión (SCI Transmit Module).

Esta opción de configuración permite seleccionar que módulo SCI A o B

para la comunicación.

3.3.8.3.7.1 Paquete adicional al comienzo (Additional Package header).

Esta opción de configuración permite adicionar un valor en formato ASCII

para reconocer donde empieza el dato para asegurar la correcta transmisión y

recepción, en la figura se agrega una ‘S’.

3.3.8.3.7.2 Paquete adicional al término (Additional Package terminator).

Esta opción de configuración permite adicionar un valor en formato

ASCII, en la figura se agrega una ‘E’.

3.3.8.3.7.3 Habilitación de interrupción FIFO (Enable FIFO interrupt).

Esta opción de configuración si se habilitada ejecuta una interrupción si

el FIFO se encuentra en desbordamiento.

Page 102: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 89

3.3.8.3.8 Bloque GPIO Puerta de entrada/salida de propósito general.

Fig. 3.56. Bloques GPIO

Estos Bloques son los encargados de configurar los registros de multiplexion

de las GPIO (Pines de propósito general de E/S). Cuando un pin es configurado

como entrada digital queda inmediatamente inhabilitado para utilizarse como

salida digital para algún periférico. Cada procesador tiene disponible diferente

número 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 configuración módulos GPIO

Page 103: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 90

3.3.8.3.8.1 Parámetros de configuración general del Bloques GPIO

3.3.8.3.8.2 Grupo GPIO (GPIO Group).

Esta opción de configuración permite seleccionar un grupo de pines

GPIO para configurar, cada procesador en particular va a tener diferente

distribución de pines GPIO.

3.3.8.3.8.3 Tiempo de muestreo (Sample time).

Este parámetro de configuración permite establecer el intervalo de

tiempo entre samples de entrada/salida, además para establecer el tiempo de

muestreo antes del bloque GPIO, se configura este parámetro en -1.

3.3.8.3.8.4 Tipo de dato (Data type).

Este parámetro 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.

Page 104: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

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 señales (DSP) de Texas Instruments. Code

Composer Studio CCS entrega todas las herramientas necesarias facilidad,

flexibilidad e integración para soporte de software en tiempo real para el DSP

TSM320F2833x. CCS permite un manejo rápido y sencillo para poder desplegar

herramientas necesarias en todas las etapas del proceso de diseño de una

aplicación, incluyendo código, compilación, depuración y análisis.

Figura 3.58. Proceso de Desarrollo del código en CCS.

Entre las principales propiedades del CCS se encuentran las siguientes:

o Código TMS320 DSP estándar.

o Familiar y fácil de usar IDE con editor Code Wright integrado.

o Kernel DSP/BIOS™ escalable en tiempo real y herramientas de

configuración.

o Herramientas para generación de código en lenguajes

C/C++/Assembly.

o Depurador de código fuente con análisis 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 emulación en tiempo real.

o Códigos de ejemplo y Bibliotecas.

o Soporte para TMS320C2000™, TMS320C5000™ (incluyendo los

procesadores OMAP™), y TMS320C6000™ (incluyendo

procesadores the Da Vinci™ la gama más alta de Texas

Instrument).

Page 105: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 92

3.4.1 Características.

Entre las características 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 más importantes del Code Composer Studio incluyen:

o Herramientas para generación de código DSP TMS320:

compilador C/C++.

o Viene con Visual Proyect Manager con interfaz de control de

código y soporte para multiproyectos que permite manejar sobre

100 archivos.

o Configuración Drag and Drop CCStudio que soporta:

Drivers XDS560 ™ de emulación de alta velocidad.

Drivers XDS510 ™ de emulación.

Drivers XDS100 ™ de emulación.

Simuladores para todos los dispositivos, modo CPU y CPU

más memoria.

Opciones de definición configurable para tarjetas.

Editor Code Wright totalmente integrado.

Administrador de componentes soporta múltiples versiones

de DSP/BIOS y de herramientas de generación de código

dentro del IDE.

Page 106: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 93

La función depurador posee las siguientes propiedades:

o Debug Rewind: Retrocede en la simulación.

o Simples breakpoints.

o Breakpoints avanzados y de Hardware.

o Puntos de prueba para inyección/extracción de datos.

o Navegador para Símbolos 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; conexión 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 número de guías y códigos de ejemplo para hardware y software.

Además de tutoriales y manuales.

El software Code Composer Studio además incluye:

o DSP/BIOS ™ Kernel para el TMS320 DSPs

o Multihebras previamente vacías.

o Comunicación entre hebras (threads).

o Manejo de Interrupciones.

o Algoritmos estándar TMS320 DSP para poder volver a usar el software.

o Soporte de Bibliotecas para el Chip con el fin de simplificar la

configuración del dispositivo.

o Bibliotecas DSP para optimizar las funcionalidades del DSP.

Page 107: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 94

3.4.2 Visualización de entorno del programa CCSv3.3.

Configuración 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. Selección de Configuración de la Tarjeta. Emulador XDS100

Seleccionar Create Board y luego elegir la conexión TI XDS100pp

Emulator y presionar el botón ADD. En la siguiente ventana escribir un nombre

arbitrariamente presionar el botón NEXT y luego FINISH. Esto último se

muestra en la siguiente ventana:

Fig. 3.60. Ventana para ingresar nombre de la conexión

Page 108: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

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 conexión, tal como se muestra en la siguiente

figura:

Fig. 3.61. Elección de modelo del DSP.

Para agregarla simplemente se presiona el botón ADD y aparecerá la

siguiente ventana:

Fig. 3.62. Propiedades del microprocesador configurado

Page 109: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

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 botón Save &

Quit. Luego de ello, el CCS se iniciará automáticamente. Cabe mencionar que

si esta configuración 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 Botón Save & Quit.

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

Studio.

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

Page 110: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 97

Capítulo IVResultados: Simulaciones y prueba en

periféricos

Page 111: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 98

4.1 Introducción

En el siguiente capítulo se entregan los resultados obtenidos en las

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

módulos del DSP en específico el módulo ADC, SPI, SCI, PWM y GPIO. Se

muestran los modelos creados en Simulink para cada módulo en particular

realizando una descripción de lo que interpreta cada modelo a nivel del

hardware de DSP, además se muestran algunas señales obtenidas con el

osciloscopio y también se visualizan los resultados de las pruebas obtenidas

con el módulo SCI (UART).

Page 112: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 99

4.2 Módulo SCI (Interfaz de comunicación serie).

Fig. 4.1. Modelo en Simulink bloque SCI Transmit.

El siguiente modelo creado con el software Simulink, es una prueba de la

comunicación SCI a través de este método de programación, el modelo envía

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

característica del hardware disponible en específico 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 señal de disparo,

para que se envié un mensaje a la entrada del bloque SCI XMT. Todo este

procedimiento es posible gracias a la función 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 razón se instalo un programa que simula dicha

entrada a nivel de software y además nos permite visualizar dichos datos, es

una versión virtual de windows Hyperterminal. Con este podemos visualizar los

mensajes emitidos por el módulo SCI del DSP.

Page 113: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 100

Visualización de un mensaje enviado al COM virtual a través de

programación 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.

Page 114: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 101

4.3 Módulo PWM (Modulación por ancho de pulso).

Fig. 4.4. Modelo en Simulink donde se utilizan los módulos 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 señal de

tensión analógica la cual varía continuamente en el tiempo, con esto logramos

obtener una señal digital, la cual utilizamos para generar una señal PWM que

varie su ciclo de trabajo proporcionalmente a la señal de entrada al conversor

análogo / digital y comprobamos el funcionamiento de estos dos módulos. Cabe

mencionar que el bloque Hardware Interrupt nos permite disponer de la rutina

de servicio de interrupción (ISR), para interrumpir la ejecución del subsistema

que posee el bloque ADC-PWM Subsystem cuando es recibido la alerta de

interrupción por el registro ADCINT denominado registro ADC de interrupción.

Page 115: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 102

4.4 Módulo ADC (Conversor análogo-digital).

Fig. 4.6. Modelo en Simulink donde se utilizan los módulos ADC.

El modelo anterior muestra el funcionamiento del bloque ADC, se

comprobó el funcionamiento de este módulo. Se ingresa una señal análoga a

una entrada del conversor la cual es transmitida al bloque Embedded Matlab

Function que contiene una función 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 programación del

módulo era correcta y si este guardaba correctamente los datos convertidos de

análogo a digital.

Page 116: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 103

4.5 Módulo SPI (Interfaz serial para periféricos).

Fig. 4.7. Modelo Simulink para comprobar funcionamiento módulo SPI

El modelo presentado en la figura 8.6 muestra el funcionamiento del

módulo 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 dirección de memoria 0x8FF0. El bloque C28x3x SPI XMIT es el

encargado de transmitir el valor leído, 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 envía al bloque ePWM. Luego el ciclo de trabajo de la

señal ePWM es controlada por el valor enviado desde el bloque SPI RCV. El

periodo de la señal se establece en 6400 ciclos de reloj.

El ciclo de trabajo de la señal PWM puede variar entre 25%, 50% y 75%

según lo que se seleccione en el modelo de Simulink. Una característica que

se investigó es la opción de cambiar el ciclo de trabajo mientras se ejecute

el código en el procesador. Esto se puede realizar si se selecciona la opción

“Write” en el software Embedded IDE Link. Esta opción nos permite escribir

un valor determinado en la dirección de memoria determinada por el bloque

Memory Copy Block, que en este caso es 0x8FF0.

Page 117: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 104

Visualización cambio del ciclo de trabajo de la señal 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%.

Page 118: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 105

Fig. 4.11. Generación de señal de reloj SPICLK a través de la programación con

el modelo creado en Simulink para prueba de módulo SPI.

Fig. 4.12 Señal de SPICLK del módulo SPI a través de programación con

Matlab/Simulink.

Page 119: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 106

Fig. 4.13. Señal de dato que sale del bloque SPI XMIT a través de la

programación con el modelo creado en Simulink para prueba de módulo SPI.

Fig. 4.14. Forma de onda del dato generado por del módulo SPI a través de

programación con Matlab/Simulink.

Page 120: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 107

4.6 Módulo GPIO (Puertas de entrada/salida de propósito general).

Fig. 4.15. Modelo Simulink para comprobar funcionamiento módulo GPIO

Fig. 4.16 Ventana de configuración módulo GPIO

Page 121: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 108

El modelo en Simulink mostrado en la figura anterior es bastante básico,

y simplemente es una comprobación de la generación de código ejecutable en

el microprocesador y su tarjeta de desarrollo, sirve básicamente para

comprobar el funcionamiento de las GPIO, el modelo muestra un tren de pulsos

que es enviado al exterior a través de una GPIO configurada por el bloque

Digital Output.

Visualización de pruebas ejecutadas en laboratorio con el bloque ePWM

(Modulador de ancho de pulso mejorado).

Fig. 4.17. Generación de onda PWM a través de la programación con el modelo

creado en Simulink (Ejecución de código en tarjeta).

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

Page 122: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 109

Capítulo VConclusiones

Page 123: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 110

5.1 Conclusiones.

En el presente trabajo de titulación se presentó el desarrollo de una

herramienta de programación para DSP. En específico un DSP (Procesador

Digital de Señales) 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 programación a los DSP. También se presentó una descripción

detallada para la generación de código a partir de un modelo realizado en

Simulink, se profundizó en las opciones de configuración necesarias para

generar código integrado para una plataforma de hardware específico. Se

trabajo en la verificación y coherencia de los algoritmos desarrollados y su

ejecución en el respectivo hardware, observar sus limitaciones y

potencialidades.

El objetivo principal de este trabajo era desarrollar una herramienta de

programación a través de Matlab/Simulink para una familia de DSP específicos,

el objetivo alcanzado fue generar código para los módulos 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 básicas de los módulos sirvió para comprobar si se podía

realizar la programación 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 ingeniería desde procesamiento de señales

hasta biotecnología. Por esto la utilización de Matlab/Simulink como plataforma

de programación es una excelente elección para desarrollar aplicaciones que

resulten complejas de realizar a través de programación convencional de un

lenguaje de más bajo nivel.

Como trabajo futuro se tiene como objetivo programar la memoria Flash y

la totalidad de los módulos o periféricos del DSP, crear modelos para una

aplicación en particular como por ejemplo control de motores, procesamiento de

imágenes, creación de interfaz básica, etc. El principal objetivo futuro es

desarrollar esta herramienta para su utilización en el entendimiento del

funcionamiento del DSP.

Page 124: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 111

5.2 Referencias.

[1] The Mathworks Inc.”Simulink-Simulation and Model Based Design”

[2] The Mathworks Inc. (Versión 2010). Matlab R2010a. [Programa de

computador]. Recuperado Septiembre 2010, The Mathworks Inc.

[3] The Mathworks Inc. “Real-Time Workshop” Real-Time Workshop® User’s

Guide (Versión 7.5), recuperado septiembre 2010, The Mathworks Inc.

[4] The Mathworks Inc. “Embedded IDE Link™” Embedded IDE Link™

User’s Guide (Versión 4.2), recuperado septiembre 2010, The Mathworks

Inc.

[5] The Mathworks Inc. “Embedded IDE Link™” For Use with Texas

Instruments Code Composer Studio™ (Versión 4.2), recuperado

septiembre 2010, The Mathworks Inc.

[6] The Mathworks Inc. “Target Support Package™” Target Support

Package™ User’s Guide (Versión 4.2), recuperado septiembre 2010, The

Mathworks Inc.

[7] Texas Instrument. “Code Composer Studio” Code Composer Studio

User’s Guide (Versión 3.3), recuperado octubre 2006, www.ti.com.

[8] Texas Instrument. “TMS320F28335 (DSCs)” TMS320F28335 (DSCs)

Data Manual of Digital Signal Processor (Versión 2007), recuperado

marzo 2010, focus.ti.com/lit/ds/sprs439h/sprs439h.pdf.

Page 125: Programación de DSP a través de Herramientas disponibles ... · UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA Departamento de Electricidad Programación de DSP a través de

P á g i n a | 112

5.3 ANEXO.

Programas necesarios para la ejecución del proyecto.

Matlab 7 versión 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 página www.ti.com. (Es

necesario crear una cuenta en la página 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 comunicación 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