2009 Microchip PIC
Josué Viera Rivero 01/01/2009
Tabla Tabl a de
Josué Josu é Viera Vi era
Tabla de contenido Introducción:.................... Introducción:................................ ........................ ........................ ........................ ........................ ................ .... ..................... ..................... 2 MICROCHIP PIC (Programmable
(Programmable Interface Controller ) /
Intelligent Computer) (Peripheral Interface Interface Controller): Controller): ....................... ................................... ......................... ............. 5 Características:...................... Características:................................... ......................... ........................ ........................ .................. ...... ..................... ..................... 6 APLICACIONES:................. APLICACIONES:............................. ........................ ........................ ........................ ........................ ................ .... ................... ................... 10 RTOS:.......................... RTOS:...................................... ........................ ........................ ........................ ........................ .................... ........ ..................... ..................... 16 mTouch Æ Entornos Táctiles:.............. Táctiles:.......................... ........................ ......................... .......................... .......................... ............. 19 Bibliografía ..................... ................................. ......................... .......................... ......................... ......................... ............... .. .................... .................... 22
Microchip
1
Introducció
osué Viera
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 Microchip
2
Introducció
osué Viera
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
3
Introducció
osué Viera
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
4
Introducció
osué Viera
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
5
PIC
Josué Viera
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.
El Mercado de microcontroladores obtiene un valor de 1 billón de dólares. 1994
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 2004 2005 2006
Se produce la unidad 1 billón. Las ventas alcanzan un valor de 800 Millones de dólares. Se producen la unidad número 4 billones. 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.
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. 2008
POBLACIÓN MUNDIAL: 6 739 543 471 Æ 6.7 BILLONES (USA). PD: 1 billion: mil millones. 1 000 000 000 Microchip
6
PIC
Josué Viera
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
7
PIC
Josué Viera
PIC32MX360F512L 512 KBytes. 32 KB de Ram. Reloj de 80 MHz. 100 pines Pipeline de 5 etapas.
Microchip
646 páginas de hoja de características.
8
PIC
Microchip PIC 8
Josué Viera
PIC
Josué Viera
Ejemplos de encapsulados y tamaños de PIC:
Microchip
9
Aplicacion
osué Viera
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
10
Aplicacion
osué Viera
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
11
Aplicacion
osué Viera
PIC 10F: LV: Baja alimentacion 2V ‐ HV: High Voltage 15V
PIC 16F
20 a 40 pines:
PIC 18F
Microchip
12
Aplicacion
osué Viera
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
13
Aplicacion
osué Viera
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 Microchip
14
Aplicacion
DTMF Detection Using PIC18 Microcontrollers
Microchip
osué Viera
15
Aplicacion
Credit Card Reader Using PIC12C509317KB
osué Viera
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
16
RTO
osué Viera
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
17
RTO
osué Viera
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
18
RTO
osué Viera
Ejemplos de circuitos con PIC:
http:// www.educypedia.be/electronics/circuit smic.htm
Microchip
19
mTouc
mTouch Æ Entornos Táctiles: Tenemos dos soluciones para efecto capacitivo o inductivo.
osué Viera
paneles
táctiles:
por
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
20
mTouc
Microchip PIC 20
osué Viera
mTouc
Microchip PIC 21
osué Viera
Bibliografí
osué Viera
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
Bibliografí
osué Viera