Microcontroladores PRESENTACIÓN DEL CURSO M. C. Felipe Santiago Espinosa Instituto de Electrónica y Mecatrónica Cubículo 19 Marzo / 2017 Contacto: fsantiag@mixteco.utm.mx http://www.utm.mx/~fsantiag (material del curso)
OBJETIVO Otorgar al alumno las bases teóricas, metodológicas y técnicas del diseño de sistemas electrónicos basados en microcontroladores. Específicamente en el curso se trabajará con el microcontrolador ATMega328P de la familia AVR de ATMEL. El temario oficial del curso se puede descargar de: http://www.utm.mx/~ofertaeducativa/electronica/planvigente/6to. _SEMESTRE/MICROCONTROLADORES.pdf 2
TEMAS Y SUBTEMAS 1. Introducción a los microcontroladores 1. Controlador y microcontrolador 2. Microprocesador y microcontrolador 3. Arquitectura básica de un microcontrolador 4. Unidad central de procesamiento (CPU) 5. Sistema de Memoria 6. Periféricos incorporados a un microcontrolador 7. Familias populares de microcontroladores 8. Elección de un microcontrolador 2. Organización interna de los microcontroladores 1. Arquitectura 2. Registros 3. Mapa de memoria 4. Sistema de inicialización 5. Sistema de interrupciones 6. Puertos de entrada/salida 7. Modos de funcionamiento 3
3. Programación 1. Conjunto de instrucciones 2. Modos de direccionamiento 3. Gestión de interrupciones 4. Herramientas de desarrrollo 5. Lenguaje ensamblador 6. Estructura de un programa 7. Estimación de tiempos 4. Periféricos incluidos en un microcontrolador 1. Interrupciones Externas 2. Temporizadores/Contadores 3. Modulación por ancho de pulso (PWM) 4. Comparador analógico 5. Convertidor analógico a digital 6. Convertidor digital a analógico 7. Protocolos de comunicación (USART, SPI, I2C) 4
5. Interfaz y control de periféricos externos 1. Botones e Interruptores 2. LEDs 3. Visualizadores de 7 segmentos 4. Teclados 5. Display de Cristral Líquido (LCD) 6. Control de motores de CD 7. Control de motores de pasos 8. Interfaz con sensores 9. Interfaz con una PC 6. Desarrollo de aplicaciones y sistemas basados en microcontroladores 1. Metodología de diseño 2. Desarrollo de un sistema hardware y software 3. Programación en lenguajes de alto nivel 5
CRONOGRAMA Capítulo 1er. Parcial 2o. Parcial 3er. Parcial Final 1. Introducción 2. Organización 3. Programación 5. Periféricos Internos 6. Periféricos Externos 7. Proyecto Final 6
EVALUACIÓN Parciales : Examen : 60 % Laboratorio (prácticas y reporte) : 40 % Final (Depende del promedio de los parciales (P.P.)) : P.P. < 8.0 P.P. >= 8.0 Examen : 50 % 0 % Proyecto : 50 % 100 % Extraordinarios: Examen : 100 % 7
EVALUACIÓN Para las prácticas y el proyecto se trabajará en equipos con 3 integrantes como máximo. Para las prácticas se tomará en cuenta su realización exitosa y la documentación de la solución. En los exámenes del 2º y 3er parcial es posible (y conveniente) sacar las diapositivas impresas y/o el libro de texto. El proyecto es obligatorio. ASISTENCIA Deben cubrir el 85 % de Asistencia para tener derecho al examen parcial correspondiente y un 65 % durante el semestre para el 1er y 2do examen extraordinario. (Art. 48, reglamento de alumnos. http://www.utm.mx/docsutm/reglamentos/4_alumnos.pdf ). Para simplificar, tienen derecho a 3 faltas en cada parcial. La semana de exámenes también se pasa lista. 8
REPORTES Se realizará sólo un reporte por cada parcial, así como uno para el proyecto final. Los reportes se enviarán en formato electrónico a fsantiag@mixteco.utm.mx El reporte es tan valioso como la práctica misma. El formato es a una sóla columna, letra tamaño 12 a espacio y medio. El reporte debe incluir: 1. Introducción. (Breve, original y enfocada a las prácticas, entre media y una página) 2. Objetivo general. ( Qué se espera de las prácticas?) 3. Objetivos específicos. ( Cómo se va a conseguir el objetivo general?) 4. Diseño del hardware. (explicando entradas y salidas, cómo se va a resolver el problema) 5. Diseño del software. (algoritmo o diagrama de flujo, explicando el comportamiento esperado) 6. Resultados. (Simulaciones y/o fotos de la implementación real) 7. Conclusiones. (Especificar qué concluyó cada integrante del equipo) 8. Referencias 9. Apéndices. (código, descripción de componentes interesantes) 9
BIBLIOGRAFÍA Libros básicos: Los Microcontroladores AVR de Atmel / Felipe Santiago Espinosa; México: Universidad Tecnológica de la Mixteca, 2012. ISBN: 978-607-95222-7-8. Programming and Customizing the AVR Microcontroller / Dhananjay V. Grade; New York, N. Y.: McGraw-Hill, 2001. ISBN: 0-07-134666-X. Libros complementarios: ATMega328 : AVR RISC Microcontroller, Datasheet, Atmel Corporation (http://www.atmel.com) The AVR Microcontroller and Embedded System, using assembly and C / Muhamad Ali Mazidi, Sarmad Naimi, Sepehr Naimi; United States of America: Prentice Hall, 2011. ISBN-10: 0-13-800331-9. Make: AVR Programming / Elliot Williams, 2014, Printed in the United States of America. Published by Maker Media, ISBN: 978-1-449-35578-4 10
HERRAMIENTAS DE DESARROLLO Herramienta desarrollada y distribuida libremente por ATMEL. La versión 4.18 trabaja adecuadamente con Windows XP y 7. Para versiones más nuevas de windows es conveniente obtener la versión 5, 6 o 7 (ahora se llama Atmel Studio). 11
El AVR Studio 4.18 únicamente incluye al programa ensamblador (AVRASM), sin embargo, proporciona las facilidades para enlazarse con compiladores de lenguaje C desarrollados por alguna fuente diferente a ATMEL. Instalando al compilador adecuado, desde el mismo entorno será posible la edición de programas, la invocación del compilador con exhibición de resultados, simulación y depuración en lenguaje C. El Atmel Studio ya incluye un compilador de C/C++. 12
EL AVRSTUDIO
EL COMPILADOR DE C Avr-GCC es un compilador incluido en una suite conocida como WinAVR, la cual es parte del proyecto GNU. Después de instalar a la suite, el compilador será llamado automáticamente desde el entorno del AVR Studio, su uso queda transparente al programador. Además del compilador, la suite incluye un conjunto de bibliotecas con funciones enfocadas a los recursos de los AVR. El compilador está orientado al estándar ANSI C, se pueden emplear a todos los elementos del lenguaje, como tipos de datos y estructuras de control de flujo. 14
SIMULADOR VISUAL ISIS de Proteus : Edición de Esquemáticos Simulación Visual de Sistemas ARES: Desarrollo de Circuitos Impresos 15
PROGRAMACIÓN DEL MICROCONTROLADOR 1. Programador Universal 2. ATMel AVR STK-500 3. AVR Dragon 16
4. Programador por Puerto Serie 5. Programador por Puerto Paralelo Se requiere de un programa de descarga, como PonyProg 17
6. Programador USBasp
7. Programador USB ISP 19
8. La Tarjeta Arduino puede ser un programador para los AVR, básicamente se debe considerar: El "sketch" a descargar en Arduino es ArduinoISP y está en los ejemplos incluidos en el entorno. La conexión Arduino One -Microcontrolador es: Arduino One ATMega328P 10 RST (1) 11 MOSI (17) 12 MISO (18) 13 SCK (19) Ejecutar el programa avrdude en línea de comandos, por ejemplo: c:\...\avrdude -p m328p -P com19 -b 19200 -c avrisp -U flash:w:nom_archivo.hex Avrdude es parte de WinAvr, la ayuda para las opciones se obtiene con -? o se puede obtener en el sitio: http://www.ladyada.net/learn/avr/avrdude.htm, fue hecho para Linux y por ello se maneja en línea de comandos, pero se pueden descargar interfaces gráficas que facilitan su uso. 20