Depto. Arquitectura

(Informática Industrial)
Diseño con Microcontroladores

Curso Cuatrimestre Carácter Créditos
Tercero Primero Optativa 6

Curso 2017/2018

Temario Prácticas Arduino Visual Micro VMLAB Material de Apoyo

Normas

Tutorías Calificaciones


Coordinador: Manuel Nieto

Profesorado: Antonio Pérez, Manuel Nieto, Antonio Tabernero

Temario

  1. Introducción al diseño de sistemas basados
    en microcontroladores.
    Microcontrolador AVR Atmega32U4.
    • Arquitectura.
    • Juego de instrucciones.
    • Módulos de E/S.

  2. Arduino Leonardo.
    • IDE de Arduino.
    • Programación en C.
    • Prácticas propuestas.

  3. PIC Microchip.
    • IDE de Microchip.
    • Programación en C.
    • Prácticas propuestas.

  4. Entrada/Salida digital.
    • Activación de LED's.
    • Lectura de pulsadores.
    • Teclado (lectura digital y analógica).
    • Control de dispositivos.
    • Encoder en cuadratura.
    • Ejemplos.
  1. Control de módulos LCD.
    • Controlador hd44780.

  2. Gestión de interrupciones en AVR ATmega.

  3. Entrada/Salida serie.
    • USART (RS-232).
    • I2C.
    • SPI.

  4. Temporizadores programables.
    • Pulse Width Modulation (PWM).
    • Filtros PID.
    • Control de motores y servomotores.
    • Detección de paso por cero (ZCD).
      Gestión de potencia.

  5. Cadena de E/S Analógico/Digital.
    • Convertidores.
    • Ejemplos.

  6. Ejemplos prácticos.

Prácticas

La prácticas consistitrán en la implementación de un pequeño sistema de control basado en una placa Arduino Leonardo o, excepcionalmente, en un kit PIC de Microchip. Se realizarán en grupos de dos alumnos. Cada grupo deberá elegir una de las prácticas que se presentarán durante las primeras clases.

Las prácticas propuestas para este curso basadas en el sistema Arduino son las siguientes: Todas ellas incluyen el control de un pequeño teclado y un módulo LCD para los que se dispone de varias alternativas en función de los deseos y espectativas de cada grupo, desde el uso de un módulo arduino ya construido con toda la funcionalidad requerida, hasta el completo diseño y construcción de un módulo similar.

Los alumnos que así lo deseen podrán plantear prácticas alternativas de similar o mayor complejidad.

Sistema Arduino

http://arduino.cc/es: "Arduino es una plataforma de electrónica abierta para la creación de prototipos basada en software y hardware flexibles y fáciles de usar. Se creó para artistas, diseñadores, aficionados y cualquiera interesado en crear entornos u objetos interactivos."

Esta es una versión en español de la página oficial de arduino que se puede usar para dar los primeros pasos. Sin embargo, no está actualizada, por lo que se recomienda usar la versión en ingles: http://arduino.cc/en. En ella se puede encontrar información de la placa Leonardo usada en clase, instrucciones para la descarga, instalación y uso del software de desarrollo (IDE), la referencia del lenguaje de arduino y ejemplos de uso.

El software de arduino está implementado sobre la librería AVR Libc, que es un subconjunto de la librería estándar libc adaptada a la familia de microcontroladores AVR de 8 bits. Todos sus módulos pueden ser usados junto con las librerías de arduino.

Plugin Visual Micro. Depurador

Dos de los inconvenientes del sistema arduino son que su IDE es muy sencillo y, fundamentalmente, que no dispone de ninguna ayuda para la depuración del software. Atmel, la empresa que diseña y fabrica los microcontroladores en que se basan los distintos modelos de arduino, ha desarrollado varias herramientas de libre disposición que incluyen un IDE, Atmel Studio, que tiene integrados simuladores para varios microcontroladores (entre los que no se encuentra el Atmega32U4 usado por arduino Leonardo).

La empresa Visual Micro ha desarrollado un plugin que integra toda la funcionalidad del IDE de arduino en Atmel Studio combinando la simplicidad del primero con todas las ayudas que proporciona el segundo. Este plugin es de libre disposición y se puede descargar e instalar directamente desde Atmel Studio (Tools->Extension Manager "Arduino Ide for Atmel Studio").

