Ministerio de Cultura y Educación
Universidad Nacional de San Luis
Facultad de Ciencias Físico Matemáticas y Naturales
Departamento: Electrónica
Área: Electrónica
(Programa del año 2024)
(Programa en trámite de aprobación)
(Programa presentado el 20/03/2024 11:28:05)
I - Oferta Académica
Materia Carrera Plan Año Periodo
PROCESADORES II PROF.TECN.ELECT 005/09 2024 1° cuatrimestre
PROCESADORES II TEC.UNIV.ELECT. 15/13-CD 2024 1° cuatrimestre
II - Equipo Docente
Docente Función Cargo Dedicación
MURDOCCA, ROBERTO MARTIN Prof. Responsable P.Adj Exc 40 Hs
HERNANDEZ VELAZQUEZ, SERGIO FE Prof. Co-Responsable JTP Exc 40 Hs
CABALLERO, CLAUDIO NICOLAS Auxiliar de Práctico A.1ra Simp 10 Hs
III - Características del Curso
Credito Horario Semanal Tipificación Duración
Teórico/Práctico Teóricas Prácticas de Aula Práct. de lab/ camp/ Resid/ PIP, etc. Total B - Teoria con prácticas de aula y laboratorio Desde Hasta Cantidad de Semanas Cantidad en Horas
Periodo
3 Hs. 0 Hs.  Hs. 3 Hs. 6 Hs. 1º Cuatrimestre 11/03/2024 21/06/2024 15 90
IV - Fundamentación
Actualmente, en la industria, automóviles, sistemas de comunicaciones, electrónica de consumo, laboratorios y en general en la mayoría de los equipos electrónicos se tiene un microcontrolador embebido encargado de controlar el funcionamiento de dicho dispositivo o instrumento.
Por ello es importante que el estudiante de ingeniería conozca las arquitecturas actuales para implementación de sistemas embebidos como así también las herramientas de software para la implementación de los mismos.
V - Objetivos / Resultados de Aprendizaje
Estudiar la arquitectura y programación de microprocesadores y microcontroladores actuales de 8, 16 y 32 bits.
Brindar los conceptos necesarios para que el estudiante pueda enfrentar la programación de Sistemas Embebidos. Introducir a los estudiantes en los conceptos de programación para resolver problemas a través de lenguajes de programación estándar de alto nivel.
Además, se pretende desarrollar el pensamiento lógico y crítico en un contexto de trabajo colaborativo.
Mejorar la habilidad para escribir documentos relacionados con un desarrollo de ingeniería.
VI - Contenidos
Unidad 01: Microcontroladores y Sistemas Embebidos
Microcontroladores de 8, 16 y 32 bits. Mercado actual de Microcontroladores. Características de los Microcontroladores de propósito general. Aplicaciones. Periféricos internos de los microcontroladores. Sistemas Embebidos. Definición. Áreas de aplicación de los Sistemas Embebidos. Ejemplos de sistemas embebidos. Software Embebido. Firmware. Lenguajes de programación utilizados. Modelos de software. Herramientas de desarrollo integrado. Programas de diseño y simulación electrónica. Descripción de placas de desarrollo para microcontroladores de gama baja, media y alta.

Unidad 02: Desarrollo de Sistemas Embebidos
Técnicas de diseño programación de sistemas embebidos. Etapas de desarrollo de un proyecto. Programación Bare Metal. El patrón Súper Lazo. Programación mediante interrupciones (background / foreground). Modularización del software. Bibliotecas estáticas. Modelo de capas de abstracción de hardware (HAL). Librería CMSIS. Librería LPCOpen. Uso de modelos de software. Máquinas de estados finitos (FSM). Tablas y diagramas de estados. Implementación de FSM en C. Procesos. Threads. Procesos secuenciales. Procesos concurrentes. Diagrama de Estado (Statecharts). Herramientas para Modelado, Simulación y Validación de Modelos.

