1. INTRODUCCIÓN (preliminar) Diseño Digital Con Microcontroladores, es un libro de referencia para la enseñanza en ingeniería, que se ha concebido principal, pero no exclusivamente, como material actualizado de consulta y con una metodología moderna de aprendizaje para la asignatura de pregrado del mismo nombre, actualmente (2014) impartida en el programa de Ingeniería Electrónica, de la Facultad de Ingeniería en la Universidad Distrital Francisco José de Caldas (Bogotá, Colombia). Las temáticas y recursos abordados son muy afines, sin embargo, a los de asignaturas con nombres similares o no, de un segundo o tercer curso de sistemas digitales en muchos planes de estudio de ingeniería electrónica, telecomunicaciones, control, instrumentación, automatización, ingeniería mecatrónica, e inclusive ingeniería de sistemas, por mencionar algunos, a nivel nacional e internacional. El presente texto brinda un enfoque integral y contextualizado sobre los principios generales de análisis, de requerimientos, de diseño, pero a diferencia del enfoque tradicional de muchos textos y autores, basado en un solo fabricante o dispositivo o familia, contrasta también las más importantes tecnologías de microcontroladores existentes y/o disponibles localmente en este momento (Microchip, Freescale, Texas Instruments, Atmel e Intel), para el desarrollo de sistemas digitales programables con MCU (Micro-Controller Unit), brindando ejemplos de desarrollo para aplicaciones didácticas, comerciales, industriales y estudios de casos reales de ingeniería con lo más representativo de cada uno de estos productos, en la gama de 8 bits especial, pero no exclusivamente (ya que también se abordan algunos productos representativos con arquitecturas de 16 y 32 bits). Debido al rápido desarrollo de los sistemas digitales modernos se hace necesario ubicar adecuadamente al ingeniero electrónico o afín dentro del panorama de antecedentes y tendencias de los diversos dispositivos electrónicos programables que han evolucionado para integrarlos a los productos y servicios cotidianos modernos. Es pertinente, por lo tanto, no sólo conocer una tecnología o fabricante particulares, sino además sus antecedentes, fortalezas, debilidades y anticipar oportunamente sus cambios y tendencias. Los desarrollos actuales de ingeniería suelen ser exitosos en la medida en que sean híbridos, modulares y robustos, integrando una gran cantidad de dispositivos y funciones que no necesariamente provienen de un único fabricante ni de la misma gama o familia tecnológica.
Este libro introduce al lector a los conocimientos y herramientas básicas para el desarrollo de aplicaciones con las siguientes familias de microcontroladores: PIC18, HCS08, ATMEGA (AVR), y MSP430. Ofrece numerosos enlaces y recursos de referencia para profundizar en el desarrollo de aplicaciones para estos microcontroladores, así como la presentación, cuando sea pertinente, de conceptos elementales de las clásicas arquitecturas 8051 y HC11, así como de las más modernas arquitecturas de Microchip PIC24, dsPIC, PIC32, y algunos representantes de ARM Córtex Mx (como K40,50 y 60 de Freescale, Tiva de TI) ya que aunque el propósito principal es documentar el desarrollo de aplicaciones genéricas con microcontroladores de 8 bits, la notable disminución de costos de los chips debido a la economía de escala y la creciente demanda de productos con arquitecturas de 16 y 32 bits, obligan a contrastar las prestaciones y ventajas de estas recientes arquitecturas y familias de MCU con las tradicionales. La aparente preferencia de dispositivos Microchip obedece solamente a las ventajas que éstos ofrecen a nivel de simulación interactiva con herramientas como Proteus, a la disponibilidad y competitivos costos en el mercado local de los mismos, con sus herramientas de programación y depuración, así como al hecho de que varios de sus microcontroladores de última generación se consiguen hoy sorprendentemente en encapsulado PDIP (plastic dual in line package), lo cual resulta muy cómodo para la interconexión y experimentación empleando el aún famoso “Protoboard” en la etapa de aprendizaje, diseño y pruebas preliminares de proyectos electrónicos de pequeña escala. Sin embargo, se advierte que los productos electrónicos competitivos modernos y exclusivos se diseñan con lineamientos que distan mucho de las ventajas comerciales y didácticas que ostenta Microchip y son fabricantes como Renesas, Freescale, Atmel y Texas Instruments entre otros, las opciones preferidas para el desarrollo de productos tecnológicos de altas prestaciones, robustez, seguridad, bajo consumo, exclusividad y producción a gran escala. Este libro no es por lo tanto una guía para principiantes en cada una de las arquitecturas y familias de microcontroladores aquí mencionadas, a diferencia de muchos otros libros y enfoques en donde se aprecia un compendio exhaustivo de información desde básica hasta avanzada, así como aplicaciones y descripción tutorial de herramientas de desarrollo para cierta familia de microcontroladores en particular. Este libro tiene por usuario final al estudiante de ingeniería o ingeniero practicante, que posee un nivel básico de conocimientos previos en matemáticas, física, electrónica analógica, diseño digital y arquitecturas de microprocesadores (segundo curso de sistemas digitales del área). Pretende
introducir al desarrollo de aplicaciones e interfazamiento con microcontroladores de las familias mencionadas, en general, con más detalle en una en particular, desde el punto de vista heurístico de sistema y de la ingeniería, y presume que el lector posee la motivación y competencias necesarias para entrenarse por su propia cuenta en aspectos específicos y avanzados sobre los microcontroladores, técnicas y herramientas de desarrollo que se indican y referencian pero no se profundizan en este libro, por considerarlas básicas y suficientemente cubiertas por numerosos textos y material de referencia en Internet para entusiastas de los microcontroladores de todo nivel, no necesariamente interesados en los aspectos de la ingeniería, y que harían por tanto de este libro un volumen innecesariamente detallado y extenso. Con el propósito de brindar un enfoque lo suficientemente práctico para la solución de problemas reales que pongan en ejercicio la fundamentación teórica suministrada, se hace alusión a por lo menos un sistema de desarrollo comercial para cada uno de los microcontroladores o familias mencionados y se indica cómo construir un programador - depurador básico para una amplia gama de los microcontroladores PIC, compatible con el Pickit2, así como una placa básica para reprogramar mediante la técnica de cargador de arranque los representativos PIC18Fx55x y los clásicos PIC18F87X por puerto USB y/o serial. Se llevarán a cabo prácticas con el sistema Tower de Freescale para MCUs HCS08, y placas de demostración como la del sensor táctil S08-DCPT60. Se explicará cómo se desarrollan proyectos basados en el ultra económico sistema Launch Pad MSP430 de 16 bits de Texas Instruments ($5 dólares en 2013) . Se experimentará la interesante propuesta de hardware abierto de Arduino que emplea los microcontroladres ATMega de arquitectura AVR de Atmel. Se presentará la herramienta Microstick de Microchip para sus dispositivos de 16 bits dsPIC33F y PIC24H, así como el PIC32 Ethernet Starter Kit. Se comentan también otras excelentes herramientas didácticas de Freescale facilitadas generosamente por la compañía a los asistentes de su Programa Universitario a los eventos Freescale Technology Forum Americas que se realizan anualmente en Estados Unidos (¡Gracias Andy Mastronardi, gracias Damaris Ochoa!). En cuanto a la arquitectura ARM, se presenta el popular SBC (single board computer) Raspberry PI, y también el recientemente lanzado y ultraeconómico launchpad ARM de Texas Instruments con procesador de la familia Tiva de serie C (Cortex M4) de $13 dólares (2014). Aunque los detalles del desarrollo de aplicaciones con microcontroladores son particulares a cada fabricante y arquitectura, existen muchos conceptos y estrategias en común para todos y esa es la razón de ser del presente libro. Como aporte importante se desea brindar al ingeniero de aplicaciones los criterios
básicos para que seleccione adecuadamente la tecnología con la que enfrentará los requerimientos de su diseño y se insistirá sobre la inconveniencia de tratar de resolver cualquier tipo de problema práctico siempre con la tecnología que le resulte más familiar o cómoda desatendiendo frecuentemente las pautas de los buenos diseños en ingeniería. Los conceptos básicos de arquitectura de MCU se ejemplifican a partir de lenguaje ensamblador que es el único que permite desarrollar completamente la flexibilidad y potencia propias para cada dispositivo presentado. Los proyectos completos de ejemplo, sin embargo, se presentan en lenguaje Ansi C, dada la gran ventaja que ofrece para la portabilidad y reutilización de código para sistemas empotrados, no sin aclarar que los compiladores de C en todo caso adolecen de particularidades para cada familia y frabricante de MCU que obligan a realizar ajustes al ir de uno a otro, pero que son viables, cosa que no se puede decir de la portabilidad para el desarrollo en lenguaje ensamblador.
La enseñanza de sistemas digitales en algunas universidades colombianas Tuve la oportunidad de visitar algunas universidades de Medellín, Cali, Cartagena y Santa Marta con el fin de indagar sobre las asignaturas afines a Diseño Digital con Microcontroladores, sus contenidos y prácticas. A continuación una síntesis de lo encontrado en dichas instituciones, a las cuales agradezco sobremanera su cordialidad y colaboración. El área de sistemas digitales en la Universidad Pontificia Bolivariana de Medellín abarca, entre otros, los cursos de técnicas digitales, microprocesadores, microcontroladores, diseño electrónico (electivo que será regular pronto). Líneas Electivas para ingeniería electrónica: Ingeniería Informática y telecomunicaciones, línea de automática y diseño ( grupo de investigación A1 del mismo nombre con doctores Manuel Betancourt y Marisol Osorio), línea de audio (Universidad San Buenaventura ofrece posgrado en esta área), línea de transmisión y distribución (cercana a la ingeniería eléctrica), gestión de innovación tecnológica (con maestría y doctorado en el área), y bioingeniería y microelectrónica. Las técnicas digitales (5 semestre) comprenden circuitos combinacionales (discretos) y secuenciales (con CPLD). En el segundo curso se trabajó inicialmente con microprocesadores, y actualmente con microcontroladores (inicialmente PIC, luego HC08, luego Coldfire y actualmente ARM – raspberry pi). Interés en prototipaje rápido. Tercer curso, es el curso de periféricos (buses seriales, paralelos, USB, interconexiones inalámbricas Zigbee, Ethernet, RFiD, etc. con Free RTOS, con tecnología Freescale clásica, pero migrando a ARM -K50 ). En general no optan por la simulación, excepto en los temas relacionados con CPLD. Luego vienen dos cursos en esta línea que son opcionales, Sistemas Digitales Avanzados con FPGA (aplicaciones básicas con Verilog - Xilinx) y el
segundo curso que incrusta una MCU microblaze (Spartan 3) y Virtex 3 y 5 y se diseñan periféricos para esta Microblaze. Poseen tarjetas Open SPARC. Cursos de típicamente 30 a 16 estudiantes (cursos conjuntos para ing. Electrónicos y eléctricos de microcontroladores). Los proyectos finales prácticos están siendo enfocados hacia soluciones de problemas reales (de la calle), agregando informes financieros al trabajo (plan de negocios) y formalismo de evaluación de proyectos de investigación según estándares. DSP se trabaja en cursos de sistemas y señales, con Matlab. El DSP con hardware se incentiva desde trabajos de grado. En semilleros de investigación se induce al trabajo con prototipaje rápido con Raspberry pi, o SBC con Android y Linux, o SD con conectividad WiFi para control empotrado. Tesis de grado alrededor del proceso para ofrecerlo como curso de extensión.