Visual Micro incluye un depurador que facilita el desarrollo de software para el sistema arduino. Utiliza de forma totalmente transparente la misma vía de comunicación con el microcontrolador que el IDE de arduino mostrando los mensajes de depuración en ventanas independientes. Amplía el concepto de punto de ruptura (breakpoint) insertando código C oculto que determina en qué momentos se dispara el breakpoint, qué información muestra, qué acciones se toman y qué variables se puede modificar durante la ejecución del programa.

La funcionalidad de depuración de Visual Micro no está incluida en la versión libre, salvo para su evaluación durante 15 dias. Tiene un coste no demasiado alto para particulares y un poco mas elevado para empresas.

Visual Micro ha tenido a bien proporcionar sin coste varias licencias para ser usadas por los alumnos de Informática Industrial. Aquellos alumnos que deseen instalar una liciencia en su ordenador particular, deberán solicitarlo personalmente y firmar un compromiso de no redistribución de la licencia, con objeto de no comprometer su disponibilidad para los futuros alumnos de la asignatura.

El orden de instalación de estos tres componentes es:

  1. arduino
  2. Atmel Studio 6
  3. Visual Micro

Simulador VMLAB

VMLAB es un IDE para la familia AVR que integra un depurador simbólico de alto nivel y un simulador interactivo de los microcontroladores AVR, de sus módulos de E/S, de los periféricos más usuales y que dispone de herramientas para modelar y simular el comportamiento de otros periféricos.

Para el desarrollo del software está integrado con WinAVR, que incluye el compilador GCC de GNU, el mismo que usa el sistema arduino.

El orden de instalación de estos dos componentes es:

  1. WinAVR
  2. VMLAB

Material de Apoyo

IMPORTANTE: Casi toda la información de esta sección está sacada de internet. Es bien sabido por todo el mundo que cualquiera puede poner información en la red sin necesidad de pasar controles de fiabilidad. Los manuales de los fabricantes y la documentación de los paquetes de software pueden contener erratas, pero son a todas luces fiables. El resto de la información, en general, también lo es, pero contiene inexactitudes, alguna tontería y está bastante sesgada hacia el mundo de los pcs, así que usadla con cautela.

Pinnacle 52. Simulador de microcontroladores de la familia 8052. Sólo para windows.

Documentación sobre el 8052. Contiene manuales de las familias AT89C51 y AT89C52 de Atmel (versiones del 8051 y 8052). También contiene manuales de varios microcontroladores.

Documentación de Dallas Semiconductors.

Documentación del bus i2c.

Documentación sobre Displays de cristal líquido (Módulos LCD).

Eagle Layout Software. Software de diseño de circuitos lógicos y placas. Versión Freeware.

Información sobre el estandard RS-232 y otros interfaces.

Información sobre el 8052.

The PC technology guide. Información sobre el pc, periféricos y todo lo que le rodea.

Normas

DESARROLLO DEL CURSO

La asistencia a clase es obligatoria. A lo largo de esta parte del curso se irán presentando distintos aspectos relacionados con el diseño de sistemas basados en microcontroladores y se irán realizando ejemplos usando el sistema arduino y el simulador vmlab. Su instalación, configuración y uso se ilustrará, de forma somera, durante las exposiciones en el aula. Una buena parte de las explicaciones y ejemplos estarán relacionados directamente con la práctica que deberán completar los alumnos en grupos de dos. Aquellos alumnos que realicen prácticas especiales deberán hacer una presentación de las mismas al final de esta parte del curso.

EXÁMENES

Para aprobar la asignatura se deberá realizar una práctica, entregar una memoria de la misma y realizar un examen, debiéndose aprobar en la misma convocatoria. En caso de suspender alguna de las partes, se considerará la asignatura suspensa y se deberá realizar una nueva práctica, entregar la memoria y realizar un nuevo examen.

No se devolverán las memorias de las prácticas, por lo que se aconseja a los alumnos que conserven una copia.

Para la admisión de los alumnos al examen de la asignatura será necesario que hayan realizado la práctica en su totalidad.

REVISIÓN DE EXÁMENES Y PRÁCTICAS

