1. Introducción a los sistemas Embebidos.
- Introducción
- Familia C2000.
- LaunchPad F28379D
- Comparación F28x7x Piccolo / Delfino.
- Material requerido para el curso.
2. Arquitectura de la familia C2000.
- Diagrama de bloques del DSC F2837xD
- Simplificación del mapa de memoria del DSC F28x7x
- Manejo de las interrupciones en DSC F28x7x
- Acceso Directo a Memoria (DMA)
- Control de la unidad CLA / Control Law Accelerator)
- Unidad compleja Matemática Viterbi (VCU, Complex Math Unit)
- Unidad matemática trigonométrica (TMU, Trigonometric Math Unit)
- Interface de memoria externa (EMIF)
- Periféricos de comunicación
- Características de salvaguarda en el Chip
3. Lenguaje C ANSI para Sistemas embebidos. Base.
- ¿Qué es un lenguaje de programación?. Clasificación.
- Introducción a lenguaje C Ansi.
o Tipos de Datos: Enteros y Reales.
o Modificadores. Auto, extern, register, static y typedef.
o Casting.
o Operadores Aritméticos, Lógicos y manejo de bits.
o Declaración de funciones.
o Estructuras de control. If, while, for swtich,....
- Lenguaje C ANSI para Sistemas embebidos. Avanzado.
o Ámbito o alcance (scope) de las variables.
o Duración de las variables en la programación con lenguaje C Ansi. Estáticas y dinámicas.
o Modificadores de las variables en la programación del código C Ansi. Variables externas, register, volatile y const. Ejemplos.
o Variables Tipo Enumerados en código C Ansi. Ejemplos.
o Macros aplicadas al código C Ansi. Ejemplos.
o Preprocesado en el código C Ansi. Ejemplos.
o Optimizar el compilador. Ejemplos.
o Utilización óptima de estructuras y funciones. Ejemplos.
o Punteros a variables y a funciones en el código C Ansi. Ejemplos.
o Definición de nuevos datos mediante "typedef" en el código C Ansi. Ejemplos.
o Ahorro de memoria mediante la instrucción "unión" en el código C Ansi. Ejemplos.
o Estructura de datos más utilizados. Colas, Pilas y Listas. Ejemplos.
4. Entorno de desarrollo Software.
- Modelo de programación
- Code Composer Studio (CCS)
- desarrollo del y conceptos del fichero COFF
- Editor y Depurador del CCS
- Configuración de la tarjeta
- Gestión de los proyectos en el CCS
- Entorno de depuración del CCSv6
- Subsistema Dual de depuración
- Estructura de los directorios en los Laboratorios
- Laboratorio: Dual-Core depuración con el F2837xD.
5. Estructuras de los registros de los DSC familia C2000.
- Tradicional Aproximación a la Codificación en "C".
- Aproximación de las Estructuras en la Codificación en "C".
- Más eficiente utilizando las Estructuras.
- Comparar con las macros #define.
- Convenciones de los Nombre de las Estructuras.
- Paquete de los Ficheros de Cabecera del F2837xD.
- Fichero de Variables Globales.
- Ficheros de Comandos Linker para el uso de las estructuras.
6. Lenguaje C ANSI para Sistemas embebidos. Objetos.
- Objetivos de la Programación para sistemas embebidos.
- Objetivos de la Programación Orientada a Objetos (POO) para sistemas embebidos.
- Introducción de la Programación Orientada a Objetos para sistemas embebidos. Ejemplo de un la clase de un coche.
- Terminología de la Programación Orientada a Objetos: Abstracción, encapsulamiento, herencia, poliformismo, constructor.
- Resumen comparativo entre la POO y la Procedural.
- Abordar la POO mediante el lenguaje C Ansi. Ejemplos.
- Ejemplos de cómo implementar una Clase de un filtro paso-bajo en el lenguaje C Ansi.
- Diseño de una aplicación de control de unos leds con unos tiempos manejados por un Timer de la CPU mediante la Programación Orientada a Objetos (POO) para sistemas embebidos, en concreto para el TMS320F28027 de la familia C2000 de Texas Instruments.
- Diseño de una aplicación de un sistemas de medidas local mediante la Programación Orientada a Objetos (POO) para sistemas embebidos, en concreto para el TMS320F28027 de la familia C2000 de Texas Instruments.
7. Clocks y Entradas y Salidas digitales (GPIO)
- Módulo PLL y Oscilador del DSC-F28x7x
- Modulo del Timer del Watchdog
- Entradas/salidas digitales del DSC-F28x7x
- GPIO Input X-Bar
- GPIO Output X-Bar.
- Laboratorio: Manejo de las GPIOs.
8. Sistema del Reset, Interrupciones e Inicialización. Timer CPU
- Fuentes del Reset
- Proceso de arranque (Boot)
- Emulación Modo Boot
- Modo Autoarranque (Stand-Alone Boot)
- Resumen del flujograma del Reset
- Fuentes de las interrupciones
- Periférico de expansión de las interrupciones (PIE)
- Tabla de asignación d la PIE del F2837xD
- Inicialización del Bloque PIE
- Estructura de las interrupciones de Dual_core F2837xD
- Laboratorio: Timers CPU.
9. Módulo PWM.
- Módulo ePWM Señales y conexiones
- Módulo ePWM diagrama de bloques
- Módulo ePWM. Submodulo de la Base de Tiempos
- Módulo ePWM. Submodulo de Comparación
- Módulo ePWM. Submodulo de Cualificacion
- Módulo ePWM. Submodulo Dead-Band
- Módulo ePWM. Submodulo Chopper
- Módulo ePWM. Trip-Zone y el submodulo de comparación-Digital.
- Submodulo ePWM. Eventos de disparo
- Hi-Resolution PWM (HRPWM)
- Módulo de Capture Module (eCAP)
- Modulo Quadrature Encoder Pulse (eQEP)
- Laboratorio: Control PWM.
10. Subsistema Analogico del DSC-F28x7x.
- Subsistema ADC
- Diagrama de bloques del módulo ADC
- Disparar el ADC.
- Prioridad en la conversión del ADC
- Bloque de Post Procesado
- Subsistema Comparador
- Convertidor Digital-Analógico
- Modulo Filtro Sigma Delta.
- Laboratorio: Convertidor Analógico-Digital.
11. Módulo de Acceso Directo a Memoria (DMA).
- Introducción al Acceso directo a Memoria (DMA)
- Operaciones - Básicas
- DMA Ejemplos
- Modos de prioridad de los Canales
- Rendimiento de la DMA
- Registros DMA
- Laboratorio: Utilizar el ADC con la DMA.
12. Control Law Accelerator (CLA).
- Módulo CLA. Diagrama de Bloques
- Módulo CLA. Acceso a Memoria y a sus registros
- Módulo CLA. Tareas
- Módulo CLA. Control y Registros de Ejecución
- Módulo CLA. Registros
- Módulo CLA. Inicialización
- Módulo CLA. Programación de Tareas
- Módulo CLA. Implementación en Lenguaje C y sus restricciones
- Módulo CLA. Implementación en Lenguaje Ensamblador
- Módulo CLA. Depuración del Código
- Laboratorio: Modulo CLA implementación de un Filtro FIR en Coma Flotante.
13. Comunicación Inter-Processor (IPC).
- Global IPC compartir memoriaSARAM y mensajes SARAM
- Interrupciones y Flags del IPC
- Transferencia de datos IPC
- Laboratorio: Comunicaciones Inter-Processor.
14. Diseño del Sistema.
- Emulación y Bloque de Análisis
- Interface de Memoria Externa (EMIF)
- Configuración de la Flash y Características de la Memoria
- Programación de la Flash
- Modulo Dual Code Security (DCSM)
- Laboratorio-10: Programación de la Flash.
15. Comunicaciones con el DSC-28379-D.
- Técnicas de Comunicaciones.
- Serial Peripheral Interface (SPI). Resumen SPI.
- Serial Communications Interface (SCI).
- Sistemas Multiprocesador. Resumen de la SCI.
- Multichannel Buffered Serial Port (McBSP).
- Definición: Bit, Word, y Frame.
- Selección de Multi-Canal. Resumen McBSP.
- Inter-Integrated Circuit (I2C).
- Modos de Operación y Formatos de la I2C. Resumen I2C.
- Universal Serial Bus (USB).
- Comunicación USB.
- Enumeración.
- F28x USB Hardware. Resumen del controlador de la USB.
- Controller Area Network (CAN).
o CAN Bus y Nodos.
o Principios y Operación.
o Formato de los Mensajes y Diagrama de Bloques.
o Resumen del bus CAN.
16. Utilidades Avanzadas de Software.
- Crear una librería propia desde Code Composer Studio.
- Emular dos entornos de Code Composer Studio en un mismo PC.
- Usar librería de C++ desde código en C-Ansi. Wrapper.
Laboratorios prácticos:
1. Laboratorio-1. Code Composer. Crear/Abrir un Proyecto Nuevo:
2. Laboratorio-2. Inicializar el Sistema. Manejo de E/S Digitales:
3. Laboratorio-3. Manejo de Interrupciones. Timer-0 de la CPU:
4. Laboratorio-4. Generación de señales. Unidad ePWM:
5. Laboratorio-5. Subsistema analógico:
6. Laboratorio-6. Acceso Directo a Memoria (DMA):
7. Laboratorio-7. Unidad de cálculo paralelo CLA:
8. Laboratorio-8. Comunicación entre CPUs (IPC):
9. Laboratorio-9. Grabación del código en la Flash:
10. Laboratorio-10. Comunicación serie RS232. Unidad SCI:
11. Laboratorio-11. Utilidades Avanzadas del Software: