Accesos directos a las distintas zonas del curso

Ir a los contenidos

Ir a menú navegación principal

Ir a menú pie de página

MICROCONTROLADORES PIC

Curso 2023/2024/Subject's code28806555

MICROCONTROLADORES PIC

NAME SUBJECT MICROCONTROLADORES PIC
CODE 28806555
SESSION 2023/2024
DEGREE IN WHICH IT IS OFFERED MÁSTER UNIVERSITARIO EN INGENIERÍA INDUSTRIAL
TYPE CONTENIDOS
ECTS 5
HOURS 125.0
PERIOD SEMESTRE  1
OFFER LANGUAGES CASTELLANO

PRESENTACIÓN Y CONTEXTUALIZACIÓN

IMPORTANTE: La asignatura se basará fundamentalmente en las arquitecturas ARM de 32 bits.

Las arquitecturas ARM (Advanced RISC MachineAcorn RISC Machines) están entre las más versátiles, estudiadas y utilizadas ("200 billion Arm-based chips shipped by our partners over the past three decades", fuente ARM 18-10-2021) en la actualidad para sistemas embebidos (en comparación con la obsolencencia, y dificultad de adquisición, de muchos productos basados en las arquitecturas PIC). Así mismo, en la actualidad existen multitud de tarjetas de evaluación, y hardware asociado, a precios muy asequibles para arquitecturas ARM. Cabe destacar también el numeroso material y bibliografía disponibles sobre ARM (principalmente en inglés). Se recomienda leer la información sobre ARM dada, por ejemplo, en wikipedia para tener una idea más detallada (preferiblemente en inglés).

La asignatura pertenece a la materia "Sistemas electrónicos y automáticos" y tiene como objetivo dar una visión completa de las principales arquitecturas de la familia ARM Cortex de 32 bits, principalmente las familias M3 y M4, así como de su programación en lenguaje C y en ensamblador. Es importante diferenciar entre la arquitectura (bajo nivel) y el microcontrolador y el entorno de desarrollo disponible en el mercado. De hecho, mientras que los dispositivos Ardunio más básicos (Uno R3 y Mega entre otros) emplean arquitecturas AVR de 8 bits (con reloj a 16 MHz), los dispositivos más potentes de Arduino emplean microcontroladores ARM de 32 bits (Arduino Due monta ARM M3 de 32 bits, coma fija y 84 MHz de reloj), mientras que algunos de los modelos de Raspberry montan ARM de 64 bits. Cabe comentar que en la última versión R4 de la placa Arduino Uno (junio 2023) se emplea un núcleo ARM - M4 con unidad de coma flotante FPU, rango de tensiones extendido (tecnología CMOS con tensiones extendidas al rango TTL, pero corriente reducida en los puertos I/O), reloj de 48 MHz y memoria ampliada; lo cual supone un salto considerable con respecto a la versión anterior R3 basada en AVR. Para sistemas de tiempo real, también hay que resaltar la notable diferencia, en resolución y rápidez, entre los ADC empleados en los microcontroladores basados en ARM de 32 bits y las familias Arduino basadas en AVR de 8 bits. En muchos de los microcontroladores ARM de 32 bits es posible incluso instalar un sistema operartivo de tiempo real (RTOS). No obstante, en aplicaciones con constantes de tiempo muy pequeñas (incluso del orden de microsegundos) es necesario implementar la aplicación a bajo nivel sin sistema operativo, tal y como se plantea en esta asignatura.

La asignatura se basa en ARM, fundamentalmente la familia M3 (coma fija) y la familia M4 (con unidad de coma flotante FPU). Se centra principalmente la atención en los entornos de desarrollo avanzados para ARM, aunque también se realiza una breve introducción al entorno de desarrollo basado en Arduino, y otro tipo de plataformas, ya que es importante saber seleccionar la arquitectura más adecuada en función de la aplicación (simplicidad vs potencia) y combinar diferentes dispositivos y entornos. Además, muchos de los accesorios hardware para microcontroladores disponibles actualmente en el mercado provienen de las plataformas Arduino basadas en AVR. La familia Arduino-AVR presenta la ventaja de su facilidad de desarrollo ofreciendo unas prestaciones moderadas (válidas para sistemas con constantes de tiempo lentas). Por su parte, la arquitectura y entornos ARM presentan mayor complejidad de desarrollo y aprendizaje, pero una mucha mayor potencia, permitiendo su uso en aplicaciones con constantes de tiempo muy reducidas y sistemas de tiempo real estricto (Hard Real Time), como el control en tiempo real y el procesado digital de señales.

Las prácticas de la asignatura son obligatorias (ver apartado de prácticas y evaluación). Para su realización se empleará un entorno de simulación software (QtARMSim) junto con una tarjeta de desarrollo STM32 de la famila M4 (con unidad de coma flotante FPU). Se introducen algunos de los periféricos más habituales empleados en sistemas embebidos y algunas cuestiones importantes sobre el diseño hardware (por ej. divisores de tensión, transistores, optoacopladores, etc). Se presentará también la posibilidad de combinar diversos tipos de microcontroladores y dispositivos para optimizar las prestaciones y minimizar el tiempo de desarrollo. Así mismo, se introducen conceptos y herramientas sobre conectividad de dispositivos (por ej. IoT).

El enfoque de la asignatura es eminentemente aplicado y se pretende que el alumno ponga en práctica los conocimientos teóricos adquiridos. Las familias de la arquitectura ARM (por ej. M3, M4, M7) emplean la filosofía RISC (Reduced Instruction Set Computer) y presentan gran compatilidad entre ellas (juego de instrucciones). Se comienza con un repaso de la arquitectura ARM y su lenguaje ensamblador (familia M3 de coma fija). Se continua introduciendo la familia M4 (con unidad de coma flotante FPU) y su programación en lenguaje C. Por último, se realiza una actividad práctica de implementación para aplicar los conocimientos adquiridos a la programación de un microcontrolador ARM Cortex M4 en un sistema embebido y analizando los resultados con instrumental de laboratorio y software científico (por ej. Matlab o Python).

A nivel profesional, el aprendizaje de estos conocimientos resultará de gran utilidad a la hora de trabajar con cualquier sistema electrónico, ya que las habilidades adquiridas aquí servirán tanto para el prototipado como para el desarrollo de sistemas electrónicos que hagan uso de microcontroladores, que son numerosos. De especial interes son las habilidades obtenidas en la programación de bajo nivel de microcontroladores para sistemas de tiempo real estricto y sistemas embebidos, perfil muy demandado en la industria.

Esta guía proporciona las directrices básicas que el estudiante necesita para estudiar la asignatura. Por esta razón, es recomendable leer detenidamente la guía antes de comenzar el estudio, para adquirir una visión general de la asignatura, las actividades y las prácticas que se desarrollarán durante el curso. Esta asignatura es optativa del primer semestre del Máster Universitario en Ingeniería Industrial. Al tratarse de una asignatura del primer semestre del plan de estudios, no se basa en conocimientos previos de ninguna asignatura del mismo. No es imprescindible, aunque sí recomendable, poseer conocimientos previos de programación y de arquitectura de computadores para cursar la asignatura. También es interesante que el alumno posea algunos conocimientos básicos de electrónica digital, electrónica analógica, métodos numéricos y procesado digital de señales.

Es importante tener cierta soltura en la lectura de textos técnicos en inglés.

Los estudiantes conseguirán 5 ECTS con esta asignatura optativa después de superarla con éxito.