Unidad 03: Microcontroladores ARM Cortex-M3/M4
Arquitecturas ARM. Breve historia de ARM. Características generales. Mercado actual de Microcontroladores ARM. Diferencias entre las variantes de ARM Cortex A, R y M. Introducción al Cortex-M3/M4. Arquitectura. Registros. La Unidad Aritmético Lógica (ALU). Buses. Modos de funcionamiento. Mapa de Memoria. Secuencia de Reset. Pipelining. Modos de operación. Excepciones y controlador de interrupciones. Características del Timer Systick. Mapa de memoria. Arquitectura de buses. Pipeline. Set de instrucciones.

Unidad 04: Herramientas de desarrollo
Conceptos básicos sobre compilado en alto nivel. Compilador C. Pre-procesador. Librerías. El Linker. Elementos del lenguaje C. Estructura de un programa en C. Reglas de programación. Cross compilador C para microcontroladores. Particularidades. Entorno de desarrollo integrado (IDE). C Embebido. Técnicas de depurado (Debbugging). Herramientas para programación / Debugging. Software para Cortex M3/M4. Herramientas para control de versiones y repositorios.

Unidad 05: Periféricos internos del Cortex-M3/M4
Conceptos básicos de GPIO. Configuración. Reloj. Fuentes y configuración del reloj, el concepto de PLL. Configuración del PLL. Interrupciones en Cortex-M. El NVIC. Configuración. Tabla de vectores. Manejo de interrupciones. Sincronización de E/S. Interrupciones de periféricos. Temporizadores y contadores, configuración y sus interrupciones. Temporizador SysTick. Modulación de ancho de pulso (PWM). Comunicación serie. Comunicación síncrona y asíncrona. Comunicación serie en el Cortex-M3. Las interfaces serie en la BaseBoard. Interface RS232, USB y UART 3.3V. Configuración. Interface a la PC usando terminal serie. Puertos serie virtuales. Uso y configuración de puertos virtuales.

Unidad 06: Interface con Dispositivos Externos.
Conexión de dispositivos externos con el microcontrolador. Características eléctricas de los puertos de microcontroladores. Interfaces con dispositivos de entrada. Conexión de Interruptores y pulsadores. Interface con teclados: independientes y matriciales. Adaptación de señales de entrada. Opto aislación. Interfaces con dispositivos de salida. Interface con LEDS. Uso de Displays. Conexión a Display 7 segmentos. Display 7 segmentos multiplexado. Display LCD inteligente. Displays gráficos. Interfaces de potencia. Interface con circuitos de corriente alterna. Interfaces con reles. Interface con otros periféricos externos. Interface SPI síncrono. Aplicaciones. Interface I2C. Características. Configuración. Dispositivos I2C.

Unidad 07: Otras Plataformas Embebidas
Otras plataformas embebidas actuales. Mercado de microcontroladores. Plataforma con conectividad WiFi / Bluetooth. El ESP-32. Distintas versiones. Características. GPIO. Configuración. Interrupciones. Temporizadores y contadores. Comunicación serie. Plataformas SBC (Single Board Computer). Descripción de la plataforma RaspBerry Pi. Versiones. Aplicaciones.

Unidad 08: Sistemas Operativos en Tiempo Real
Introducción a los Sistemas de Tiempo Real. Hard Real Time System. Soft Real Time System. Clasificación de Sistemas; reactivos y transformacionales. Procesamiento en tiempo real. Sistemas Operativos en Tiempo Real (RTOS). Componentes básicos de un RTOS. Multitarea cooperativa y preventiva. Caso de estudio: FreeRTOS. Aspectos generales. Tipos de tareas y sus implementaciones. Estados de las tareas. Sincronización entre tareas: uso de semáforos. Intercambio de datos entre tareas: uso de colas. Mecanismos de exclusión mutua en el acceso a recursos compartidos (Mutex). Problemas asociados: inversión de prioridades, deadlocks. Uso de interrupciones. Manejo dinámico de memoria.

