Sei sulla pagina 1di 8

Microcontrolador PIC

1
Microcontrolador PIC
General Instrument PIC1650.
Viejos microcontroladores PIC (EPROM).
Los PIC son una familia de microcontroladores tipo RISC fabricados
por Microchip Technology Inc. y derivados del PIC1650,
originalmente desarrollado por la divisin de microelectrnica de
General Instrument.
El nombre actual no es un acrnimo. En realidad, el nombre completo
es PICmicro, aunque generalmente se utiliza como Peripheral
Interface Controller (controlador de interfaz perifrico).
El PIC original se dise para ser usado con la nueva CPU de 16 bits
CP16000. Siendo en general una buena CPU, sta tena malas
prestaciones de entrada y salida, 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 microcdigo simple almacenado en ROM para
realizar estas tareas; y aunque el trmino no se usaba por aquel
entonces, se trata de un diseo RISC que ejecuta una instruccin cada 4
ciclos del oscilador.
En 1985 la divisin de microelectrnica de General Instrument se
separa como compaa independiente que es incorporada como filial
(el 14 de diciembre de 1987 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 mayora estaban
obsoletos. El PIC, sin embargo, se mejor con EPROM para conseguir un controlador de canal programable. Hoy en
da multitud de PIC vienen con varios perifricos incluidos (mdulos de comunicacin serie, UART, ncleos de
control de motores, etc.) y con memoria de programa desde 512 a 32000 palabras (una palabra corresponde a una
instruccin en lenguaje ensamblador, y puede ser de 12, 14, 16 o 32 bits, dependiendo de la familia especfica de
PICmicro).
Juego de instrucciones y entorno de programacin
El PIC usa un juego de instrucciones, cuyo nmero puede variar desde 35 para PIC 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 posicin de memoria, instrucciones de condicionamiento y de salto/retorno,
implementacin 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. Otras empresas desarrollan compiladores C y BASIC. Microchip tambin vende compiladores para los
PIC de gama alta ("C18" para la serie F18 y "C30" para los dsPIC) y se puede descargar una edicin para estudiantes
del C18 que inhabilita algunas opciones despus de un tiempo de evaluacin.
Para el lenguaje de programacin Pascal existe un compilador de cdigo abierto, JAL, lo mismo que PicForth para el
lenguaje Forth. GPUTILS es una coleccin de herramientas distribuidas bajo licencia GPL que incluye ensamblador
y 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 ms modernos y completos compiladores para lenguaje C es [mikroC], que es un ambiente de desarrollo
con editor de texto, bibliotecas con mltiples funciones para todos los mdulos y herramientas incorporadas para
facilitar enormemente el proceso de programacin.
Microcontrolador PIC
2
Arquitectura central
La arquitectura del PIC es sumamente minimalista. Est caracterizada por las siguientes prestaciones:
rea de cdigo y de datos separadas (Arquitectura Harvard).
Un reducido nmero de instrucciones de longitud fija.
Implementa segmentacin de tal modo que la mayora de instrucciones duran 1 tiempo de instruccin (o 4
tiempos de reloj). Pueden haber instrucciones de dos tiempos de instruccin (saltos, llamadas y retornos de
subrutinas y otras) o inclusive con ms tiempo de instruccin en PIC de gama alta. Esto implica que el
rendimiento real de instrucciones por segundo del procesador es de al menos 1/4 de la frecuencia del oscilador.
Un solo acumulador (W), cuyo uso (como operador de origen) es implcito (no est especificado en la
instruccin).
Todas las posiciones de la RAM funcionan como registros de origen y/o de destino de operaciones matemticas y
otras funciones.
[1]
Una pila de hardware para almacenar instrucciones de regreso de funciones.
Una relativamente pequea cantidad de espacio de datos direccionable (tpicamente, 256 bytes), extensible a
travs de manipulacin de bancos de memoria.
El espacio de datos est relacionado con el CPU, puertos, y los registros de los perifricos.
El contador de programa est tambin relacionado dentro del espacio de datos, y es posible escribir en l
(permitiendo saltos indirectos).
A diferencia de la mayora de otros CPU, no hay distincin entre los espacios de memoria y los espacios de registros,
ya que la RAM cumple ambas funciones, y 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 propsito general. Los
registros de propsito especfico para los recursos de hardware disponibles dentro del propio chip tambin estn
direccionados en la RAM. La direccionabilidad de la memoria vara dependiendo de la lnea de dispositivos, y todos
los dispositivos PIC tienen algn tipo de mecanismo de manipulacin de bancos de memoria que pueden ser usados
para acceder memoria externa o adicional. Las series ms recientes de dispositivos disponen de funciones que
pueden cubrir todo el espacio direccionable, independientemente del banco de memoria seleccionado. En los
dispositivos anteriores, esto deba lograrse mediante el uso del acumulador.
Para implementar direccionamiento indirecto, se usa un registro de "seleccin de registro de archivo" (FSR) y uno de
"registro indirecto" (INDF): Un nmero de registro es escrito en el FSR, haciendo que las lecturas o escrituras al
INDF sern realmente hacia o desde el registro apuntado por el FSR. Los dispositivos ms recientes extienden este
concepto con post y preincrementos/decrementos para mayor eficiencia al acceder secuencialmente a la informacin
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.
Tamao de palabra
El tamao de palabra de los microcontroladores PIC es fuente de muchas confusiones. Todos los PIC (excepto los
dsPIC) manejan datos en trozos de 8 bits, con lo que se deberan llamar microcontroladores de 8 bits. Pero a
diferencia de la mayora de las CPU, el PIC usa arquitectura Harvard, por lo que el tamao de las instrucciones
puede ser distinto del de la palabra de datos. De hecho, las diferentes familias de PIC usan tamaos de instruccin
distintos, lo que hace difcil comparar el tamao del cdigo 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
Microcontrolador PIC
3
para uno de 16 bits, 3072 palabras.
Programacin del PIC
Para transferir el cdigo de un ordenador al PIC normalmente se usa un dispositivo llamado programador. La
mayora de PIC que Microchip distribuye hoy en da incorporan ICSP (In Circuit Serial Programming,
programacin serie incorporada) o LVP (Low Voltage Programming, programacin 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 programacin aplicando un voltaje de 13 voltios. Existen muchos programadores de PIC, desde los ms
simples que dejan al software los detalles de comunicaciones, a los ms complejos, que pueden verificar el
dispositivo a diversas tensiones de alimentacin e implementan en hardware casi todas las funcionalidades. Muchos
de estos programadores complejos incluyen ellos mismos PIC preprogramados como interfaz para enviar las rdenes
al PIC que se desea programar. Uno de los programadores ms simples es el TE20, que utiliza la lnea TX del puerto
RS232 como alimentacin y las lneas DTR y CTS para mandar o recibir datos cuando el microcontrolador est en
modo programacin. El software de programacin puede ser el ICprog, muy comn entre la gente que utiliza este
tipo de microcontroladores. Entornos de programacin basados en intrpretes BASIC ponen al alcance de cualquiera
proyectos que parecieran ser ambiciosos.
Se pueden obtener directamente de Microchip muchos programadores/depuradores (octubre de 2005):
Un buena recopilacin de herramientas de desarrollo para PIC puede encontrarse Aqu.
[2]
(Mayo de 2009).
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 1.25 (puerto USB2.0 para PIC y Atmel)
WinPic 800 (puerto paralelo, serie y USB)
PICKit 2 (USB)
PICKit 3 (USB)
Terusb1.0
Eclipse (PIC y AVR. USB)
MasterProg (USB)
Microcontrolador PIC
4
Depuradores integrados
ICD (Serie)
ICD2 (Serie o full speed USB - 2 Mbits/s)
ICD3 (High speed USB - 480 Mbits/s)
Emuladores
Proteus - ISIS
ICE2000 (puerto paralelo, convertidor a USB disponible)
ICE4000 (USB)
PIC EMU
ISEC
PIC CDlite
PIC Simulator
Crocodrile Clips
Caractersticas
Los PIC actuales vienen con una amplia gama de mejoras hardware incorporadas:
Ncleos 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 (tpicamente 0 a 5.5 voltios)
Temporizadores de 8/16/32 bits
Tecnologa Nanowatt para modos de control de energa
Perifricos serie sncronos y asncronos: USART, AUSART, EUSART
Conversores analgico/digital de 8-10-12 bits
Comparadores de tensin
Mdulos de captura y comparacin PWM
Controladores LCD
Perifrico MSSP para comunicaciones IC, SPI, y IS
Memoria EEPROM interna con duracin de hasta un milln de ciclos de lectura/escritura
Perifricos de control de motores
Soporte de interfaz USB
Soporte de controlador Ethernet
Soporte de controlador CAN
Soporte de controlador LIN
Soporte de controlador Irda
Microcontrolador PIC
5
Variaciones del PIC
PIC modernos
Los viejos PIC con memoria PROM o EPROM se estn 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 todava vende versiones PROM y EPROM de la mayora de los
PIC para soporte de aplicaciones antiguas o grandes pedidos.
Se pueden considerar tres grandes gamas de MCU PIC en la actualidad: Los bsicos (Linebase), los de medio rango
(Mid Range) y los de alto desempeo (high performance). Los PIC18 son considerandos de alto desempeo y tienen
entre sus miembros a PIC con mdulos de comunicacin y protocolos avanzados (USB, Ethernet, Zigbee por
ejemplo).
Clones del PIC
Por todos lados surgen compaas que ofrecen versiones del PIC ms baratas o mejoradas. La mayora suelen
desaparecer rpidamente. Una de ellas que va perdurando es Ubicom (antiguamente Scenix) que vende clones del
PIC que funcionan mucho ms rpido que el original. OpenCores tiene un ncleo del PIC16F84 escrito en Verilog.
PIC inalmbricos
El microcontrolador rfPIC integra todas las prestaciones del PICmicro de Microchip con la capacidad de
comunicacin inalmbrica UHF para aplicaciones RF de baja potencia. Estos dispositivos ofrecen un diseo muy
comprimido para ajustarse a los cada vez ms demandados requerimientos de miniaturizacin en aparatos
electrnicos. Aun as, no parecen tener mucha salida en el mercado.
PIC para procesado de seal (dsPIC)
Los dsPIC son el penltimo lanzamiento de Microchip, comenzando a producirlos a gran escala a finales de 2004.
Son los primeros PIC con bus de datos inherente de 16 bits. Incorporan todas las posibilidades de los anteriores PIC
y aaden varias operaciones de DSP implementadas en hardware, como multiplicacin con suma de acumulador
(multiply-accumulate, o MAC), barrel shifting, bit reversion o multiplicacin 16x16 bits.
PIC de 32 bits (PIC32)
Microchip Technology lanz en noviembre de 2007 los nuevos microcontroladores de 32 bits con una velocidad de
procesamiento de hasta 1.6 DMIPS/MHz con capacidad HOST USB. Sus frecuencias de reloj pueden alcanzar los
80MHz a partir de cuarzos estndares de 4 a 5MHz gracias a un PLL interno. Funcionan a 3.3V en sus puertos de
entrada y salida, aunque el fabricante indica que salvo en los pines con funcin analgica, en la mayora se toleran
tensiones de hasta 5V. Disponen de una arquitectura optimizada con alto grado de paralelismo y ncleo de tipo M4K
y una elevada capacidad de memoria RAM y FLASH ROM. Todo ello hace que estos MCUs permiten un elevado
procesamiento de informacin.
Microcontrolador PIC
6
PIC ms comnmente usados
PIC12C508/509 (Encapsulamiento reducido de 8 pines, oscilador interno, popular en pequeos diseos como el
iPod remote).
PIC12F629/675
PIC16F84 (Considerado obsoleto, pero imposible de descartar y muy popular)
PIC16F84A (Actualizacin del anterior, la A indica que cuenta con mdulos de comparacin A/D, algunas
versiones funcionan a 20 MHz, compatible 1:1)
PIC16F628A/648A (Opciones tpicas para migrar o actualizar desde diseos antiguos hechos con el PIC16F84A.
Poseen mdulos de comparacin A/D, Capture & Compare CCP (PWM), comunicacin en serie USART y
oscilador interno, entre otras mejoras)
PIC16F88 (Nuevo sustituto del PIC16F84A y superior al PIC16F648A con ms memoria, oscilador interno,
USART, SSP, comparador y convertidor A/D. Muy popular).
PIC16F87X/87XA ("Hermanos mayores" del PIC16F84/84A, con cantidad de mejoras incluidas en hardware.
Bastante comn en proyectos de aficionados).
PIC16F886/887 (Nuevo sustituto del 16F876A y 16F877A con la diferencia que ahora ya incluye oscilador
interno, considerados los mas cercanos a la familia 18F).
PIC16F193x (Nueva gama media de PIC optimizado y con mucha RAM, ahora con 49 instrucciones frente al
conjunto de 35 mas comn).
PIC18F452
PIC18F2455 Con manejo de puerto USB 2.0
PIC18F2520/4520 Mltiples comparadores y convertidores A/D.
PIC18F2550/4550 Manejo de puertos USB 2.0 y muy verstil.
dsPIC30F2010
dsPIC30F3014
dsPIC30F3011 (Ideales para control electrnico de motores elctricos de induccin, control sobre audio, etc).
PIC32 (Nueva gama de PIC de 32 bits, los ms modernos son compatibles con USB 2.0).
PIC en Internet
Se puede encontrar extensa informacin y documentacin sobre PIC en Internet, principalmente por dos
motivos:
[citarequerida]
el primero, porque han sido muy usados para romper los sistemas de seguridad de varios
productos de consumo masivo (televisin paga, PlayStation, etc), lo que atrae la atencin de los cracker; y segundo,
porque el PIC16C84 fue uno de los primeros microcontroladores fcilmente 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.
Microcontrolador PIC
7
Monitorizacin y control va Internet
Con estos se pueden desarrollar sistemas sistemas SCADA, para adquirir y enviar datos al puerto serial de un
computador utilizando, por ejemplo, transmisin UART y el protocolo RS232, o implementando el protocolo
TCP/IP directamente para construir un sistema completamente embebido.
[3]
Enlaces externos
En espaol
Tutorial de programacin de PIC en Ensamblador
[4]
en la Asociacin de Robtica y Domtica de Espaa.
Proyelc,Tutoriales y Proyectos con microcontroladores PIC
[5]
TodoPIC,todo en microcontroladores PIC
[6]
MicroPIC, todo en microcontroladores PIC en espaol
[7]
Robots
[8]
Sitio de robtica con artculos de contenido tcnico y didctico
Tutorial de programacin PIC18F2550 y mdulo USB con Visual C#
[9]
Pgina de programacin de Microcontroladores PIC
[10]
En ingls
www.locxtronic.com - Tutorial for PIC Programming In BASIC
[11]
(en ingls).
http:/ / www. microchip. com
[12]
La pgina oficial del fabricante PIC y otros componentes electrnicos
semiconductores
Pgina con enlaces a los documentos originales del PIC1650
[13]
YaPIDE
[14]
Entorno de desarrollo y simulador para el PIC16F628 liberado bajo licencia GPL-2
PicForth
[15]
Grupo de discusin sobre el PIC
[16]
SDCC
[17]
Small Device C Compiler, an Open Source compiler for microcontrollers, PIC 16x and 18x support is a
WIP.
Belle Research
[18]
Gua para de programacin del PIC para principiantes
PIC Portal with huge Project database
[19]
(en ingls).
Referencias
[1] Hoja de datos de un 16F84 (pdf) (http:/ / ww1.microchip. com/ downloads/ en/ DeviceDoc/ 35007b. pdf), definicin de instrucciones de
lenguaje ensamblador de PIC16 e informacin sobre la RAM y su direccionabilidad.
[2] http:/ / electronicadesarrollo. blogspot.com/ 2009_05_03_archive. html
[3] PIC wifi projects (http:/ / www. libstock.com/ project_categories/ view/ 25/ wifi)
[4] http:/ / wiki. webdearde. com/ index. php/ Tutorial:_Programaci%C3%B3n_de_PICs_en_Ensamblador
[5] http:/ / proyelc. blogspot. com/
[6] http:/ / www. todopic.net
[7] http:/ / www. micropic.es
[8] http:/ / robots-argentina. com. ar/
[9] http:/ / www. migsantiago.com/ index.php?option=com_content& view=article& id=9& Itemid=10
[10] http:/ / www.conexionelectronica. com
[11] http:/ / www.locxtronic. com
[12] http:/ / www.microchip. com
[13] http:/ / www.idcomm. com/ personal/ ottosen
[14] http:/ / www.mtoussaint.de/ yapide. html
[15] http:/ / www.rfc1149. net/ devel/ picforth
[16] http:/ / www.embeddedrelated.com/ groups/ piclist/ 1. php
[17] http:/ / sdcc.sourceforge. net/
[18] http:/ / www.belleresearch. com/ beginnerpic.htm
[19] http:/ / www.picguide.org
Fuentes y contribuyentes del artculo
8
Fuentes y contribuyentes del artculo
Microcontrolador PIC Fuente: http://es.wikipedia.org/w/index.php?oldid=76899585 Contribuyentes: A. B., Aladaris, Aleposta, AlexFBP, Angel GN, Angeldefuego22, AqueronteBlog,
Axxgreazz, BL, Biasoli, BlackBeast, Bopo, Bucephala, Camiloasc1, CommonsDelinker, Damifb, Diegusjaimes, DominusDRR, Edmont, Erin2003, Forexpaul, Gaijin, Galandil, Gancuba,
Ganmedes, GermanX, HUB, Helmy oved, Imapix, JMPerez, Jcfidy, JesusCEsteban, Jkbw, JoaquinFerrero, Kved, LMLM, Leon.campoverde, Lloizaga, Lluvia, Lockman akim, Lraingele, Lucien
leGrey, MadriCR, Manolo456, Manuelferreria, Marcelo Huerta, Matdrodes, Mendezmh, Metaconta, Microc, Montgomery, Muro de Aguas, Murphy era un optimista, Museo8bits, Netito777,
Nicoguaro, Nicop, No s qu nick poner, PIC Suky, Plux, Rafa3040, Saloca, SergioN, Sermed, Shooke, Smrolando, Telfowiki2013, Todopic, UA31, Xavimetal, Xuankar, 247 ediciones
annimas
Fuentes de imagen, Licencias y contribuyentes
Archivo:PIC1655A GI.jpg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:PIC1655A_GI.jpg Licencia: Creative Commons Attribution-ShareAlike 3.0 Unported Contribuyentes:
Camillo, Glenn
Archivo:PIC16CxxxWIN.JPG Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:PIC16CxxxWIN.JPG Licencia: Creative Commons Attribution-ShareAlike 3.0 Unported
Contribuyentes: Camillo, Glenn
Licencia
Creative Commons Attribution-Share Alike 3.0
//creativecommons.org/licenses/by-sa/3.0/

Potrebbero piacerti anche