2009 Microchip PIC Josué Viera Rivero 01/01/2009 Tabla de Contenido Josué Viera Rivero Tabla de contenido Introducción: ......................................................................................................... 2 MICROCHIP PIC (Programmable Interface Controller ) / (Programmable Intelligent Computer) (Peripheral Interface Controller): ................................................ 5 Características: .................................................................................................. 6 APLICACIONES: .................................................................................................... 10 RTOS: ................................................................................................................... 16 mTouch Æ Entornos Táctiles:............................................................................. 19 Bibliografía .......................................................................................................... 22 Microchip PIC 1 Introducción Josué Viera Rivero Microcontroladores Introducción: Por cada procesador de propósito general vendido, se venden más de 100 microcontroladores. ¿Pero que es un microcontrolador? Es una computadora integrada en un chip, por lo tanto consta de una CPU (Central Processor Unit), una memoria y unidades de Entrada/Salida, aunque también contiene en el mismo chip circuitos de apoyo tales como generador de reloj, módulos específicos, etc. Su cometido es disponer de una unidad que sea capaz de procesar información, interactuar con su entorno y responder ante estímulos. Vemos que al estar en un circuito integrado, su coste será mucho más reducido que si quisiésemos hacer lo mismo con un ordenador personal, además de consumir menos potencia y poderlo integrar en una placa de circuito impreso, o en un dispositivo móvil. Por lo tanto cualquier “cosa” inteligente, seguramente tendrá un o varios microcontroladores, por lo que se le define como un “embedded system” o sistema integrados/empotrado. Tenemos disponibles dos arquitecturas de computadoras a elegir: Von Neumann y Harvard. La primera se utiliza en los ordenadores personales, donde la memoria comparte el espacio de direcciones con los dispositivos de E/S. Además, en esta memoria coexisten las instrucciones de los programas y los datos. En esta estructura se comparte el bus de datos, el de direcciones y el de control, Microchip PIC 2 Introducción Josué Viera Rivero principalmente para reducir el coste ya que el ancho del bus suele ser grande, y físicamente ocupa bastante espacio. En la Harvard, se utilizan dos buses independientes, uno para acceder a una memoria de instrucciones, y el otro para acceder a la memoria de datos. Por lo tanto tendremos implementado en hardware controladores independientes para cada memoria, y líneas independientes. Esta estructura es la que se utiliza en los microcontroladores, y en supercomputadoras. De esta manera, podemos acceder simultáneamente a ambas memorias, pudiendo incrementar la eficiencia ya que si implementamos un pipeline (usando instrucciones RISC), podremos buscar la instrucción y un dato al mismo tiempo. También posibilita la opción de usar diferentes anchos de palabra para cada línea. Por la propia naturaleza del microcontrolador, la memoria de instrucciones se implementa de tipo No‐Volátil, tal como ROM o EEPROM /FLASH, y luego la de datos como SRAM. Microchip PIC 3 Introducción Josué Viera Rivero Dependiendo de la utilidad, rapidez o complejidad del cálculo y del entorno, disponemos de varios fabricantes y a la vez de varias familias de microcontroladores, tales como ATMEL, FREESCALE (Motorola), Microchip, ST, Texas. Cada uno tiene implementado microcontroladores de 8, 16, ó 32 bits (ancho de los datos). ¿Por qué? Simplemente dependiendo de la capacidad de cómputo que deseemos y la rapidez. Por ejemplo, si disponemos de uno de 8 bits y queremos sumar flotantes, tendremos que esperar varios ciclos, ya que la ALU disponible será de 8 bits, mientras que con un procesador de 32 bits será más rápido y podrá hacer las mismas tareas que el de 8 en menos tiempo. Microchip PIC 4 PIC Josué Viera Rivero MICROCHIP PIC (Programmable Interface Controller ) / (Programmable Intelligent Computer) (Peripheral Interface Controller): La compañía fue fundada en 1989, y es uno de los mayores fabricantes de microcontroladores, de memorias y de dispositivos analógicos. 1990 Se fabricó la unidad número 1 millón. 1994 El Mercado de microcontroladores obtiene un valor de 1 billón de dólares. 1997 Las ventas alcanzan un valor de 400 Millones de dólares. 1999 El Mercado tiene un valor de 3 billones de dólares. 1999 Se produce la unidad 1 billón. 2004 Las ventas alcanzan un valor de 800 Millones de dólares. 2005 Se producen la unidad número 4 billones. 2006 Las ventas alcanzan un valor de 1 billón de dólares. Y se fabrica la unidad 5 Billones. Se consigue el puesto número 1 del ranking de MC de 8 bits. 2007 El Mercado tiene un valor de 9 billones de dólares. 2008 Actualmente cuenta con más de 400 tipos de Microcontroladores disponibles, de los cuales, 250 son de 8 bit. Se comercializa la unidad 6 billones desde que se inicio la producción en 1990. POBLACIÓN MUNDIAL: 6 739 543 471 Æ 6.7 BILLONES (USA). PD: 1 billion: mil millones. 1 000 000 000 Microchip PIC 5 PIC Josué Viera Rivero Características: • Usan la arquitectura Harvard. • Número reducido de instrucciones (desde 35 a 70) • La mayoría se ejecutan en un solo ciclo (4 ciclos de reloj). Gran cantidad de recursos: Memoria: FLASH (repogramable), OTP , ROM. De 8 a 32 bits. Pines: desde 6 (4 de E/S) a 100 (85 de E/S). Se dispone de infinidad de herramientas para programarlos, desde el ensamblador en un txt, pasando por BASIC y hasta lenguajes de alto nivel como C. PIC10F200 0.375KBytes (256 Palabras), 16 posiciones de RAM. 33 instrucciones. Reloj de 4MHz = 1 MIPS. Su datapath es de 8 bits, y las instrucciones son de 12 bits de ancho. Recordar estructura Harvard ‐> Memorias independientes con buses diferentes. 6 pines. Microchip PIC 6 PIC Josué Viera Rivero PIC32MX360F512L 512 KBytes. 32 KB de Ram. Reloj de 80 MHz. 100 pines Pipeline de 5 etapas. 646 páginas de hoja de características. Microchip PIC 7 PIC Josué Viera Rivero Microchip PIC 8 PIC Josué Viera Rivero Ejemplos de encapsulados y tamaños de PIC: Microchip PIC 9 Aplicaciones Josué Viera Rivero APLICACIONES: Podemos ver en la siguiente gráfica todas las posibilidades de interacción que dispone un microcontrolador con el entorno, y como puede accionar una gran variedad de dispositivos. La siguiente tabla nos detalla los interfaces que dispone el PIC. Tenemos desde la típica USART hasta los buses más avanzados de CAN, pasando por conversores Analógicos/Digitales, modulador de ancho de pulso y los típicos registros de captura y comparadores . Microchip PIC 10 Aplicaciones Josué Viera Rivero A continuación vemos dependiendo de la complejidad del diseño a tratar, elegiremos una familia de las disponibles, empezando por las de 8 bits a 32 bits. En las siguientes tablas, ya nos centramos en los PIC de 8 bit ya que son los más comunes ya que son capaces de ejecutar y controlar las tareas más comunes. El fabricante nos indica posibles usos para cada familia y las prestaciones: Microchip PIC 11 Aplicaciones Josué Viera Rivero PIC 10F: LV: Baja alimentacion 2V ‐ HV: High Voltage 15V PIC 16F 20 a 40 pines: PIC 18F Microchip PIC 12 Aplicaciones Josué Viera Rivero Además, Microchip nos proporciona en su página web en el apartado de Application Design: Por ejemplo, en Lighting ‐> Incasdecent: Available Documentation: 1. TB094: Dimming AC Incandescent Lamps Using A PIC10F200 2. AN954: Transformerless Power Supplies, Resistive and Capacitive 3. TB008: Transformerless Power Supplies Microchip PIC 13 Aplicaciones Josué Viera Rivero Nos da el código, las formulas para los cálculos, el esquemático, programas de diseño/programación para muchísimos escenarios y montajes. Ejemplos: CONSUMER ELECTRONICS: TCP/IP Networking: Internet Radio Using OLED Display and MP3 Audio Decoder Four Channel Digital Voltmeter with Display and Keyboard Decoding an Infrared Remote Using a PIC16C5X Microcontroller Measure Tilt Using PIC16F84A & ADXL202 AN996, Designing a Digital Compass Using the PIC18F2520 TELECOMMUNICATIONS: Implementation of the Data Encryption Standard Using PIC17C42 DTMF Detection Using PIC18 Microcontrollers Microchip PIC 14 Josué Viera Rivero Aplicaciones Credit Card Reader Using PIC12C509317KB AN730 CRC Generating and Checking dsPICS (Operaciones especiales: Modulo, Bit‐Reversed, 16x16 Multiplicadores) Single cycle MAC) y 32 Bits: HTTP Server using BSD Socket API for PIC32MX / FTP / SNMP USB Mass Storage Class on an Embedded Device Implementing FIR and IIR Digital Filters Analog to Digital Conversion Reading and Using Fast Fourier Transformation (FFT) Microchip PIC 15 RTOS Josué Viera Rivero RTOS: Aunque los microcontroladores son máquinas de ejecución secuencial, y dispongamos de interrupciones para reaccionar de manera rápida ante eventos, en las familias de 32 bits se puede implementar un Sistema Operativo para poder ejecutar tareas en Tiempo Real: Real Time Systems: For example, in a dishwasher system, the following tasks may exist: 1. Water Manager: This task manages the water intake and drain 2. Motor Manager: This task manages the direction and speed of a motor according to the selected wash cycle 3. Door Manager: This task tracks the status of the dishwasher door and informs other tasks of the current status or any change in the status 4. Display Manager: This task tracks the status of various functions of the dishwasher and displays it on the LCD mounted on the front-panel Microchip PIC 16 Josué Viera Rivero RTOS Se puede usar “Preempitve approach” para en un momento crítico parar el refresco del display para controlar la válvula de entrada de agua, la bomba, el calentador, etc. Un ejemplo de un S.O de Tiempo Real Open‐Source. Vemos que solamente ocupa unos 2KBytes de código, despreciable en los microcontroladores de 32 Bits que disponían 512KBytes en el más potente. Microchip PIC 17 RTOS Josué Viera Rivero Ejemplos de circuitos con PIC: http://www.educypedia.be/electronics/circuitsmic.htm Microchip PIC 18 mTouch Josué Viera Rivero mTouch Æ Entornos Táctiles: Tenemos dos soluciones para paneles táctiles: por efecto capacitivo o inductivo. El primero se basa en una PCB con una tira de metalización y un panel dieléctrico. Cuando pulsemos, estaremos cambiando la capacidad del circuito. Con el inductivo, tenemos una espira y al presionar, tendremos una lámina metálica que mueve y se acerca a la bobina, cambiando el acoplamiento. Comparación: Cualquier material ya que el panel frontal tendrá debajo una lamina metálica que es lo que se mueve. El montaje tiene u Circuito Oscilador que consta de 2 comparadores y un Latch. Vemos que definimos una tensión umbral mínima. Empezará a salir un '1', y la onda cuadrada sale por el pin y con el circuito RC se convierte en un diente de sierra con un determinado tiempo de subida. Cuando llegue a umbral superior, se invierte Latch y se crea la bajada. Vemos en grafica la oscilación RC. Por lo que en reposo, estará oscilando a una frecuencia fijada por nosotros (Seguiremos las pautas de diseño que nos digan los PDF de diseño). Cuando pulsemos el botón, estaremos incrementando la capacidad total (2 capacidades en paralelo), por lo que la constante de Tiempo RC se incrementará. Por lo tanto el tiempo de subida será menor que conlleva una frecuencia menor. Por lo que simplemente con un TIMER/Capture activado por flanco subida podremos medir la frecuencia actual de los pulsos y compararla con la que tengamos registrada de reposo (Timer 0). Microchip PIC 19 mTouch Josué Viera Rivero Microchip PIC 20 mTouch Josué Viera Rivero Microchip PIC 21 Bibliografía Josué Viera Rivero Bibliografía Wikipedia[En línea 24/12/2008]. – http://en.wikipedia.org/wiki/Microcontroller http://es.wikipedia.org/wiki/Microcontrolador http://en.wikipedia.org/wiki/PIC_microcontroller http://es.wikipedia.org/wiki/Microcontrolador_PIC http://en.wikipedia.org/wiki/Computer_architecture http://en.wikipedia.org/wiki/Von_Neumann_architecture http://en.wikipedia.org/wiki/Harvard_architecture MICROCHIP[En línea 24/12/2008]. – http://www.microchip.com Hoja de características Application Notes Web Online Courses PIC TUTORIAL[En línea 24/12/2008]. – http://cholopic.pe.nu/ Microchip PIC 22