VII - Plan de Trabajos Prácticos
Laboratorio 01 - Uso de Modelos de programación (FSM).
Laboratorio 02 - Herramientas de desarrollo para ARM Cortex.
Laboratorio 03 - Programación en C. Uso de CMSIS / LPCOpen.
Laboratorio 04 - Temporizadores e Interrupciones.
Laboratorio 05 - Comunicación Serie.
Laboratorio 06 - Introducción a la Plataforma ESP-32.
Laboratorio 07 - Aplicaciones con la ESP32.
Laboratorio 08 - Sistemas Operativos en Tiempo Real.
VIII - Regimen de Aprobación

Para obtener la regularidad en la materia y rendir el examen final como alumno regular será necesario:

- Haber aprobado la totalidad de los exámenes parciales. Cada examen parcial posee dos recuperaciones.
- Haber aprobado el 100% de las Prácticas de Laboratorio.
- Para poder asistir a la clase de laboratorio se requiere aprobar el cuestionario con los contenidos mínimos requeridos al inicio de la clase.
- Se podrán recuperar solo el 30% de las prácticas de laboratorio, no aprobadas durante el cuatrimestre.

No se aceptan alumnos que no estén en condiciones regulares.
La materia no podrá rendirse en forma libre.
IX - Bibliografía Básica
[1] Joseph Yiu (2013). The Definitive Guide to ARM® Cortex®-M3 and Cortex®-M4 Processors , 3rd Ed. Elsevier.
[2] Cortex™-M3, Revision r2p0, Technical Reference Manual – ARM
[3] ARM®v7-M Architecture, Reference Manual – ARM
[4] UM10360 LPC176x/5x User Manual & LPC1769/68/67/66/65/64/63 Product data sheet – NXP.
[5] Galeano Gustavo (2009). Programación de Sistemas Embebidos en C, México, Alfaomega Grupo Editor.
[6] G. Booch, J. Rumbaugh, I. Jacobson (2006). El Lenguaje Unificado de Modelado, 2ª Ed, Addison-Wesley.
[7] Qing L, Yao C. (2003). Real-Time Concepts for Embedded Systems. CMP Books.
[8] Barry R. Using the FreeRTOS Real Time Kernel. NXP LPC17xx Edition.
[9] Nicolas Melot (2010). Study of an operating system: FreeRTOS.
[10] Richard Barry (2010).Using the FreeRTOS Real Time Kernel. Standard Edition.
[11] Espressif Systems (2021). ESP32 Refrence Manual. Version 4.6.
[12] Espressif Systems (2022). ESP32 Series Datasheet. Version 3.9.
X - Bibliografia Complementaria
[1] Ganssle Jack, The Firmware Handbook – EEUU, ELSEVIER, 2004, 365p.
[2] Zurawski Richard (2006). Embedded Systems HandBook, Taylor & Francis Group.
[3] Keith E. Curtis (2006). Embedded multitasking with Small Microcontrollers. ELSEVIER.
[4] Ken Arnold (2000). Embedded Controller Hardware Design. LLH Technology Publishing.
[5] Tammy Noergaard (2005). Embedded Systems Architecture A Comprehensive Guide for Engineers and Programmers. ELSEVIER.
XI - Resumen de Objetivos
Estudiar la arquitectura y programación de microprocesadores y microcontroladores de 8, 16 y 32 bits actuales.
Utilizar herramientas de desarrollo para realizar la programación de una familia de microcontroladores.
Dotar al estudiante de los conocimientos necesarios para desarrollar un sistema embebido.
XII - Resumen del Programa
Unidad 01: Microcontroladores y Sistemas Embebidos.
Unidad 02: Desarrollo de Sistemas Embebidos
Unidad 03: Microcontroladores ARM Cortex-M3/M4
Unidad 04: Herramientas de desarrollo.
Unidad 05: Periféricos internos del Cortex-M3/M4
Unidad 06: Interfaces con Dispositivos Externos.
Unidad 07: Otras plataformas Embebidas.
Unidad 08: Sistemas Operativos en Tiempo Real.
XIII - Imprevistos
El presente programa puede presentar ajustes. Toda modificación será acordada y comunicada con el estudiantado e informada a Secretaría Académica.
Docente de Contacto: mmurdocc@gmail.com
XIV - Otros