Los
PIC son una familia de microcontroladores tipo RISC fabricados por Microchip,
Su primer antecesor fue creado en 1975 el PIC1650, originalmente desarrollado
por la división de microelectrónica de General Instrument. El nombre verdadero de este microcontrolador
es PICmicro, Peripheral Interface Controller (controlador de interfaz
periférico), conocido bajo el nombre PIC. Este chip denominado PIC1650 fue
diseñado para propósitos completamente diferentes. Diez años más tarde, al
añadir una memoria EEPROM, este circuito se convirtió en un verdadero
microcontrolador PIC.
Los
detalles más importantes que atraen a los profesionales de la microelectrónica
y microinformática y las razones de la excelente acogida que tienen los PIC son
los siguientes:
- Sencillez de manejo: Tienen un juego de
instrucciones reducido; 33 gama baja, 35 en la gama media, 75 gama alta.
- Buena información, fácil de conseguir y
económica.
- Precio: Su coste es comparativamente inferior
al de sus competidores.
- Poseen una elevada velocidad de funcionamiento.
Buen promedio de parámetros: velocidad, consumo, tamaño, alimentación, código
compacto, etc.
- Herramientas de desarrollo fáciles y baratas.
Muchas herramientas software se pueden recoger libremente a través de Internet
desde Microchip (http://www.microchip.com).
- Existe una gran variedad de herramientas
hardware que permiten grabar, depurar, borrar y comprobar el comportamiento de
los PIC.
- La gran variedad de modelos de PIC permite elegir
el que mejor responde a los requerimientos de la aplicación.
- Una de las razones del éxito de los PIC se basa
en su utilización. Cuando se aprende a manejar uno de ellos, conociendo su
arquitectura y su repertorio de instrucciones, es muy fácil emplear otro
modelo.
- Diversidad de modelos de microcontroladores con
prestaciones y recursos diferentes. La gran variedad de modelos de
microcontroladores PIC permite que el usuario pueda seleccionar el más
conveniente para su proyecto.
- Herramientas de soporte potentes y económicas.
La empresa Microchip y otras que utilizan los PIC ponen a disposición de los
usuarios numerosas herramientas para desarrollar hardware y software. Son muy
abundantes los programadores, los simuladores software, los emuladores en tiempo
real, Ensambladores, Compiladores C, Intérpretes y Compiladores BASIC, etc.
- La arquitectura Harvard y la técnica de
segmentación son los principales recursos en los que se apoya el elevado
rendimiento que caracteriza estos dispositivos programables, mejorando dos
características esenciales:
1.
Velocidad de ejecución.
2.
Eficiencia en la compactación del código.
- · Líneas de E/S de alta corriente. Las líneas de
E/S de los PIC pueden proporcionar o absorber una corriente de salida de hasta
25 mA, capaz de excitar directamente ciertos periféricos como led o microrelés
tipo REED.
The PICs are a family of RISC microcontrollers manufactured by Microchip. Its first predecessor was created in 1975 the PIC1650, originally developed by the General Instrument microelectronics division. The real name of this microcontroller is PICmicro, Peripheral Interface Controller (peripheral interface controller), known under the name PIC. This chip called PIC1650 was designed for completely different purposes. Ten years later, by adding an EEPROM, this circuit became a true PIC microcontroller.
The most important details that attract professionals in microelectronics and microinformatics and the reasons for the excellent reception of PICs are the following:
- Simplicity of management: They have a reduced set of instructions; 33 low-end, 35 in the mid-range, 75 high-end.
- Good information, easy to get and economical.
- Price: Its cost is comparatively lower than its competitors.
- They have a high speed of operation. Good average of parameters: speed, consumption, size, power, compact code, etc.
- Easy and inexpensive development tools. Many software tools can be freely collected through the Internet from Microchip (http://www.microchip.com).
- There is a wide variety of hardware tools that allow recording, debugging, deleting and checking the behavior of PICs.
- The wide variety of PIC models allows you to choose the one that best meets the requirements of the application.
- One of the reasons for the success of the PICs is based on their use. When you learn to manage one of them, knowing its architecture and its repertoire of instructions, it is very easy to use another model.
- Diversity of microcontroller models with different features and resources. The wide variety of models of PIC microcontrollers allows the user to select the most suitable for their project.
- Powerful and economic support tools. The company Microchip and others that use the PICs make available to users numerous tools to develop hardware and software. Programmers, software simulators, real-time emulators, assemblers, C-compilers, BASIC interpreters and compilers, etc. are very abundant.
- The Harvard architecture and the segmentation technique are the main resources on which the high performance that characterizes these programmable devices is based, improving two essential characteristics:
1. Speed of execution.
2. Efficiency in the compaction of the code.
- · High current I / O lines. The I / O lines of the PICs can provide or absorb an output current of up to 25 mA, capable of directly exciting certain peripherals such as led or micro relays type REED.
GAMAS DE PIC
Una
de las labores más importantes del ingeniero de diseño es la elección del
microcontrolador que mejor satisfaga las necesidades del proyecto con el mínimo
presupuesto. Para resolver aplicaciones sencillas se precisan pocos recursos,
en cambio, las aplicaciones grandes requieren numerosos y potentes. Siguiendo
esta filosofía Microchip construye diversos modelos de microcontroladores
orientados a cubrir, de forma óptima, las necesidades de cada proyecto. Así,
hay disponibles microcontroladores sencillos y baratos para atender las
aplicaciones simples y otros complejos y más costosos para las de mucha
envergadura.
Microchip
dispone de cuatro familias de microcontroladores de 8 bits para adaptarse a las
necesidades de la mayoría de los clientes potenciales. En la mayor parte de la
bibliografía encontrará tan solo tres familias de microcontroladores, con lo
que habrán despreciado la llamada gama enana, que es en realidad una subfamilia
formada por componentes pertenecientes a las otras gamas. En nuestro caso hemos
preferido comentarla dado que los PIC enanos son muy apreciados en las
aplicaciones de control de personal, en sistemas de seguridad y en dispositivos
de bajo consumo que gestionan receptores y transmisores de señales. Su pequeño
tamaño los hace ideales en muchos proyectos donde esta cualidad es fundamental.
LA GAMA ENANA: PIC12CXXX DE 8
PINES CON INSTRUCCIONES DE 12 /14 BIT
Su
principal característica es su reducido tamaño, al disponer todos sus
componentes de 8 pines. Se alimentan con un voltaje de corriente continua
comprendido entre 2,5 V y 5,5 V, y consumen menos de 2 mA cuando trabajan a 5 V
y 4 MHz. El formato de sus instrucciones puede ser de 12 o de 14 bits y su
repertorio es de 33 o 35 instrucciones, respectivamente. En la Figura se
muestra el diagrama de conexionado de uno de estos PIC.
Figura
Diagrama de conexiones de los PIC12CXXX de la gama enana.
Aunque
los PIC enanos sólo tienen 8 pines, pueden destinar hasta 6 como líneas de E/S
para los periféricos porque disponen de un oscilador interno R-C.
Los
modelos 12C5xx pertenecen a la gama baja, siendo el tamaño de las instrucciones
de 12 bits; mientras que los 12C6xx son de la gama media y sus instrucciones
tienen 14 bits. Los modelos 12F6xx poseen memoria Flash para el programa y
EEPROM para los datos.
GAMA BAJA O BÁSICA: PIC16C5X
CON INSTRUCCIONES DE 12 BITS
Figura 2
Diagrama de pines de los PIC de la gama baja que responden a la nomenclatura
PIC16C54/56.
Se
trata de una serie de PIC de recursos limitados, pero con una de las mejores
relaciones coste/prestaciones. Sus versiones están encapsuladas con 18 y 28
pines 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.
Para
terminar el comentario sobre los componentes de la gama baja conviene nombrar
dos restricciones importantes:
- ·
La pila sólo dispone de dos niveles lo que
supone no poder encadenar más de dos subrutinas.
- ·
Los microcontroladores de la gama baja no
admiten interrupciones.
GAMA MEDIA. PIC16FXXX CON
INSTRUCCIONES DE 14 BITS
Es
la gama más variada y completa de los PIC. Abarca modelos con encapsulado desde
18 pines hasta 68, cubriendo varias opciones que integran abundantes
periféricos. Dentro de esta gama se halla el «fabuloso PIC16X84» y sus
variantes.
El
16F877 y 16F84A son uno de los modelos más representativos de la gama media. En
esta gama sus componentes añaden nuevas prestaciones a las que poseían los de
la gama baja, haciéndoles más adecuados en las aplicaciones complejas. Admiten
interrupciones, poseen comparadores de magnitudes analógicas, convertidores
A/D, puertos serie y diversos temporizadores. El repertorio de instrucciones es
de 35, de 14 bits cada una y compatible con el de la gama baja. Sus distintos
modelos contienen todos los recursos que se precisan en las aplicaciones de los
microcontroladores de 8 bits. También dispone de interrupciones y una Pila de 8
niveles que permite el anidamiento de subrutinas. En la Tabla 2.3 se presentan
las principales características de los modelos de esta familia.
Encuadrado
en la gama media también se halla la versión PIC14C000, que soporta el diseño
de controladores inteligentes para cargadores de baterías, pilas pequeñas,
fuentes de alimentación ininterrumpibles y cualquier sistema de adquisición y
procesamiento de señales que requiera gestión de la energía de alimentación.
Los PIC 14C000 admiten cualquier tecnología de las baterías como Li-Ion, NiMH,
ect, Ph y Zinc. El temporizador TMR1 que hay en esta gama 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. Las líneas de E/S presentan una
carga “pull-up” activada por software.
GAMA ALTA: PIC17CXXX, PIC18FXXXX
CON
INSTRUCCIONES DE 16 BITS
Se
alcanzan hasta las 75 instrucciones de 16 bits (wide instructions o ancho de
instrucción) en el repertorio y sus modelos (algunos de la serie 17CXXXX)
disponen de un sistema de gestión de interrupciones vectorizadas (cada
interrupción tiene una dirección única) y priorizadas (low or high priority)
muy potente. También incluyen variados controladores de periféricos, puerto USB
2.0 de alta y baja velocidad, puertas de comunicación serie y paralelo con
elementos externos, un multiplicador hardware de gran velocidad y mayores
capacidades de memoria, que alcanza más de 32 KByte en la memoria de
instrucciones y hasta 2048 bytes en la memoria de datos.
Quizás
la característica más destacable de los componentes de esta gama (17CXXX) es su
arquitectura abierta, que consiste en la posibilidad de ampliación del
microcontrolador con elementos externos. Para este fin, los pines pueden
ofrecer al exterior las líneas de los buses de datos, direcciones y control, a
las que se conectan memorias o controladores de periféricos. Esta facultad
obliga a estos componentes a tener un elevado número de pines comprendido entre
40 y 44. Esta filosofía de construcción del sistema es la que se empleaba en
los microprocesadores y no suele ser una práctica habitual cuando se emplean
microcontroladores.
COMPARACION ENTRE GAMA ALTA
(18FXXXX) Y LAS OTRAS GAMAS DE MICROCHIP (16XXXX, 14XXXX, 12XXXX)
Un
PIC 18F452 dispone hasta de 32K bytes = 16KWord de memoria de programa y
considerando que cada instrucción o renglón de programa consume 2 bytes (16
bit) entonces el número real de líneas que se puede programar en un PIC 18FXXXX
es 16384 (la familia 16F87X sólo tiene 8164).
La memoria RAM es de máximo 2048
bytes (la familia 16F87X sólo tiene 368), es decir, puedo declarar un total de
2048 variables de 8 bit ó 1024 variables de 16 bit las cuales se encuentran distribuidas
en bancos de 256 variables cada uno. La memoria EEPROM de dato es de 256 bytes.
Por otra parte cabe destacar que posee 31 niveles de pila (level stack) versus
8 niveles de pila de la familia gama media 16F87X. Recordemos que los niveles
de pila aluden al número de subrutinas o llamados (CALL) anidados que se pueden
realizar en la programación sin regresar (RETURN). Otra ventaja trascendental
de la familia gama alta 18FXXXX sobre la gama media 16FXXX alude a la memoria
de programa lineal direccionable hasta 32K de la familia 18FXXXX, lo cual
elimina el gran inconveniente relacionado con la engorrosa paginación que se
debe hacer con la familia gama media después de las 2048 primeras líneas de
programa debido a que las instrucciones GOTO, CALL, RETURN no funcionan si la
etiqueta o subrutina invocada no está en la misma página de memoria.
La familia
18FXXXX tiene la opción de activar “Prioridad de Interrupciones” alta o baja
(High priority or Low Priority), lo cual es útil en ciertas aplicaciones. Los
μC 18FXXXX con la opción PLL (Phase Locked Loop) activa puede multiplicar la
frecuencia del cristal por 4, en efecto, con un cristal de 10MHz y el PLL
activo puede operar a 40MHz, lo cual implica 10MIPs (millones de instrucciones
por segundo) versus los 20MHz máximo (5MIPs) de la gama media. La gama alta
también puede multiplicar un byte por un byte con una instrucción simple
(MULWF) y soporta compilación en lenguaje C.
VENTAJAS DE GAMA ALTA Vs GAMA
MEDIA
·
Un PIC 18FXXXX dispone de hasta 32K bytes =
16KWord de memoria de programa y considerando que cada instrucción o renglón de
programa consume 2 bytes (16 bit) entonces el número máximo y real de líneas
que puedo programar en un PIC 18FXXXX es 16384 instrucciones (la familia 16F87X
sólo soporta 8164 instrucciones de 14 bits).
·
La memoria RAM máxima es de 2048 bytes para la
familia 18FXXXX y 1536 para la familia 18FXX2 (la familia 16F87X sólo tiene
368), es decir, puedo declarar un total de 2048 variables de 8 bit ó 1024 variables
de 16 bit (tipo word) las cuales se encuentran distribuidas en bancos de 256
variables cada uno.
·
La memoria EEPROM de dato es de 256 bytes,
igual a la gama media 16F87X.
·
31 niveles de pila (level stack) versus 8
niveles de pila de la familia gama media 16F87X y 2 niveles de la gama baja.
Los niveles de pila aluden al número de subrutinas o llamados (CALL) anidados
que se pueden realizar en la programación sin regresar (RETURN).
·
La memoria de programa lineal direccionable
hasta 32K: la familia 18FXXXX elimina el gran inconveniente relacionado con la
paginación que se debe hacer con la familia gama media después de las 2048
primeras líneas de programa debido a que las instrucciones GOTO, CALL, RETURN
no funcionan si la etiqueta o subrutina invocada no está en la misma página de
memoria.
·
La familia 18F tiene la opción de activar
“Prioridad de Interrupciones” (léase praióriri interrupshions) alta o baja
(High priority or Low Priority), lo cual es útil en ciertas aplicaciones.
·
Los μC 18F con la opción PLL (Phase Locked
Loop) activa puede multiplicar la frecuencia del cristal por 4, en efecto, con
un cristal de 12MHz y el PLL activo puede operar a 48MHz, lo cual implica
12MIPs (millones de instrucciones por segundo) versus los 20MHz máximo (5MIPs)
de la gama media. La máxima frecuencia de operación es de 48MHz para la familia
18FXXXX y 40 MHz para la familia 18FXX2.
·
La gama alta puede multiplicar un byte por un
byte con una instrucción simple (MULWF)
·
La gama alta soporta compilación en lenguaje C
de Microchip
·
Pese a las obvias ventajas de la gama alta 18F
sobre la gama media la diferencia de precios no es muy significativa, alrededor
de un 20 %.
·
La familia 18F amplió el set de instrucciones a
75, vs 35 de la gama media.
·
La familia 18F mediante el registro BSR brinda
la opción de prescindir del confuso concepto (para algunos programadores) de
bancos de memoria para configurar o manipular los registros de propósito
general (GPR) o registros de función especial (FSR), tiene memoria de dato
lineal direccionable hasta 1536 byte.
·
La familia PIC18F2455/2550/4455/4550 posee
Módulo USB 2.0 low speed (1.5Mbps) y full speed (12Mbps) interno para
comunicación con PC a alta velocidad.
·
La familia PIC18F2455/2550/4455/4550 posee
oscilador interno programable de 31KHz a 8MHz.
·
La familia PIC18F2455/2550/4455/4550 posee WDT
con período extendido y programable de 41mS a 131 seg.
·
La familia 18FXXXX tiene en su interior un
módulo conversor A/D de hasta 13 canales, la familia 18FXX2 sólo tiene 8
canales, igual que la familia 16F87X.