LA FAMILIA DE LOS PIC COMO ELECCIÓN.
1.1 Características relevantes.
1.1.3 Formato de las instrucciones.
1.1.5 Todas las instrucciones son ortogonales
1.1.6 Arquitectura basada en un “banco de registros”
1.1.7 Diversidad de modelos de microcontroladores con prestaciones y recursos diferentes
1.1.8 Herramientas de soporte potentes y económicas
1.2.1 La gama baja: PIC12C(F)XXX de 8 pines
1.2.2 Gama baja o básica: PIC16C5X con instrucciones de 12 bits.
1.2.3 Gama media. PIC16CXXX con instrucciones de 14 bits
1.2.4 Gama alta: PIC17CXXX con instrucciones de 16 bits.
¿Qué es lo que ocurre con los PIC?, ¿Por qué están en boca de todos?. Hemos buscado en multitud de bibliografía y realmente nadie da una respuesta concreta, pero una aproximación a la realidad puede ser esta:
Los PIC tienen “ángel”, tienen “algo” que fascina a los diseñadores, puede ser la velocidad, el precio, la facilidad de uso, la información, las herramientas de apoyo... . Quizás un poco de todo eso es lo que produce esa imagen de sencillez y utilidad. Es probable que en un futuro próximo otra familia de microcontroladores le arrebate ese “algo”.
Queremos constatar que para las aplicaciones más habituales (casi un 90%) la elección de una versión adecuada de PIC es la mejor solución; sin embargo, dado su carácter general, otras familias de microcontroladores son más eficaces en aplicaciones específicas, especialmente si en ellas predomina una característica concreta, que puede estar muy desarrollada en otra familia.
Los detalles más importantes que vuelven “locos” 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; 35 en la gama media.
â 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.
â Diseño rápido.
â 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.
Descripción de las características más representativas de los PIC:
La arquitectura del procesador sigue el modelo Harvard. En esta arquitectura, la CPU se conecta de forma independiente y con buses distintos con la memoria de instrucciones y con la de datos.
La arquitectura Harvard permite a la CPU acceder simultáneamente a las dos memorias. Además, propicia numerosas ventajas al funcionamiento del sistema como se irán describiendo.
Se aplica la técnica de segmentación (“pipe-line”) en la ejecución de 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 (un ciclo de instrucción equivale a cuatro ciclos de reloj).
Las instrucciones de salto ocupan dos ciclos al no conocer la dirección de la siguiente instrucción hasta que no se haya completado la de bifurcación.
El formato de todas las instrucciones es de la misma longitud
Todas las instrucciones de los microcontroladores de la gama baja tienen una longitud de 12 bits. Las de la gama media tienen 14 bits y más las de la gama alta. 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.
Procesador RISC (Computador de Juego de Instrucciones Reducido).
Los modelos de la gama baja disponen de un repertorio de 33 instrucciones, 35 los de la gama media y casi 60 los de la alta.
Cualquier instrucción puede manejar cualquier elemento de la arquitectura como fuente o como destino.
Esto significa que todos los objetos del sistema (puertas de E/S, temporizadores, posiciones de memoria, etc.) están implementados físicamente como registros.
La gran variedad de modelos de microcontroladores PIC permite que el usuario pueda seleccionar el más conveniente para su proyecto.
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.
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 encontraran tan solo tres familias de microcontroladores, con lo que habrán despreciado la llamada gama baja, que es en realidad una subfamilia formada por componentes pertenecientes a las otras gamas. En nuestro caso hemos preferido comentarla dado que los PIC bajas 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.
Se trata de un grupo de PIC de reciente aparición que ha acaparado la atención del mercado. 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 1.1 se muestra el diagrama de conexionado de uno de estos PIC.

