====== 66.09. Laboratorio de Microcomputadoras ====== ===== Contacto ===== **2º cuatrimestre 2007** **Teórica:** Alberto, Jorge [[jalbert@fi.uba.ar]] **Prácticas:** *Chiesa, Lucas [[lucas.chiesa@gmail.com]] *Cofman, Fernando [[fercofman@gmail.com]] *García, Sebastián [[sgarcia@fi.uba.ar]] *Gavinowich, Gabriel [[ggavi@fi.uba.ar]] *Stola, Gerardo [[gstola@fi.uba.ar]] *Arias, Ricardo [[rarias@fi.uba.ar]] *Baglivo, Fabricio [[baglivofabricio@gmail.com]] *Campiglio, Guillermo [[gcampi@fi.uba.ar]] *Martos, Pedro Ignacio [[pmartos@fi.uba.ar]] *Berra, Sebastián [[sebastianberra@yahoo.com]] *de Andrés y Martinez de Arenasa, Joaquín [[jdeandres@fi.uba.ar]] *Luna, Diego [[diegorluna@gmail.com]] *Pucci, Fernando [[fpucci@gmail.com]] *Ratto, Graciela [[gratto@fi.uba.ar]] *Buczyner, Martín [[martinbuc@gmail.com]] *Cabibbo, Daniel [[dcabibb@fi.uba.ar]] *Perez, Marcel [[m.perez@arnet.com.ar]] [[http://www.fi.uba.ar/materias/6609/|Página web oficial]] ===== Información académica ===== ^ Carrera ^ Créditos ^ Correlativas ^ Condición ^ |Ingeniería Electrónica | 6| [[materias:66:01|66.01]] - [[materias:66:02|66.02]]|Obligatoria| |Ingeniería Informática | 6| [[materias:66:02|66.02]] - [[materias:66:70|66.70]]|Optativa de la Orientación Sistemas Distribuídos| ++++Objetivos| -Introducir los conceptos básicos de arquitectura de microprocesadores, y su programación eficiente en lenguaje assembly. -Introducir al diseño ordenado, eficiente y con espíritu crítico, de sistemas embebidos basados en microcontroladores, desplegando todas las fases técnicas involucradas en el desarrollo de un proyecto: -Elaboración de un anteproyecto. -Desarrollo de hardware. -Desarrollo de firmware. -Implementación de los ítems anteriores mediante la construcción de un equipo prototipo. -Documentación técnica del proyecto. -Utilizar adecuadamente las herramientas necesarias para lograr el éxito del proyecto. Estas incluyen: -Bibliografía, manuales técnicos y hojas de datos. Internet, como fuente de información actualizada. -Entorno de desarrollo (IDE) , comprendiendo: editor, ensamblador/compilador, linker, simulador, emulador y programador. -Herramientas CAD para documentación de circuitos esquemáticos. -Herramientas CAD para diseño de circuitos impresos. -Herramientas para documentación del proyecto. ++++ ++++Programa analítico| **Introducción. Repaso de temas fundamentales de Técnicas Digitales** Representación de la información. Aritmética de enteros. Flags.\\ Familias lógicas. Características eléctricas.\\ Memorias: tipos y uso. Diagramas de tiempos.\\ Decodificadores.\\ **Estructura básica de microprocesadores** Unidad aritmético-lógica (ALU).\\ Buses. Datos, direcciones y control.\\ Registros básicos: acumuladores, punteros, estado, contador de programa, de uso general.\\ Memoria de programa y de datos.\\ **Hardware de microprocesadores** Microprocesadores vs. microcontroladores.\\ Periféricos internos.\\ Mapas de memoria interna y externa. Decodificación de direcciones. Diagramas de tiempos. Características eléctricas.\\ Modos de direccionamiento.\\ **Software de microprocesadores** Lenguaje assembly. Concepto de firmware.\\ Conjunto de instrucciones. Tipos de instrucciones: aritméticas, lógicas, de transferencia, de control y bifurcación.\\ Stack. Llamados a rutinas. Otros usos.\\ Máquina de estados.\\ Herramientas de desarrollo. Ensambladores, linkers, depuradores, emuladores.\\ Mantenibilidad del código fuente. Modularidad. \\ **Entrada y salida** Puertos paralelos. Características y tipos de bidireccionalidad.\\ Puertos serie. Cararterísticas y tipos.\\ Normas básicas de comunicaciones. Sistemas distribuídos.\\ **Interrupciones** Atención de periféricos por polling.\\ Concepto de interrupción. Rutina de servicio a la interrupción.\\ Tipos de interrupciones. Enmascaramiento y priorización.\\ Anidamiento de interrupciones. Metodologías de atención.\\ Concepto de handler.\\ **Periféricos** Timers/counters.\\ Watchdog timers.\\ Relojes de tiempo real (RTC's).\\ Conversores A/D y D/A.\\ Manejo de taclados y displays.\\ **Aplicaciones. Otras arquitecturas** RISC vs. CISC.\\ Harvard vs. von Neumann.\\ Desarrollo con microprocesadores y microcontroladores de 8 y 16 bits.\\ Etapas durante el proyecto de sistemas embebidos.\\ Documentación del proyecto: hardware, firmware/software, manual de uso.\\ ++++ ++++Cursos| ^ Curso ^ Modalidad ^ Docentes ^ Días ^ Horario ^ | 001 | TPO |ALBERTO-STOLA-COFMAN | martes | 19:00 - 22:00 | | 002 | TPO |ALBERTO-CAMPIGLIO-ARIAS-MARTOS | miercoles | 19:00 - 22:00 | | 003 | TPO |ALBERTO-RATTO-PUCCI-BERRA | jueves | 19:00 - 22:00 | | 004 | TPO |ALBERTO-PEREZ-CABIBBO | viernes | 12:00 - 15:00 | | T | T |ING. ALBERTO, JORGE | viernes | 15:00 - 18:00 | ++++ ===== Material de estudio ===== **Parciales** *[[.09:parcial_4_20060519_1|Primer parcial, primer cuatrimestre 2006]] **Trabajos Prácticos** *[[http://tools.assembla.com/tp_6609|Trac]]: Generador de Funciones. 2do cuatrimestre 2007. **Programadores** *[[.09:prog_isp_serie|Programador ISP serie]]: Programador desarrollado para el AT89S8253 en linux (aunque debería andar con otros avr's y en windows). Utiliza el puerto serie y no requiere alimentación externa. Software: avrdude **IDEs** *[[http://mcu8051ide.sourceforge.net/|mcu8051ide]]: Integrated Development Enviroment for some MCS-51 based microcontrollers (e.g. AT89S8253). Supported languages are Assembly and C. This IDE is written in Tcl/Tk for POSIX systems (like GNU/Linux) only. *Keil ===== Links ===== *[[http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/|Cornell University - Microcontroller Design Final Projects]] *[[http://hackedgadgets.com/2007/07/31/open-source-hardware-phillip-torrone-and-limor-fried/|Hacked Gadgets]]