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

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: others

Post on 04-Feb-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

  • 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

  • P á g i n a | ii

  • P á g i n a | iii

  • 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.

  • 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.

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • Capítulo IIntroducción

  • 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.

  • 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.

  • 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.

  • P á g i n a | 5

    Capítulo IIIntroducción al procesamiento digital de

    señales

  • 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.

  • 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

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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

  • 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.

  • P á g i n a | 15

    Capítulo IIIHerramientas de desarrollo para generación

    de código

  • 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.

  • 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.

  • 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.

  • 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).

  • 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.

  • 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

  • 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.

  • 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.

  • 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).

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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).

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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

  • 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.

  • 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).

  • 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 d