Una vez publicadas las notas de la asignatura, se abrirá un plazo de solicitud de revisión (2 días hábiles) para aquellos alumnos que consideren que existe algún error en la calificación. Esta solicitud de revisión se realizará conectándose al URL (WEB) http://www.datsi.fi.upm.es/docencia/Informatica_Industrial/DMC/rev_dmc.html. El alumno deberá rellenar los datos que se requieran. Una vez hecha la revisión por los profesores, se publicará la lista de notas revisadas. Si el alumno desea revisión presencial, deberá acudir al lugar y hora que se establecerá en su momento.

Se recuerda a los alumnos que la revisión de exámenes tiene por objeto detectar y subsanar los posibles errores que puedan surgir en el proceso de calificación. No se trata de explicar individualmente cómo se resuelve el examen ni de variar ni discutir los criterios de corrección para una persona determinada.

PRÁCTICAS o EXÁMENES COPIADOS

Los exámenes se realizarán a nivel personal y la práctica en los grupos establecidos. Si se detecta que algún alumno ha copiado en algún examen o algún grupo ha copiado en la realización de la práctica, se le calificará como suspenso en esa convocatoria y en las dos siguientes. En particular, en el caso de la práctica, se tendrá en cuenta que la responsabilidad de la práctica está compartida por todos los miembros del grupo, por lo que en caso de detectar alguna copia la norma se aplicará a todos los miembros de todos los grupos involucrados en la copia (tanto los que copian como los que se dejan copiar). Para evitar problemas y reclamaciones que no se podrán atender se recomienda a los alumnos que sean especialmente cuidadosos con los ficheros que se utilicen para la realización de la práctica, puesto que de ello depende que la práctica pueda o no ser copiada. En concreto, utilice siempre disquetes cuando trabaje en un PC del Centro de Cálculo (no deje los ficheros en el disco duro ni siquiera de forma transitoria) y haga uso de los mecanismos que proporciona el sistema operativo cuando estos estén disponibles (máquinas Unix).

Herramienta Proteus

Proteus es un paquete de software para el diseño de circuitos electrónicos que incluye captura (composición) de los esquemas, simulación analógica y digital combinadas y diseño de circuitos impresos. Está disponible en dos versiones con funcionalidad limitada: "Proteus VSM" y "Proteus PCB Design" y está instalado en los ordenadores de la sala Altamira para su uso en la asignatura Informática industrial.

Proteus VSM incluye simulación de microcontroladores de las familias 8051 y PIC16, pero no permite la conexión con el software de diseño de PCB's. Esta versión está instalada en los ordenadores lucky6 a lucky15. Los ordenadores con número par (6, 8, 10...) permiten hasta dos usuarios simultáneos realizando simulaciones de microcontroladores PIC. Los ordenadores con número impar (7, 9, 11...) permiten tres usuarios simultáneos realizando simulaciones de microcontroladores de la familia 8051.

Proteus PCB Design incluye el diseño de PCB's, pero no permite la simulación de microcontroladores y otros dispositivos como teclados, LCD's, etc. relacionados con el diseño con microcontroladores. Esta versión está instalada en los ordenadores lucky2 a lucky5.

El paquete está compuesto por dos programas: ISIS, para la captura y simulación de circuitos; y ARES, para el diseño de PCB's. En los ordenadores que tienen activada la funcionalidad VSM sólo se puede ejecutar el programa ISIS. En ellos se puede realizar el diseño del cronómetro y se puede diseñar su software, bien con los ensambladores que incluye la propia herramienta, bien con paquetes más elaborados con los que está integrada (p.e. keil , proton e IAR). También permite simular y depurar el funcionamiento de todo el sistema ejecutando el software paso a paso, insertando puntos de ruptura (breakpoints, que también pueden ser generados por el hardware), viendo el contenido de registros y posiciones de memoria, etc y comprobando si la respuesta del hardware es la correcta. También se simulan herramientas electrónicas, como osciloscopios, analizadores lógicos, voltímetros, etc.

Una vez concluido y depurado el diseño del sistema, se puede proceder al diseño del circuito impreso en los ordenadores que tienen activada la funcionalidad PCB Design. Para ello se debe cargar el crónómetro en el programa ISIS y lanzar desde él la ejecución del programa ARES, con lo que también se le envía la lista de componentes y sus conexiones.

