INSTITUTO TECNOLOGICO SUPERIOR CARLOS CISNEROS
TEMA: COMO PROGRAMAR PIC'S.
1. Que es u un n pic pic..
Indice
2. Juego Juego de instruc instruccion ciones es y entorno entorno de progra programació mación n 3. Arquite rquitect ctur uraa centr central al 4. Espa Espacio cio de d dat atos os (RA (RAM) M) 5. Tamañ amaño o de de pal palab abra ra 6. Prog Progra rama maci ción ón de dell PIC PIC 7. Prog Progra rama mado dore ress 8. Depura Depurado dores res integr integrado adoss 9. Emu mula lad dores res 10.Características 11.V 11. Variaciones del PIC 12.PICs modernos 13.Clon 13. Clones es del PIC 14.PICs 14. PICs wireless wireless 15.PICs 15. PICs para procesado de señal señal (dsPICs) 16.PICs de 32 bits (PIC32) 1. PICs PICs más más comúnm comúnment entee usado usadoss 2. PICs PICs en Inte Intern rnet et 17.Herramientas 17. Herramientas de soporte soporte potentes y económicas 18.Tipos de PIC
Pics
1.Que es un pic. Los PIC son son una familia familia de microc microcont ontrol rolado adores res tipo tipo RISC RISC fabric fabricado adoss por Microc Microchip hip Technology Inc. y derivados del PIC1650, originalmente desarrollado por la división de microelectrónica de General Instrument. El nombre actual no es un acrónimo. En realidad, el nombre completo es PICmicro, aunque aunque genera generalme lmente nte se utiliz utiliza a como como Periph Periphera erall Interf Interface ace Contro Controlle ller(c r(cont ontrol rolado adorr de interfaz periférico). El PIC original se diseñó diseñó para ser usado usado con la nueva nueva CPU de 16 bits bits CP16000. CP16000. Siendo en general una buena CPU, ésta tenía malas prestaciones de E/S, y el PIC de 8 bits se desarrolló en 1975 para mejorar el rendimiento del sistema quitando peso de E/S a la CPU. El PIC utilizaba microcódigo simple almacenado en ROM para realizar estas tareas; y aunque el término no se usaba por aquel entonces, se trata de un diseño RISC que ejecuta unainstrucción cada 4 ciclos del oscilador. En 1985 la división de microelectrónica de General Instrument se separa como compañía indepe independi ndient ente e que que es incorp incorpora orada da como como filial filial (el 14 de diciem diciembre bre de1987 de1987 cambia cambia el nombre a Microchip Technology y en 1989 es adquirida por un grupo de inversores) y el nuevo propietario canceló casi todos los desarrollos, que para esas fechas la mayoría esta estaba ban n obso obsole leto tos. s. El PIC, PIC, sin sin emba embarg rgo, o, se mejo mejoró ró con con EPRO EPROM M para para cons conseg egui uir r un controlador de canal programable. Hoy en día multitud de PICs vienen con varios perifé periféric ricos os incluid incluidos os (módu (módulos los de comuni comunicac cación ión serie, serie, UART UARTs, núcleo núcleoss de contro controll de motores, etc.) y con memoria de programa desde 512 a 32.000 palabras (una palabra corresponde a una instrucción en lenguaje ensamblador, y puede ser 12, 14 o 16 bits, dependiendo de la familia específica de PICmicro).
Juego de instrucciones y entorno de programación El PIC usa un juego de instrucciones tipo RISC, cuyo número puede variar desde 35 para PICs de gama baja a 70 para los de gama alta. Las instrucciones se clasifican entre las que realizan operaciones entre el acumulador y una constante, entre el acumulador y una posición de memoria, instrucciones de condicionamiento y de salto/retorno, implementación de interrupciones y una para pasar a modo de bajo consumo llamada sleep. Microchip proporciona un entorno de desarrollo freeware llamado MPLAB que incluye un simulador software y un ensamblador. ensamblador. Otras empresas desarrollan compiladores C y BASIC. Microchip también vende compiladores para los PICs de gama alta ("C18" para la serie F18 y "C30" para los dsPICs) y se puede descargar una edición para estudiantes del C18 que inhabilita algunas opciones después de un tiempo de evaluación. Para el lenguaje de programación Pascal existe un compilador de código abierto, JAL, lo mismo que PicForth para el lenguaje Forth. GPUTILS es una colección de herramientas distribuidas bajo licencia GPL que incluye ensamblador y enlazador, enlazador, y funciona en Linux, MacOS y Microsoft Windows. GPSIM es otra herramienta libre que permite simular diversos dispositivos hardware conectados al PIC. Uno de los más modernos y completos compiladores para lenguaje C es [mikroC], que es un ambiente de desarrollo con editor de texto, bibliotecas con múltiples funciones para
todos los módulos y herramientas incorporadas para facilitar enormemente el proceso de programación.
Arquitectura central La arquitectura del PIC es sumamente minimalista. Esta caracterizada por las siguientes prestaciones: •
Área de código y de datos separadas (Arquitectura Harvard).
•
Un reducido número de instrucciones de largo fijo.
•
•
•
•
•
•
La mayoría de las instrucciones se ejecutan en un solo ciclo de ejecución (4 ciclos de clock), con ciclos de único retraso en las bifurcaciones y saltos. Un solo acumulador (W), cuyo uso (como operador de origen) es implícito (no está especificado en la instrucción). Todas las posiciones de la RAM funcionan como registros de origen y/o de destino de operaciones matemáticas y otras funciones.1 Una pila de hardware para almacenar instrucciones de regreso de funciones. Una relativamente pequeña cantidad de espacio de datos direccionable (típicamente, 256 bytes), extensible a través de manipulación de bancos de memoria. El espacio de datos está relacionado con el CPU, puertos, y los registros de los periféricos.
El contador de programa esta también relacionado dentro del espacio de datos, y es posible escribir en él (permitiendo saltos indirectos). A diferencia de la mayoría de otros CPU, no hay distinción entre los espacios de memoria y los los espa espaci cios os de regi regist stro ros, s, ya que que la RAM RAM cump cumple le amba ambass func funcio ione nes, s, y esta esta es normalmente referida como "archivo de registros" o simplemente, registros. •
Espacio de datos (RAM) Los microcontroladores PIC tienen una serie de registros que funcionan como una RAM de propósito general. Los registros de propósito especifico para los recursos de hardware disp dispon onib ible less dent dentro ro del del prop propio io chip chip tamb tambié ién n está están n dire direcc ccio iona nado doss en la RAM. RAM. La direccionabilidad de la memoria varia dependiendo la línea de dispositivos, y todos los dispositivos PIC tienen algún tipo de mecanismo de manipulación de bancos de memoria que pueden ser usados para acceder memoria adicional. Las series más recientes de dispositivos disponen de funciones que pueden cubrir todo el espacio direccionable, independientemente del banco de memoria seleccionado. En los dispositivos anteriores, esto debía lograrse mediante el uso del acumulador. acumulador. Para implementar direccionamiento indirecto, un registro de "selección de registro de archivo" (FSR) y de "registro indirecto" (INDF) son usados: Un número de registro es escrito en el FSR, haciendo que las lecturas o escrituras al INDF serán realmente hacia o del registro apuntado por el FSR. Los dispositivos más recientes extienden este concepto con con posos- y prein reinccreme rement nto os/d s/decre ecrem mento entoss para ara mayor ayor efic eficie ienc ncia ia en acce acced der secuencialmente a la información almacenada. Esto permite que se pueda tratar al FSR como un puntero de pila. La memoria de datos externa no es directamente direccionable excepto en algunos microcontroladores PIC 18 de gran cantidad de pines.
Tamaño de palabra El tamaño de palabra de los microcontroladores PIC es fuente de muchas confusiones. Todos los PICs (excepto los dsPIC) manejan datos en trozos de 8 bits, con lo que se deberían llamar microcontroladores de 8 bits. Pero a diferencia de la mayoría de CPUs, el PIC usa arquitectura Harvard, por lo que el tamaño de las instrucciones puede ser distinto del de la palabra de datos. De hecho, las diferentes familias de PICs usan tamaños de instrucción distintos, lo que hace difícil comparar el tamaño del código del PIC con el de otros microcontroladores. Por ejemplo, un microcontrolador tiene 6144 bytes de memoria de programa: para un PIC de 12 bits esto significa 4096 palabras y para uno de 16 bits, 3072 palabras. Programación del PIC Para transferir el código de un ordenador al PIC normalmente se usa un dispositivo llamado programador. La mayoría de PICs que Microchip distribuye hoy en día incorporan ICSP (In Circuit Serial Programming, programación serie incorporada) o LVP (Low Voltage Voltage Programming, programación a bajo voltaje), lo que permite programar el PIC directamente en el circuito destino. Para la ICSP se usan los pines RB6 y RB7 (En algunos modelos pueden usarse otros pines como el GP0 y GP1 o el RA0 y RA1) como reloj y datos y el MCLR para activar el modo programación aplicando un voltaje de 13 voltios. Existen muchos programadores de PICs, desde los más simples que dejan al software los detalles de comunicaciones, a los más complejos, que pueden verificar el dispositivo a diversas tensiones de alimentación e implementan en hardware casi todas las funcionalidades. Muchos de estos programadores complejos incluyen ellos mismos PICs preprogramados como interfaz para enviar las órdenes al PIC que se desea programar. Uno de los programadores más simples es el TE20, que utiliza la línea TX del puerto RS232 como alime limen ntac tación ión y las las líne línea as DTR DTR y CTS para para mand manda ar o rec recibir ibir dato datoss cuan uando el microcontrolador está en modo programación. El software de programación puede ser el ICprog, muy común entre la gente que utiliza este tipo de microcontroladores. Entornos de programación basados en interpretes BASIC ponen al alcance de cualquiera proyectos que parecieran ser ambiciosos. Se pueden obtener directamente de Microchip muchos programadores/depuradores programadores/depuradores (octubre de 2005): Un buena recopilación de herramientas encontrarse Aquí. (Mayo de 2009).
de
Programadores •
PICStart Plus (puerto serie y USB)
•
Promate II (puerto serie)
•
MPLAB PM3 (puerto serie y USB)
•
ICD2 (puerto serie y USB)
•
ICD3 (USB)
•
PICKit 1 (USB)
•
IC-Prog 1.06B
•
PICAT PICAT 1.25 (puerto USB2.0 para PICs y Atmel)
desarrollo
para
PICs
puede
•
WinPic 800 (puerto paralelo, serie y USB)
•
PICKit 2 (USB)
•
PICKit 3 (USB)
•
Terusb1.0
•
Eclipse (PICs y AVRs. AVRs. USB.)
•
MasterProg (USB)
•
Además es posible hacer un programador de manera en http://microspics.blogspot.com hay una lista con los más utilizados.
casera,
Depuradores integrados •
ICD (Serie)
•
ICD2 (Serie ó full speed USB - 2M bits/s)
•
ICD3 (High speed USB - 480M bits/s)
Emuladores •
Proteus - ISIS
•
ICE2000 (puerto paralelo, convertidor a USB disponible)
•
ICE4000 (USB)
•
PIC EMU
•
PIC CDlite
Características Los PICs actuales vienen con una amplia gama de mejoras hardware incorporadas: •
Núcleos de CPU de 8/16 bits con Arquitectura Harvard modificada
•
Memoria Flash y ROM disponible desde 256 bytes a 256 kilobytes
•
Puertos de E/S (típicamente 0 a 5,5 voltios)
•
Temporizadores de 8/16 bits
•
Tecnología Nanowatt para modos de control de energía
•
Periféricos serie síncronos y asíncronos: USART, AUSART, EUSART
•
Conversores analógico/digital de 8-10-12 bits
•
Comparadores de tensión
•
Módulos de captura y comparación PWM
•
Controladores LCD
•
Periférico MSSP para comunicaciones comunicaciones I²C, SPI, y I²S
•
•
Memo Memori ria a EEP EEPRO ROM M inte intern rna a con con dura duraci ción ón de hast hasta a un mill millón ón de cicl ciclos os de lectura/escritura Periféricos de control de motores
•
Soporte de interfaz USB
•
Soporte de controlador Ethernet
•
Soporte de controlador CAN
•
Soporte de controlador LIN
•
Soporte de controlador Irda
Variaciones del PIC PICs modernos Los viejos PICs con memoria PROM o EPROM se están renovando gradualmente por chips con memoria Flash. Así mismo, el juego de instrucciones original de 12 bits del PIC1650 y sus descendientes directos ha sido suplantado por juegos de instrucciones de 14 y 16 bits. Microchip todavía vende versiones PROM y EPROM de la mayoría de los PICs para soporte de aplicaciones antiguas o grandes pedidos. Se pueden considerar tres grandes gamas de MCUs PIC en la actualidad: Los básicos (Linebase), los de medio rango (Mid Range) y los de alto desempeño (high performance). Los PIC18 son considerandos de alto desempeño y tienen entre sus miembros a PICs con módulos de comunicación y protocolos avanzados (USB, Ethernet, Zigbee por ejemplo). Clones del PIC Por Por todo todoss lado ladoss surg surgen en comp compañ añía íass que que ofre ofrece cen n vers versio ione ness del del PIC PIC más más bara barata tass o mejoradas. La mayoría suelen desaparecer rápidamente. Una de ellas que va perdurando es Ubicom (antiguamente Scenix) que vende clones del PIC que funcionan mucho más rápido que el original. OpenCores tiene un núcleo del PIC16F84 escrito en Verilog. PICs wireless El microcontrolador rfPIC integra todas las prestaciones del PICmicro de Microchip con la capacidad de comunicación wireless UHF para aplicaciones RF de baja potencia. Estos dispositivos ofrecen un diseño muy comprimido para ajustarse a los cada vez más demandados requerimientos de miniaturización en aparatos electrónicos. Aun así, no parecen tener mucha salida en el mercado. PICs para procesado de señal (dsPICs) Los dsPICs son el penúltimo lanzamiento de Microchip, comenzando a producirlos a gran escala a finales de 2004. Son los primeros PICs con bus de datos inherente de 16 bits. Incorporan todas las posibilidades de los anteriores PICs y añaden varias operaciones de DSP DSP implem implement entada adass en hardwa hardware, re, como como multip multiplic licaci ación ón con suma suma de acumul acumulado ador r (multiply-accumulate, o MAC), barrel shifting, bit reversion o multiplicación 16x16 bits. PICs de 32 bits (PIC32) Microchip Technology lanzó en noviembre de 2007 los nuevos microcontroladores de 32 bits con una velocidad de procesamiento de 1.5 DMIPS/MHz con capacidad HOST USB. Estos MCUs permiten un procesamiento de información increíble con un núcleo de procesador de tipo M4K.
PICs más comúnmente usados •
PIC12C508/509 (encapsulamiento reducido de 8 pines, oscilador interno, popular en pequeños diseños como el iPod remote).
•
PIC12F629/675
•
PIC16F84 (Considerado obsoleto, pero imposible de descartar y muy popular)
•
•
•
•
•
•
PIC16F84A (Buena actualización del anterior, algunas versiones funcionan a 20 MHz, compatible 1:1) PIC16F628A (Es la opción típica para iniciar una migración o actualización de diseños antiguos hechos con el PIC16F84A. Posee puerto serial, módulos de comp compar arac acio ion n anál análog oga, a, PWM, PWM, módu módulo lo CCP CCP, rang rango o de oper operac ació ión n de volta voltaje je aumentado, entre otras ) PIC16F88 (Nuevo sustituto del PIC16F84A con más memoria, oscilador interno, PWM, etc que podría convertirse en popular como su hermana). La subfamilia PIC16F87X y PIC16F87XA (los hermanos mayores del PIC16F84 y PIC16F84A, con cantidad de mejoras incluidas en hardware. Bastante común en proyectos de aficionados). PIC16F886/887 (Nuevo sustituto del 16F876A y 16F877A con la diferencia que el nuevo ya se incluye oscilador interno). PIC16F193x (Nueva gama media de PIC optimizado y con mucha RAM, ahora con 49 instrucciones por primera vez frente a las 35 de toda la vida).
•
PIC18F2455 y similares con puerto USB 2.0
•
PIC18F2550 manejo de puertos USB 2.0 y muy versatil.
•
PIC18F452
•
PIC18F4550
•
dsPIC30F2010
•
dsPIC30F3014
•
•
dsPIC30F3011 dsPIC30F3011 (Ideales para control electrónico de motores eléctricos de inducción, control sobre audio, etc). PIC32 (Nueva gama de PIC de 32 bits, los más modernos ya compatible con USB 2.0).
PICs en Internet Se pued puede e enco encont ntra rarr much mucha a info inform rmac ació ión n y docu docume ment ntac ació ión n sobr sobre e PICs PICs en Inte Intern rnet et principalmente por dos motivos: el primero, porque han sido muy usados para romper los sistem sistemas as de seguri seguridad dad de vario varioss produ producto ctoss de consu consumo mo mayori mayoritar tario io (telev (televisi isión ón de pago, Play Station...), lo que atrae la atención de los crackers; y segundo, porque el PIC16C84 fue uno de los primeros microcontroladores fácilmente reprogramables para aficionados. Hay muchos foros y listas de correo dedicados al PIC en los que un usuario puede proponer sus dudas y recibir respuestas. Pero también podemos enfocar el tema de internet a la posibilidad que se tiene de desarrollar con estos, Sistemas SCADA vía Web debido a que pueden adquirir y enviar datos al puerto serial de un computador utilizando transmisión UART y el protocolo
RS232, o la posibilidad de implementar el protocolo TCP/IP directamente. Características relevantes de los PIC La arquitectura del procesador sigue el modelo Harvard. Se apli aplicca la técn técnic ica a de segm segmen enta taci ción ón ("pi ("pipe pe-l -lin ine" e")) en la ejec ejecuc ució ión n de las las instrucciones. El formato de todas las l as instrucciones tiene la misma longitud. Procesador RISC (Computador de Juego de Instrucciones Reducido). Todas las instrucciones son ortogonales. Arquitectura basada en un banco de registros. Prácticamente todos los PIC se caracterizan por poseer unos mismos recursos mínimos. Modelos de arquitectura cerrada y de arquitectura abierta. Diversidad de modelos de microcontroladores. Amplio margen de alimentación y corrientes de salida elevadas. Herramientas de soporte potentes y económicas. 1ª. La arquitectura del procesador procesador sigue el modelo Harvard. La repe reperc rcus usió ión n más más impo import rtan ante te del del empl empleo eo de la arqu arquititec ectu tura ra Harv Harvar ard d en los los microcontroladores PIC se manifiesta en la organización de la memoria del sistema. La memoria de programa o instrucciones es independiente de la de los datos, teniendo tamaños y longitudes de palabra diferentes. • •
• • • • •
• • • •
La arqu arquititec ectu tura ra Harv Harvar ard d perm permite ite a la CPU CPU acce accede derr simu simultá ltáne neam amen ente te a las las dos dos memorias. Además, Además, propicia numerosas ventajas al funcionamiento del sistema. En los PIC, el formato de las instrucciones es de 12 bits, 14 bits o 16 bits según el modelo y, en consecuencia, la longitud de las palabras de la memoria de instrucciones o programa corresponde con esa longitud. Este tamaño permite codificar en una palabra el código de operación de la instrucción junto al operando o su dirección. Para adaptarse a las necesidades de las aplicaciones del usuario hay modelos con 512 posiciones para la memoria de instrucciones y otros que tienen 1 k, 2 k , y hasta 64 k posiciones de memoria. Existen varias versiones de memoria de instrucciones para los PIC: •
Versión Flash. Utiliza una memoria EEPROM tipo Flash, que puede grabarse y borrarse muchas veces.
DISP DISPOS OSIT ITIV IVOS OS LÓGI LÓGICO COS S MICRO MICROPR PROG OGRA RAMA MABL BLES ES •
•
Micr Microc ocon ontr trol olad ador ores es PIC PIC
Versión OTP . ("One Time Programmable") "Programable una sola vez". Sólo se puede grabar una vez por el usuario sin la posibilidad de borrar lo que se graba. Resulta mucho más económica en la implementación de prototipos y pequeñas series. Versión QTP. Es el propio fabricante el que se encarga de grabar el código en todos los chips que configuran pedidos medianos y grandes.
Versión SQTP. El fabricante solo graba unas pocas posiciones de código para labores de identificación, numero de serie, palabra clave, checksum, etc. Los modelos con memoria OTP sólo pueden ser grabados una vez por el usuario. Puesto que los datos y operandos que manejan las instrucciones son de 8 bits, la longitud de las palabras de la memoria de datos tiene ese tamaño. La capacidad de la SRAM varía entre 16 y 3968 posiciones, según el modelo. A continuación se presenta el esquema general de adaptación de la CPU a las memorias de los PIC16X84. El bus que direcciona las posiciones de la memoria de programa tiene un tamaño de 13 líneas. El bus que direcciona la memoria de datos dispone de siete líneas para seleccionar 68 bytes. •
2ª. 2ª. Se ap apli lica ca la técn técnic icaa de segm segmen enta taci ción ón ("pip ("pipe-l e-lin ine" e")) en la ejec ejecuc ució ión n de las las instrucciones. La segmentación permite al procesador realizar al mismo tiempo la ejecución de una instrucción y la búsqueda del código de la siguiente. De esta forma se puede ejecutar cada instrucción en un ciclo (en los PIC cada ciclo de instrucción son cuatro ciclos de reloj). Durante la fase de búsqueda, la dirección de la instrucción la proporciona el PC, el cual normalmente se autoincrementa en la mayoría de las instrucciones, excepto en las de salto. Ejemplo: 2 Ciclos 1. MOVLW Búsqueda 55h 1ª 2 .MOVWF PB 3. CALL SUB 4.
MOVL MOVLW W
1 Ciclo
2 Ciclos
Ejecuta 1ª Búsqueda 2ª
Ejecuta 2ª Búsqueda 3ª
Ejecuta 3ª Búsq Búsque ueda da NO NOP P
1 Ciclo
03h
4ª Bús SUB
DISPOSITI ITIVOS LÓ LÓGICOS MI MICROPROGRAMA RAMABL BLE ES
1ª
Eje 1ª SUB
Microcontroladores PI PIC
Las instrucciones de salto ocupan dos ciclos al no conocer la dirección de la siguiente instrucción. 3ª. El formato de todas t odas las instrucciones tiene la misma longitud . Las instrucciones de los microcontroladores mas sencillos tienen una longitud de palabra de 12 bits. Los medianos tienen 14 bits y los de mayor complejidad tienen más longitud. Esta característica es muy ventajosa en la optimización de la memoria de instrucciones y facilita enormemente la construcción de ensambladores y compiladores. 4ª. Procesador RISC (Computador de Juego de Instrucciones Reducido) . Las CPU´s atendiendo al tipo de instrucciones que utilizan pueden clasificarse en: •
•
CISC: (Com (Compl plex ex Inst Instru rucctio tion Set Set Com Compute puter) r) Comp omputad utado ores res de jue juego de instrucciones complejo, que disponen de un repertorio de instrucciones elevado (80, 100 o más), algunas de ellas muy sofisticadas y potentes, pero que como contrapartida requieren muchos ciclos de máquina para ejecutar las instrucciones complejas. RISC: (Re (Reduc duced Ins Instru tructi ction Set Set Comp omputer uter)) Comput mputa adores ores de jueg juego o de instrucciones reducido, en los que el repertorio de instrucciones es muy reducido, las instru instrucci ccione oness son son muy simple simpless y suelen suelen ejecut ejecutars arse e en un ciclo ciclo máquin máquina. a. Adem Además ás los los RISC RISC debe deben n tene tenerr una una estru estruct ctur ura a pipe pipelin line e y ejec ejecut utar ar toda todass las las instrucciones a la misma velocidad.
SISC: (Specific Instriction Set Computer) Computadores de juego de instrucciones específico. En los microcontroladores destinados a aplicaciones muy concretas, el juego de instrucciones, además de ser reducido, es "específico", es decir, las instrucciones se adaptan a las necesidades de la aplicación prevista. El número de instrucciones de los PIC mas simples es 33, llegando a 60 en los mas complejos. La familia PIC16X84 dispone de un repertorio de 35 instrucciones. 5ª. Todas las instrucciones son ortogonales . Cualquier instrucción puede manejar cualquier elemento de la arquitectura como fuente o como destino. En los PIC el manejo del banco de registros, que participan activamente en la ejecución de las instrucciones, es muy interesante al ser ortogonales. 6ª. Arquitectura basada en un banco de registros . La arquitectura basada en banco de registros implica que todos los elementos del sistema, es decir, temporizadores, puertos de entrada/salida, posiciones de memoria, etc, están implementados físicamente como registros. En la figura siguiente se muestra como la ALU (Unidad Aritmético-Lógica) efectúa sus operaciones con dos operandos, uno que proviene del registro W (Work), que en otras CPUs recibe el nombre de Acumulador, y el otro que se encuentra en cualquier otro registro o desde el propio código de instrucción. •
DIS DISPOSI POSIT TIVOS IVOS LÓG LÓGIC ICOS OS MIC MICR ROPRO OPROG GRAMA RAMABL BLES ES
Micr Microc ocon ontr tro olado ladorres PIC PIC
7ª. Prácticamente todos los PIC se caracterizan por poseer unos mismos recursos mínimos: •
Sistema POR ( POWER ON RESET). Todos los PIC tienen la facultad de generar una autoreinicialización o autoreset al conectarles la alimentación. Perro guardián, (Watchdog) Existe un temporizador que produce un reset automáticamente si no es recargado antes de que pase un tiempo prefijado. Así se evita que el sistema se quede "colgado" puesto que dada esa situac situación ión el progra programa ma no recarg recargarí aría a dicho dicho tempor temporiza izador dor y se generaría un reset. Código de protección . Cuando se procede a realizar la grabación del programa, puede protegerse para evitar su lectura. También También disponen de posiciones rese reserv rvad ada as para para regi regisstra trar número meross de serie erie,, códig ódigo os de identificación, prueba, etc. Modo de reposo (bajo consumo o SLEEP) . Ejec Ejecut utan ando do una una inst instru rucc cció ión n (SLE (SLEEP EP), ), el CPU CPU y el osci oscila lado dor r principal se detienen y se reduce notablemente el consumo. Modo de reposo (bajo consumo o SLEEP) . •
•
•
•
•
•
•
•
8ª. Modelos de arquitectura cerrada y de arquitectura abierta . Entre Entre los fabric fabricant antes es de microc microcont ontrol rolado adores res hay dos dos tenden tendencia ciass para para resolv resolver er las demandas de los usuarios: 1ª. Microcontroladores de arquitectura cerrada . Cada modelo se construye con una determinada CPU, cierta capacidad de memoria de datos, cierto tipo y capacidad de memoria de instrucciones, un número de E/S y un conjunto de recursos auxiliares muy concreto. El modelo no admite variaciones ni ampliaciones. La aplicación a la que se destina debe encontrar en su estructura todo lo que prec precis isa a y, en caso caso cont contra rari rio, o, hay que que dese desech char arlo lo.. Micr Microc ochi hip p ha eleg elegid ido o principalmente este modelo de arquitectura. DIS DISPOSI POSIT TIVOS IVOS LÓG LÓGIC ICOS OS MIC MICR ROPRO OPROG GRAMA RAMABL BLES ES
Micr Micro oco cont ntro rola lado dorres PIC PIC
2ª. Microcontroladores de arquitectura abierta . Estos microcontroladores se caracterizan porque, además de disponer de una estructura interna determinada, pueden emplear sus líneas de E/S para sacar al exterior los buses de datos, direcciones y control, con lo que se posibilita la ampliación de la memoria y las E/S con circuitos .integrados extern externos. os. Microc Microchip hip dispon dispone e de modelo modeloss PIC con arquit arquitect ectura ura abiert abierta, a, sin emba embarg rgo, o, esta esta alte altern rnat ativ iva a se esca escapa pa de la idea idea de un micr microc ocon ontr trol olad ador or inc incrustado y se asemeja a la solución que emplean los clásicos microprocesadores. Los verdaderos microcontroladores responden a la arquitectura cerrada y permiten resolver una aplicación con un solo circuito integrado y a precio muy reducido. 9ª. Diversidad de modelos de microcontroladores microcontroladores . La gran variedad de modelos de microcontroladores PIC (254 dispositivos a noviembre de 2004) permite que el usuario pueda seleccionar el más conveniente para su proyecto: • •
•
•
•
•
•
El número de patillas de E/S varía de 4 a 70, según el modelo. Casi todos disponen de una memoria EEPROM de 16 a 1024 bytes para almacenar datos y recuperarlos después de haber eliminado la alimentación. Las frecuencias más habituales de funcionamiento máximas, según el modelo, son 4 MHz y 10 MHz, llegando algunos a los 48 MHz. Ademas de las entradas/salidas digitales y temporizadores y contadores, según el modelo, modelo, podemos podemos disponer disponer de entradas/ entradas/salid salidas as analógica analógicass (convertido (convertidores res A/D, D/A), comparadores analógicos, amplificadores operacionales, puerto serie, I 2C, USB. Según la versión de PIC, la Pila o "Stack" dispone de un cierto numero de niveles lo que supone poder encadenar más o menos subrutinas. Los microcontroladores PIC mas sencillos no admiten interrupciones, pero el resto si. Hay PIC donde el temporizador TMR1 tiene un circuito oscilador que puede trabajar asíncronamente y que puede incrementarse aunque el microcontrolador se halle en el modo de reposo ("sleep"), posibilitando la implementación de un reloj en tiempo real.
•
En algunos modelos las líneas de E/S del uno o mas puertos presentan una carga "pull-up" activada por software.
La Pila en los PICs: La Pila en los PIC es una zona de memoria que se encuentra separada tanto de la memoria de programa como de la de datos. Tiene una estructura LIFO (Last In First Out), por lo que el último valor que se guarda es el primero que sale. Dispone de varios niveles de profundidad, cada uno de ellos con una longitud de n bits. Su funcionamiento es como el de un buffer circular, de manera que el valor que se obtiene al realizar tantos desplazamientos como niveles mas uno, es igual al primer desplazamiento. La única manera de cargar la Pila es a través de la instrucción CALL (llamada a subrutina) o por una interrupción que hacen que con cada una de ellas, se cargue el contenido del PC en el valor superior de la Pila. Para recuperar el contenido de la Pila en el PC hay hay que que ejec ejecut utar ar una una inst instru rucc cció ión n RETU RETURN RN,, RETL RETLW W o RETF RETFIE IE (vue (vuelta lta del del programa de atención a una subrutina o interrupción). No se dispone de ningún flag fl ag (identificador o bandera) que indique un desbordamiento de la Pila.
DIS DISPOSI POSIT TIVOS IVOS LÓG LÓGICOS ICOS MICR MICROP OPRO ROG GRAMA RAMABL BLES ES
Micro icroco con ntrol trolad ado ores res PIC PIC
Los dispositivos mas complejos responden a microcontroladores de arquitectura abierta que pueden expandirse en el exterior al poder sacar los buses de datos, direcciones y con contro trol. Así Así se puede eden confi onfigu gura rarr siste istema mass simil imilar ares es a los los que que utili tilizzan los los microprocesadores convencionales, siendo capaces de ampliar la configuración interna del PIC añadiendo nuevos dispositivos de memoria y de E/S externas. Esta facultad obliga a estos componentes a tener un elevado numero de patillas. Con los PIC se dispone de gran diversidad de modelos y encapsulados, pudiendo seleccionar el que mejor se acople a las necesidades de acuerdo con el tipo y capacidad de las memorias, el número de líneas de E/S y las funciones auxiliares precisas. Sin embargo, todas las versiones están construidas alrededor de una arquitectura común, un repertorio mínimo de instrucciones y un conjunto de opciones muy apreciadas, como el bajo consumo y el amplio margen del voltaje de alimentación. 10ª. Amplio margen de alimentación y corrientes de salida elevadas . La tensión típica de los PIC es de 5 v, si bien según que modelos se pueden alimentar con tensiones de 2 a 6,25 voltios , lo cual posibilita el funcionamiento mediante pilas corrientes teniendo en cuenta su bajo consumo ( menos de 2 mA a 5 V y 4 MHz ). Las líneas de E/S de los PIC pueden proporcionar o absorber una corriente de salida comprendida entre 20 y 25 mA, capaz de excitar directamente ciertos periféricos. 11ª. 11ª. Herramientas de soporte potentes y económicas . Información sobre PIC La información sobre PIC en libros y revistas de electrónica es grande. Prácticamente no hay un número de una revista de electrónica que no publique al menos un artículo con microcontroladores, sobre todo PIC y para hacer hasta lo mas simple. Pero la información
que existe en internet es enorme. Existen multitud de páginas web, foros, grupos de noticias y sitios ftp con aspectos relacionados con los microcontroladores, pero sobre todo con los PIC. Libros de interés: •
"Microcontroladores PIC diseño práctico de aplicaciones". Ed Mac Graw Gil. José Mª Angulo Usategui / Ignacio Angulo Martinez Este libro es bastante práctico y desarrolla pequeños programas en orden de dificultad creciente. Bueno para iniciarse en el PIC. Está orientado al 16X84. •
DISP DISPOS OSIT ITIV IVOS OS LÓGI LÓGICO COS S MIC MICRO ROPR PROG OGRA RAMA MABL BLES ES
Micr Microc ocon ontr trol olad ador ores es PIC PIC
Tipos de PIC Para Para resolv resolver er aplica aplicacio ciones nes sencil sencillas las se precis precisan an pocos pocos recurs recursos; os; en cambio cambio,, las aplicaciones grandes requieren numerosos y potentes. Siguiendo esta filosofía, Microchip construye diversos modelos de microcontroladores orientados a cubrir, las necesidades de cada cada proye proyecto cto.. Así, Así, hay dispo disponib nibles les microc microcont ontrola rolador dores es sencil sencillos los y barato baratoss para para atender las aplicaciones simples y otros complejos y más costosos para las de mucha envergadura. La mayoría de los sistemas de control incrustados requieren CPU, memoria de datos, memo memoria ria de inst instru rucc ccio ione nes, s, línea líneass de E/S, E/S, y dive divers rsas as func funcio ione ness auxi auxililiar ares es como como temporizadores, comunicación serie y otras. La capacidad y el tipo de las memorias, el número de líneas de E/S y el de temporizadores, así como circuitos auxiliares, son paráme parámetro tross que que depen dependen den exclu exclusiv sivame amente nte de la aplica aplicació ción n y varía varían n mucho mucho de una situación a otra. Quizás se pueda considerar la decisión más importante del proyecto la elec elecci ción ón del del mode modelo lo de micr microc ocon ontro trola lado dorr. Para Para adap adapta tars rse e de form forma a ópti óptima ma a las las necesidades de los usuarios, Microchip ofrece diversos tipos de microcontroladores de 8 bits. La mejor manera de mantenerse informado sobre los PIC es mediante la página del fabricante, www.microchip.com , en ella se mantiene la información actualizada de todos los dispositivos en producción, se pueden buscar según varios criterios y se ofrecen en form formta tato to PDF PDF (en (en ingl inglés és y chin chino) o) las las hoja hojass de cara caract cter erís ístic ticas as de los los disp dispos osititiv ivos os.. Aproximadamente, cada seis meses aparece un dispositivo nuevo. Pueden tomarse diversas maneras de clasificar los PIC y ninguna puede considerarse definitiva, debido a la rápida evolución de estos dispositivos. A continuación se presentan distintas formas de clasificar a los PIC, según diversos aspectos: •
Familia de productos PIC10 PIC12 PIC14 PIC16 PIC17 PIC18 Tipo de memoria FLASH OTP ROM Número de patillas E/S • • • • • •
•
• • •
4 - 17 patillas 18 - 27 patillas 28 - 44 patillas 45 - 80 patillas Tamaño de memoria (bytes) 0.5K - 1K 2K - 4K 8K - 16K 24K -32K 48K - 64K 96K - 128K En la clasificación por familias, las principales diferencias radican en el número de instrucciones y su longitud, el número de puertos y funciones, lo cual se refleja en el encapsulado, la complejidad interna y de programación, y en el número de aplicaciones. • • • •
•
• • • • • •
DIS DISPOSI POSIT TIVOS IVOS LÓG LÓGIC ICOS OS MIC MICR ROPRO OPROG GRAMA RAMABL BLES ES
Micr Microc ocon ontr trol olad ado ores res PIC PIC
A continuación continuación exponemos algunas características interesantes de algunos tipos de PIC: PIC de 8 patillas Se trat trata a de un grup grupo o de PIC PIC bast bastan ante te difu difund ndid idos os en el merc mercad ado. o. Su prin princi cipa pall característica es su reducido tamaño, al disponer todos sus componentes de 8 patitas. Se alimentan con un voltaje de corriente continua comprendido entre 2,5 V y 5,5 V, y con consume sumen n meno menoss de 2 mA cuand uando o trab traba ajan jan a 5 V y 4 MHz MHz. El form format ato o de sus instrucciones puede ser de 12 o de 14 bits y su repertorio es de 33 o 35 instrucciones, respectivamente. En la siguiente figura se muestra el diagrama de conexionado de uno de estos PIC.
Aunque sólo tienen 8 patillas, pueden destinar hasta 6 como líneas de E/S para los periféricos al disponer de un oscilador interno R-C, lo cual es una de su principales características. Los modelos 12C5xx tienen instrucciones de 12 bits; mientras que los 12C6xx tienen instrucciones de 14 bits. Los modelos 12F6xx poseen memoria Flash para el programa y EEPROM para los datos.
Se trat rata de una serie recursos limitados, pero con una buena relación coste/prestaciones. Disponen de 18, 20 o 28 patillas y pueden alimentarse a partir de una tensión de 2,5 V, lo que les hace ideales en las aplicaciones que funcionan con pilas teniendo en cuenta su bajo consumo (menos de 2 mA a 5 V y 4 MHz). Tienen un repertorio de 33 instrucciones cuyo formato consta de 12 bits. No admiten ningún tipo de interrupción y la Pila sólo dispone de dos niveles. Poseen memoria de programa tipo OTP (16C5X) o ROM (16CR5X).
DISP DISPOS OSIT ITIV IVOS OS LÓGIC LÓGICOS OS MICRO MICROPR PROG OGRA RAMA MABLE BLES S
Micr Microc ocon ontr trol olad ador ores es PIC
PIC16XXX con instrucciones de 14 bits Es la gama más variada y completa de los PIC. Abarca modelos con encapsulado a partir de 18 patillas, cubriendo varias opciones que integran abundantes periféricos. Dentro de esta gama se halla el conocido PIC16X84 y sus variantes. En la siguiente figura se muestra el diagrama de conexionado de uno de estos PIC.
En esta gama sus componentes añaden nuevas prestaciones a las que poseían los de gamas inferiores, haciéndoles más adecuados en las aplicaciones complejas. Admiten interrupci interrupciones, ones, poseen poseen comparado comparadores res de magnitude magnitudess analógica analógicas, s, convertido convertidores res A/D, puertos serie y diversos temporizadores. El repertorio de instrucciones es de 35, de 14 bits cada una y compatible con gamas inferiores. Sus distintos modelos contienen todos los recursos que se precisan en las
aplicaciones de microcontroladores de 8 bits. También dispone de interrupciones y una Pila de 8 niveles que permite el anidamiento de subrutinas. El temporizador TMR1 que hay en algunos PIC de esta gama tiene un circuito oscilador que puede ede trab traba ajar jar asín asíncr cron ona ament mente e y que pued uede inc increme remen ntars tarse e aunq unque el microcontrolador se halle en el modo de reposo (sleep), posibilitando la implementación de un reloj en tiempo real. Las líneas de E/S presentan una carga “pull-up” activada por software. PIC14000 Dentro de esta gama se encuentra el PIC14000, que soporta el diseño de controladores inteli inteligen gentes tes para para cargad cargadore oress de baterí baterías, as, pilas pilas pequeñ pequeñas, as, fuente fuentess de alimen alimentac tación ión ininterrumpibles y cualquier sistema de adquisición y procesamiento de señales que requ requie iera ra gest gestió ión n de la ener energí gía a de alim alimen enta taci ción ón.. Los Los PIC1 PIC140 4000 00 admi admite ten n cual cualqu quie ier r tecnología de las baterías como Li-Ion, NiMH, NiCd, Ph y Zinc. PIC17CXXX con instrucciones de 16 bits Se alcanzan las 58 instrucciones de 16 bits en el repertorio y sus modelos disponen de un sistema de gestión de interrupciones vectorizadas muy potente. También incluyen variad variados os contro controlad ladore oress de perifé periféric ricos, os, puerta puertass de comuni comunicac cación ión serie serie y parale paralelo lo con elementos externos, un multiplicador hardware de gran velocidad y mayores capacidades de memoria, que alcanza los 8 k palabras en la memoria de instrucciones y 454 bytes en la memoria de datos.
ZONA HUMORISTICA
La viñeta de la semana AHI ESTA LA EVOLUCION
NO QUISIERA SER UN PAVO JA JA
SI ES ASI PREFIERO TENER UN GATO