Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/228830006 Enseñanza de técnicas de diseño con Microcontroladores Article CITATIONS 0 READS 293 2 authors: Miguel Revuelta Universidad Nacional de Mar del Plata 4 PUBLICATIONS 10 CITATIONS SEE PROFILE Eduardo Blotta Universidad Nacional de Mar del Plata 20 PUBLICATIONS 148 CITATIONS SEE PROFILE All content following this page was uploaded by Eduardo Blotta on 05 August 2014. The user has requested enhancement of the downloaded file. https://www.researchgate.net/publication/228830006_Ensenanza_de_tecnicas_de_diseno_con_Microcontroladores?enrichId=rgreq-09fa318dd8a33d88342ed83cef4b6931-XXX&enrichSource=Y292ZXJQYWdlOzIyODgzMDAwNjtBUzoxMjY4MTM4NDYxMTg0MDBAMTQwNzI0NjE4NTUwMQ%3D%3D&el=1_x_2&_esc=publicationCoverPdf https://www.researchgate.net/publication/228830006_Ensenanza_de_tecnicas_de_diseno_con_Microcontroladores?enrichId=rgreq-09fa318dd8a33d88342ed83cef4b6931-XXX&enrichSource=Y292ZXJQYWdlOzIyODgzMDAwNjtBUzoxMjY4MTM4NDYxMTg0MDBAMTQwNzI0NjE4NTUwMQ%3D%3D&el=1_x_3&_esc=publicationCoverPdf https://www.researchgate.net/?enrichId=rgreq-09fa318dd8a33d88342ed83cef4b6931-XXX&enrichSource=Y292ZXJQYWdlOzIyODgzMDAwNjtBUzoxMjY4MTM4NDYxMTg0MDBAMTQwNzI0NjE4NTUwMQ%3D%3D&el=1_x_1&_esc=publicationCoverPdf https://www.researchgate.net/profile/Miguel-Revuelta?enrichId=rgreq-09fa318dd8a33d88342ed83cef4b6931-XXX&enrichSource=Y292ZXJQYWdlOzIyODgzMDAwNjtBUzoxMjY4MTM4NDYxMTg0MDBAMTQwNzI0NjE4NTUwMQ%3D%3D&el=1_x_4&_esc=publicationCoverPdf https://www.researchgate.net/profile/Miguel-Revuelta?enrichId=rgreq-09fa318dd8a33d88342ed83cef4b6931-XXX&enrichSource=Y292ZXJQYWdlOzIyODgzMDAwNjtBUzoxMjY4MTM4NDYxMTg0MDBAMTQwNzI0NjE4NTUwMQ%3D%3D&el=1_x_5&_esc=publicationCoverPdf https://www.researchgate.net/institution/Universidad-Nacional-de-Mar-del-Plata2?enrichId=rgreq-09fa318dd8a33d88342ed83cef4b6931-XXX&enrichSource=Y292ZXJQYWdlOzIyODgzMDAwNjtBUzoxMjY4MTM4NDYxMTg0MDBAMTQwNzI0NjE4NTUwMQ%3D%3D&el=1_x_6&_esc=publicationCoverPdf https://www.researchgate.net/profile/Miguel-Revuelta?enrichId=rgreq-09fa318dd8a33d88342ed83cef4b6931-XXX&enrichSource=Y292ZXJQYWdlOzIyODgzMDAwNjtBUzoxMjY4MTM4NDYxMTg0MDBAMTQwNzI0NjE4NTUwMQ%3D%3D&el=1_x_7&_esc=publicationCoverPdf https://www.researchgate.net/profile/Eduardo-Blotta?enrichId=rgreq-09fa318dd8a33d88342ed83cef4b6931-XXX&enrichSource=Y292ZXJQYWdlOzIyODgzMDAwNjtBUzoxMjY4MTM4NDYxMTg0MDBAMTQwNzI0NjE4NTUwMQ%3D%3D&el=1_x_4&_esc=publicationCoverPdf https://www.researchgate.net/profile/Eduardo-Blotta?enrichId=rgreq-09fa318dd8a33d88342ed83cef4b6931-XXX&enrichSource=Y292ZXJQYWdlOzIyODgzMDAwNjtBUzoxMjY4MTM4NDYxMTg0MDBAMTQwNzI0NjE4NTUwMQ%3D%3D&el=1_x_5&_esc=publicationCoverPdf https://www.researchgate.net/institution/Universidad-Nacional-de-Mar-del-Plata2?enrichId=rgreq-09fa318dd8a33d88342ed83cef4b6931-XXX&enrichSource=Y292ZXJQYWdlOzIyODgzMDAwNjtBUzoxMjY4MTM4NDYxMTg0MDBAMTQwNzI0NjE4NTUwMQ%3D%3D&el=1_x_6&_esc=publicationCoverPdf https://www.researchgate.net/profile/Eduardo-Blotta?enrichId=rgreq-09fa318dd8a33d88342ed83cef4b6931-XXX&enrichSource=Y292ZXJQYWdlOzIyODgzMDAwNjtBUzoxMjY4MTM4NDYxMTg0MDBAMTQwNzI0NjE4NTUwMQ%3D%3D&el=1_x_7&_esc=publicationCoverPdf https://www.researchgate.net/profile/Eduardo-Blotta?enrichId=rgreq-09fa318dd8a33d88342ed83cef4b6931-XXX&enrichSource=Y292ZXJQYWdlOzIyODgzMDAwNjtBUzoxMjY4MTM4NDYxMTg0MDBAMTQwNzI0NjE4NTUwMQ%3D%3D&el=1_x_10&_esc=publicationCoverPdf Enseñanza de técnicas de diseño con Microcontroladores Miguel A. Revuelta1, Eduardo L. Blotta2 (1) Facultad de Ingeniería, Universidad Nacional de Mar del Plata mrevuelta@fi.mdp.edu.ar (2) Facultad de Ingeniería, Universidad Nacional de Mar del Plata eblotta@fi.mdp.edu.ar RESUMEN: En este trabajo se describe el método de enseñanza utilizado en la asignatura Diseño Digital con Microcontroladores que pretende alcanzar dos objetivos, que son los de adquirir la habilidad en el uso de las herramientas de desarrollo para Microcontroladores y en las técnicas para desarrollar software en lenguaje assembler. La motivación que impulsó a los docentes a generar esta nueva materia se basó en la necesidad de brindar a los alumnos de la carrera, herramientas que les ayuden a implementar aplicaciones basadas en Microcontroladores, ya que en los últimos años se observa una gran cantidad de proyectos finales basados en este tipo de soluciones. A lo anterior se suma el aspecto curricular, dado que mejora su calificación para acceder a grupos de investigación/desarrollo y a una futura inserción en el mercado laboral. La estrategia de enseñanza-aprendizaje implementada permite que los alumnos puedan superar los escollos iniciales que surgen al tener que empezar a trabajar con una cantidad de herramientas nuevas y desconocidas para casi todos ellos, y que de hecho podría inhibirlos de poner “manos a la obra”. Esta consiste en darles problemas simples al comienzo, apoyarlos con todo el material necesario y proveerles de los programas fuentes con un grado de avance de la solución tal, que puedan resolverlo sin mayores inconvenientes, ganando confianza al ver resultados. A medida que se avanza con el curso, los proyectos cuentan con mayor complejidad y mínima asistencia, logrando el objetivo de estimular su autonomía y la confianza en su capacidad para resolver los problemas que se les plantean. PALABRAS CLAVES: microcontrolador, herramientas de desarrollo, lenguaje assembler. 1 INTRODUCCIÓN La asignatura Diseño Digital con Microcontroladores se encuentra dentro del grupo de materias optativas del departamento de Electrónica de la Facultad de Ingeniería de la UMNDP, para los alumnos avanzados de la carrera de Ingeniería Electrónica. En la Figura 1 se observa el aula equipada. En ella el alumno dispone de un puesto de trabajo individual compuesto por una computadora personal donde se instalan las herramientas de aprendizaje. Al puerto serie de la PC se conecta una placa de desarrollo que contiene el microcontrolador ó MCU (MicroController Unit) bajo estudio y el circuito necesario para acceder al mismo y programarlo. Ésta, a su vez, se conecta mediante un cable plano a una placa experimental con el hardware necesario para implementar los trabajos prácticos. Figura 1. Puestos de trabajo. En asignaturas previas los alumnos se han familiarizado con el conjunto de instrucciones de los microprocesadores de la línea Motorola (hoy denominada Freescale) , por lo que se decidió adoptar un MCU relacionado, tal como el 68HC908JK1, que tiene el mismo modo de funcionamiento y un set de instrucciones evolucionado. Este MCU tiene ventajas adicionales tales como el bajo costo y el hecho de que el fabricante mantenga una política de divulgación técnica amplia (notas de aplicación) que nos permitió desarrollar un hardware que facilita la comprensión y evaluación del mismo. Los aspectos formales de la asignatura, programa, bibliografía, circuitos y soporte técnico están disponibles en la página web de la asignatura,(http://www3.fi.mdp.edu.ar/electroni ca/catedras/DDCM.htm). 2 DESCRIPCION DEL HARDWARE En la Figura 2 se observa la placa de desarrollo diseñada al efecto. En la misma, se encuentra el MCU y toda una circuitería adicional que le permite comunicarse con la PC y comandar el circuito de programación de la memoria flash. Figura 2. Placa de desarrollo El cable plano que vemos, lleva alimentación y extiende los puertos de Entrada/Salida (E/S) del MCU hasta la placa experimental. En la Figura 3 se observa la placa de experimentos, en la cual se dispone de diodos leds, displays 7 segmentos, pulsadores, sensor de temperatura (NTC), sensor de luz (LDR) , un buzzer y otros dispositivos que permiten desarrollar los proyectos delineados en las guías de trabajos prácticos. Figura 3. Placa experimental 3 DESCRIPCION DEL SOFTWARE Otro factor de peso en la elección del MCU, es que la empresa P&E Microcomputer Systems, Inc. desarrollóuna herramientas de software de aplicación integral para los MCU de Freescale, denominada WinIDE (Windows Integrated Development Enviroment), que se puede obtener en forma gratuita en su sitio web (www.pemicro.com), a través de un convenio con la firma Freescale. Este software esta diseñado para interactuar con el MCU elegido y soportar en un 100% las facilidades que brinda la placa de desarrollo. Esta disponibilidad irrestricta del programa en cuestión, permite que los alumnos también lo puedan instalar en una PC personal, lo que facilita trabajar fuera del laboratorio. Es interesante destacar que el WinIDE es un entorno muy poderoso que permite editar el proyecto en assembler, compilarlo, depurarlo y simularlo. En la Figura 4 vemos la pantalla de trabajo del WinIDE. En la misma se observa parte del texto del código fuente que cumple con la consigna de uno de los trabajos prácticos. En la barra de herramientas se dispone de accesos directos a otros módulos del entorno, los cuales permiten compilar y efectuar: simulación (simulación pura sin hardware), simulación en-circuito (el programa corre en la PC e interactúa con los puertos del MCU, no es tiempo real), cargar el programa en la flash del MCU y efectuar emulación en tiempo real (el programa corre en el MCU). Figura 4. Pantalla de trabajo WinIDE 4 ENFOQUE PEDAGOGICO La estrategia de enseñanza-aprendizaje implementada permite que los alumnos puedan superar los escollos iniciales que surgen al tener que empezar a trabajar con una cantidad de herramientas nuevas y desconocidas para casi todos ellos, y que de hecho podría inhibirlos de poner “manos a la obra”. La misma consiste en darles problemas simples al comienzo, apoyarlos con todo el material necesario y proveerles de los programas fuentes con un grado de avance de la solución tal, que puedan resolverlo sin mayores inconvenientes, ganando confianza al ver los primeros resultados. A medida que se avanza con el curso, los proyectos poseen mayor complejidad y menor asistencia, logrando el objetivo de estimular su autonomía y la confianza en su capacidad para resolver los problemas que se les plantean. El alumno dispone de guías de trabajos prácticos que proponen la implementación de proyectos de complejidad creciente e incluyen todos los fundamentos necesarios y plantillas de archivos fuentes. Esto permite que se implemente y verifique en la PC las acciones que propone la guía de trabajos prácticos. Como ejemplo, transcribimos la introducción que acompaña a una guía de trabajos prácticos: Guía de trabajos prácticos N°6: Objetivos: Se deberá escribir un programa que controle un display siete segmentos . Figura 5. Esquema en bloques de un dígito 7 segmentos Introducción: Los displays siete segmentos proveen un mecanismo sencillo y económico para mostrar dígitos numéricos y otros símbolos simples. La Figura 5 muestra las conexiones de un simple dígito 7-segmentos de la placa de experimentación. La llave digital le permite a la corriente circular por todos los segmentos. Por otro lado, las llaves de selección de segmento, controlan la corriente de cada segmento individual. La placa de experimentación usada en este curso posee cuatro dígitos 7 segmentos, pero sólo se habilita uno a la vez, a través del uso de un multiplexor de 2 a 4. La selección se hace mediante los bits 5 y 6 del Puerto D. Para mas detalles, observe el circuito de la placa de experimentación. Requerimientos El programa deberá mostrar los números del 0 al 9 en secuencia sobre uno cualquiera de los cuatro dígitos 7-segmentos disponible. Prevea un retardo entre dígitos de ½ a 1 seg. En este ejercicio el punto decimal del dígito 7- segmentos deberá permanecer apagado. Escribir unos en PB1-PB7 y Pd7, ceros en Port D Inicializar PB1-PB7 y PD5-PD7 como salidas Cargar el reg.X con el número a mostrar Buscar en la tabla de búsqueda el patrón 7-segm. Copiar el patrón 7-segm. en el Port B Cargar el reg.X con el número de dígito 0 Buscar en tabla de patrones de dígitos el valor p/el digito 0 Copiar Puerto D en x y borrar PD5 y PD6 A OR X Copiar resultado en el Port D Figura 6. Diagrama de flujo Diseño Para cada número que se quiera mostrar sobre el dígito, habrá un patrón predeterminado de segmentos encendidos y apagados. Se empleará una tabla de búsqueda (lookup table) para seleccionar el patrón adecuado de cada número. También se usará una segunda tabla de búsqueda para seleccionar la palabra que habilita el dígito deseado. Esto será de utilidad en un ejercicio posterior. Use el diagrama de flujo indicado en la Figura 6 como guía para escribir el programa. Implementación Use el archivo bcd7seg.asm para este programa. Los patrones de segmento para formar cada dígito deberían ser escritos en una tabla. La tabla se ordena de forma tal que el valor numérico que se quiere mostrar puede ser usado como índice en la tabla. En este ejercicio vamos a aprovechar la directiva “Include” que permite incluir en un programa assembler código y/o datos existentes en otro archivo. Vamos a aprovechar la tabla de patrones 7- segmentos (archivo bin-7seg.inc). La extensión de este archivo puede ser cualquiera, pero suele denominarse ”.inc” (por Include) para diferenciar estos archivos especiales de los programas comunes. Nosotros vamos a usar la misma extensión para este ejercicio, y se recomienda para proyectos futuros. Abra el archivo bin-7seg.inc para observarlo. Su código será tomado en cuenta automáticamente al momento de la compilación si se incluye la siguiente línea en el archivo bcd7seg.asm: $Include ’bin-7seg.inc’ No hay ninguna regla que especifique en que parte de un programa debe ubicarse una tabla, pero por motivos de organización y facilidad de mantenimiento, conviene que estén todas juntas, fuera del código del programa, sea al principio o al final del mismo. Lo único que debemos recordar de esta tabla (además del nombre de archivo) es la etiqueta con la cual nuestro programa accederá al primer dato, que en este caso es BIN7SEG. La implementación de la selección del dígito se debe escribir los bits 5 y 6 del Puerto D sin modificar el resto. Por este motivo, se debe leer primero el Puerto D, mediante una máscara adecuada borrar los bits 5 y 6, y luego hacer una operación OR con el valor obtenido en la tabla BIN2DIG. De esta manera, solo serán afectados los bits 5 y 6 (los que hacen la selección del dígito), dejando el resto de los bits como estaban. Otra variante podría haber sido utilizar las instrucciones de escritura individual de bits (bset y brset), pero para este ejercicio, quiso mostrarse un método que podría servir para cualquier tipo de uso. Prueba Corra el programa con todos los números para verificar que la tabla no tiene errores. Luego cambie la selección a otros dígitos. 5 METODOLOGIA EN CLASE Todas las guías de trabajos prácticos contienen una introducción teórica, con un planteamiento claro respecto del software que hay que implementar y de cómo debe interactuar con el circuito de la placa experimental. Se comentan y justifican todos los componentes electrónicos que forman parte de dicha placa. De la misma manera y en forma progresiva se va explicando como se diseñó la placa de desarrollo que es la que contiene el MCU y su circuito programador. Esto se relaciona permanentemente con la información disponible en el manual del MCU, desarrollando en el alumno la capacidad de interpretar la información que suministra el fabricante para generar aplicaciones que aprovechen toda la potencialidad del dispositivo. El alumno que así lo desee puede armar su propio programador y placa de aplicación, disponiendo del software para completar el entorno de desarrollo, que como se mencionó es gratuito y de uso irrestricto. 6 CONCLUCIONES Se finaliza mencionando los resultados obtenidos conesta metodología. La ayuda inicial le permitió al alumno, manejar mucha información desde el comienzo, quitándole presión y permitiéndole un mejor desempeño. Comenzó a usar las herramientas desde el “primer día” y al ver resultados inmediatos, se logró captar su interés y mantener su motivación a lo largo del curso. El alumno adquiere independencia y autonomía en forma gradual. Esta evidencia se pone de manifiesto hacia el final del curso, cuando los alumnos implementan variantes a los proyectos delineados en las guías de trabajos prácticos, demostrando su iniciativa personal y su autoconfianza. Si bien la elección del MCU se fundamentó, entre otras cosas, a los conocimientos previos de los alumnos de un dispositivo del mismo fabricante, se verificó posteriormente que no resulto un factor preponderante. Tal conclusión se saca de la experiencia de haber implementado posteriormente un curso de extensión abierto a participantes no especialmente calificados, con similar contenido de la asignatura que estamos tratando aquí. Del mismo participaron graduados de Ingeniería Electrónica y Mecánica, técnicos en Electrónica y en mantenimiento, etc, algunos de los cuales no tenían conocimientos previos respecto de lo que es un MCU. La gradualidad en el aprendizaje y la inmediata verificación práctica generó en los participantes una casi inmediata aceptación de la metodología empleada. Finalmente se efectuó el análisis de las encuestas acerca del grado de satisfacción con el contenido y desarrollo del curso. De las mismas se desprende una amplia conformidad con la metodología y lo que es más gratificante aún, se solicita la implementación de un nuevo curso con aplicaciones más avanzadas. De igual forma, los alumnos de la asignatura optativa expresaron inquietudes respecto de aplicaciones más complejas. Para dar respuesta a ambos planteamientos, se desarrollo una nueva placa de experimentos avanzada, basada en un MCU con más prestaciones, manteniendo el mismo entorno de desarrollo (Figura 7). Figura 7. Placa experimental de nivel avanzado Esta nueva placa permitirá desarrollar aplicaciones tales como ingreso de datos por teclado matricial y visualización en un display tipo LCD alfanumérico. Por otra parte, el conector RS232 responde a un puerto serie asincrónico implementado a partir del modulo SCI del MCU. Además, dispone de un conector de 5 pines para implementar un puerto de comunicación serie sincrónica según el estándar SPI. El Microcontrolador elegido para esta aplicación es el 68HC980GP32, al igual que para el anterior MCU, el programa WinIDE es de libre disponibilidad. La ampliación del contenido de los trabajos prácticos que incluya aplicaciones sobre la placa experimental de nivel avanzado, se aplicará en la asignatura optativa a partir del año 2009. 7 REFERENCIAS Nota de aplicación AN2317, Freescale Semiconductor, Inc. Nota de aplicación AN-HK-33, Motorola Semiconductor. Notas de aplicación del Ing. Daniel Di Lella (Dedicate Distri Field Aplication Enginner) www.electrocomponentes.com.ar Manual MC68HC908JK1 y MC68HC908GP32 Freescale . www.freescale.com P&E Microcomputer Systems Inc. www.pemicro.com. Benedetti M., Blotta E., Gómez Costa J. L. Sistema de Desarrollo Modular para prueba de equipos basados en Microcontroladores. Revista Nueva Telegráfica Electrónica / Marzo 1995. View publication stats https://www.researchgate.net/publication/228830006
Compartir