Solamente disponemos de 3 licencias para simulación de 8051, otras 2 para simulación de PIC16 y 1 para diseño de PCB's, por lo que simultáneamente sólo puede haber 3 ordenadores simulando circuitos basados en el 8051, otros 2 simulando circuitos basados en PIC16 y 1 diseñando PCB's.

Debido a la configuración de los ordenadores de la sala Altamira, para que ISIS y ARES funcionen correctamente y cada alumno pueda mantener sus diseños en su cuenta, añadiendo componentes o modificándolos sin que eso afecte al trabajo de los demás, antes de usar Proteus cada alumno debe crear los siguientes directorios en la raiz de su cuenta de usuario:

H:\Proteus\
H:\Proteus\Diseños\
H:\Proteus\Templates\
H:\Proteus\Library\
H:\Proteus\Models\
H:\Proteus\Results\


Los ficheros con los diseños de los circuitos electrónicos deben guardarse en el directorio Diseños, preferiblemente en carpetas separadas. No es obligatorio, pero es donde Proteus irá a buscarlos por defecto. Los directorios Templates, Library y Models están destinados a guardar las modificaciones de componentes incluidos en el programa o a guardar componentes añadidos que cada usuario pueda necesitar. Por ejemplo, si se quiere utilizar un teclado específico para el cronómetro, se puede diseñar uno nuevo y guardarlo en estos directorios, bien partiendo de cero, bien modificando uno de los que vienen incluidos en la aplicación. En el directorio Results se guardan los ficheros de resultados que se generan durante la ejecución de los programas.

Todo el paquete está bien documentado con tutoriales, ejemplos y ayuda on line. Sin embargo se debe tener en cuenta que durante la simulación se mezcla simulación analógica con simulación digital. Esto quiere decir que se pueden producir resultados inesperados y aparentemente erróneos. Por ejemplo, es frecuente encontrar casos en los que no se cumple la ley de Omh. También es posible que los modelos de algunos componentes no sean completos. Por ejemplo, parece que los displays LCD no simulan completamente la funcionalidad de desplazamiento del display (shift). También es posible que el modelo de algún componente no sea del todo correcto (los vendedores no ofrecen garantías), pero parece un buen programa y no debería haber ningún problema para su uso en esta asignatura. En todo caso, si surgen dudas o necesitáis hacer alguna consulta, podéis hacerlo personalmente o por correo electrónico.

Para su uso durante las clases teórico-prácticas que se desarrollan en el aula, puede usarse la versión de demostración de Proteus. Esta versión es complétamente funcional aunque no permite la simulación de cierta clase de circuitos ni guardar los diseños en el disco.

Keil µVision

En esta asignatura vamos a usar la versión de evaluación del paquete de software Keil c51, que incluye el entorno de desarrollo, simulación y depuración Keil µVision. Esta herramienta está conectada con el simulador Proteus y nos permite editar programas para el microconrolador 8051 y ejecutarlos y depurarlos usando los diseños realizados con Proteus, en un entorno más completo, funcional y amigable.

La versión de evaluación tiene algunas limitaciones, pero no son relevantes para el desarrollo de la asignatura.

Para poder usar µVision junto con Proteus, es necesario instalar el driver AGDI de Proteus VSM. Una vez hecho esto, se deben seguir los siguentes pasos:
  1. Activar en ISIS el depurador remoto (Debug->Use Remote Debug Monitor)
  2. Cargar en ISIS el diseño que queremos depurar
  3. En ISIS, no incluir ningún programa en el microcontrolador 8051 (dejar Edit properties->Program File vacío)
  4. En µVision, seleccionar el depurardor de Proteus (Project->Options for Target 'nombre'->Debug->Use: Proteus VSM simulator)
  5. Marcar las opciones "Load Application at Startup" y "Run to main()" en la solapa anterior (Debug)
  6. En µVision, arrancar la sesión de depuración. El programa ejecutable se envía automáticamente a ISIS y se arranca la simulación. La simulación y la depuración funcionan de forma sincronizada en ISIS y µVision a partir de ese momento.

Página modificada el 19/10/2017