Figura 1.1. Diagrama de conexiones de los PIC12Cxxx de la gama baja.
Aunque los PIC bajas 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.
En la Tabla 1.1 se presentan las principales características de los modelos de esta subfamilia, que el fabricante tiene la intención de potenciar en un futuro próximo. Los modelos 12C5xx pertenecen a la gama baja, siendo el tamaño de las instrucciones de 12 bits; mientras que los 12F6xx 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.
|
MODELO |
MEMORIA PROGRAMA |
MEMORIA DATOS |
FRECUENCIA MAXIMA |
LINEAS E/S |
ADC 8BITS |
TEMPORIZADORES |
PINES |
|
PIC12F508 |
512x12 |
25x8 |
4 MHz |
6 |
|
TMR0 + WDT |
8 |
|
PIC12F509 |
1024x12 |
41x8 |
4 MHz |
6 |
|
TMR0 + WDT |
8 |
|
PIC12F670 |
512x14 |
80x8 |
4 MHz |
6 |
|
TMR0 + WDT |
8 |
|
PIC12F671 |
1024x14 |
128x8 |
4 MHz |
6 |
2 |
TMR0 + WDT |
8 |
|
PIC12F672 |
2048x14 |
128x8 |
4 MHz |
6 |
4 |
TMR0 + WDT |
8 |
|
PIC12F680 |
512X12 FLASH |
80x8 16x8 EEPROM |
4 MHz |
6 |
4 |
TMR0 + WDT |
8 |
|
PIC12F681 |
1024x14 FLASH |
80x8 16x8 EEPROM |
4 MHz |
6 |
|
TMR0 + WDT |
8 |
Tabla 1.1. Características de los modelos PIC12C(F)XXX de la gama baja.
Se trata de una serie
de PIC de recursos limitados, pero con una de la 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. En la Figura 1.2 se muestra el diagrama de conexionado de uno de
estos PIC.

Figura 1.2: Diagrama de pines de los PIC de la gama baja que responden a la nomenclatura PIC16C54/56.
Al igual que todos los miembros de la familia PIC16/17, los componentes de la gama baja se caracterizan por poseer los siguientes recursos: (en la Tabla 1.2 se presentan las principales características de los modelos de esta familia).
1. Sistema POR (“Power On Reset”)
Todos los PIC tienen la facultad de generar una autoreinicialización o autoreset al conectarles la alimentación.
2. Perro guardián (Watchdog o WDT)
Existe un temporizador que produce un reset automáticamente si no es recargado antes que pase un tiempo prefijado. Así se evita que el sistema quede “colgado” dado en esa situación el programa no recarga dicho temporizador y se genera un reset.
3. Código de protección
Cuando se procede a
realizar la grabación del programa, puede protegerse para evitar su lectura.
También disponen los PIC de posiciones reservadas para registrar números de
serie, códigos de identificación, prueba, etc.

Tabla 1.2. Características de los modelos PIC16C(R)5X de la gama baja
4. 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 comprendida entre 20 y 25 mA, capaz de excitar directamente ciertos periféricos.
5. Modo de reposo (Bajo consumo o “sleep”)
Ejecutando una instrucción (SLEEP), la CPU y el oscilador principal se detienen y se reduce notablemente el consumo.
Para terminar el comentario introductorio sobre los componentes de la gama baja conviene nombrar dos restricciones importantes:
· La pila o “stack” 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.
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. En la Figura 1.3
se muestra el diagrama de conexionado de uno de estos PIC.

Figura 1.3. Diagrama de pines del PIC16C74, 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 1.3 se presentan las principales características de los modelos de
esta familia.

Tabla 1.3. Características relevantes de los modelos PIC16X8X de la gama media.
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, NiCd, 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.
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 variados controladores de periféricos, puertas de comunicación serie y paralelo 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.
Quizás la característica más destacable de los componentes de esta gama es su arquitectura abierta, que consiste en la posibilidad de ampliación del microcontrolador con elementos externos. Para este fin, las pines sacan 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 numero 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. En la tabla 1.4 se muestran las características más relevantes de los modelos de esta gama, que sólo se utilizan en aplicaciones muy especiales con grandes requerimientos.

Tabla 1.4. Características más destacadas de los modelos PIC17CXXX de la gama alta.