Microcontroladores PIC.

(Redirigido desde «Los Microcontroladores PIC.»)
Microcontroladores PIC.
Información sobre la plantilla
Microcontrolador PIC18XXX -copia.jpg
Concepto:Microcontroladores:Se define un microcontrolador de forma general, como un procesador con su sistema mínimo en un chip (incluye memoria para programa y datos, periféricos de entrada / salida, conversores análogo – digital (AD) y digital – análogo (DA), módulos especializados en la transmisión y recepción de datos).

Los microcontroladores. Procesador con su sistema mínimo en un chip (incluye memoria para programa y datos, periféricos de entrada / salida, conversores análogo – digital (AD) y digital – análogo (DA), módulos especializados en la transmisión y recepción de datos).

Características y Aplicaciones

Con las Gamas de PIC se dispone de gran diversidad de modelos y encapsulados, pudiendo seleccionar el

Figura 1.1 Distribución de los modelos de PIC en las gamas

que mejor se acople a las necesidades de acuerdo con el tipo y capacidad de las memorias, el número de líneas de entrada y salida (E/S) y las funciones auxiliares precisas. Sin embargo, todas las versiones están construidas alrededor de una arquitectura común.

Gama Baja: Repertorio de 33 instrucciones de 12 bits y dos niveles de pila.
Gama Media: Repertorio de 35 instrucciones de 14 bits, 8 niveles de pila y un vector de interrupción.
Gama Alta: Repertorio de 58 instrucciones de 16 bits, 16 niveles de pila y cuatro vectores de interrupción.
Gama Mejorada: Repertorio de 77 instrucciones de 16 bits, 32 niveles de pila y cuatro vectores de interrupción.

¿Por qué los PIC?

Considerando el momento actual, comparando los parámetros fundamentales con los modelos comerciales de otros fabricantes y las aplicaciones más habituales a las que se destinan los microcontroladores, la elección de una versión adecuada de PIC es la mejor solución, atendiendo a sus principales ventajas:

Bajo costo
· Bajo consumo de potencia
· Alta inmunidad al ruido
· Distintos modelos adecuados para cada necesidad
· Herramientas de desarrollo gratuitas
· Fácil de empezar a usar
· Abundante información técnica gratuita oficial y de terceros (ambas por Internet)
· Protección del código de programa por encriptación
· Modo SLEEP (estado de reposo o de muy bajo consumo)
· Predisposición para osciladores RC (Resistor/Capacitor), XT (XTal), HS (High Speed) y LP (Low Power)
· Solo 35 instrucciones RISC (Reduced Instruction Set Computer)
· Interrupciones programables
· Circuito de vigilancia tipo perro guardián (watch dog timer o WDT)
· Modelos con conversores A/D
· Modelos con salida PWM (modulación de anchura de pulsos)
· Modelos con varios temporizadores internos

Tipos de microcontroladores PIC y gama a que pertenecen

El microcontrolador PIC16F877

Pertenece a la gama media, se le añaden nuevas prestaciones a las que poseían los de la gama baja, haciéndolos más adecuados en las aplicaciones complejas, los mismos admiten interrupciones, poseen comparadores de magnitudes analógicas, Convertidores A/D, puerto serie, diversos temporizadores, memorias OTP y EEPROM (Electrical Erasable Programmable Read OnIy Memory) y 35 instrucciones de 14 bits de ancho.

Los microcontroladores PIC18F452 y PIC18CXX2

Pertenecen a la gama mejorada, poseen una arquitectura abierta pudiéndose expansionar en el exterior al poder sacar los buses de datos, direcciones y control.

Así se pueden configurar sistemas similares a los que utilizan 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 número de pines comprendido entre 40 y 44.

Admiten interrupciones, poseen puerto serie, varios temporizadores y mayores capacidades de memoria que alcanzan las 8 k palabras en la memoria de instrucciones, para memoria de datos cuentan con 454 a 3968 bytes y disponen de 77 Instrucciones de 16 bits de ancho.

Características Generales

Los microcontroladores seleccionados para el trabajo, están basados en características propias de los PIC pertenecientes a las gamas baja, media y mejorada. La gama baja de los PIC, encuadra nueve modelos fundamentales en la actualidad.

La memoria de programa puede contener 512 byte, 1 k. y 2 k palabras de 12 bits, y ser de tipo ROM, EPROM. También hay modelos con memoria OTP, (One Time Programmable) que sólo puede ser grabada una vez por el usuario. La memoria de datos puede tener una capacidad comprendida entre 25 y 73 bytes.

Arquitectura

Los Microcontroladores PIC, basados en la arquitectura RISC (Set de Instrucciones Reducido), contemplan la mayoría de las características de esta arquitectura. Entre ellas se pueden destacar, set de instrucciones homogéneo, reducido número de instrucciones y alta velocidad.

Arquitectura del microcontrolador

Aunque inicialmente todos los microcontroladores adoptaron la arquitectura clásica de Von Neumann, en la actualidad se impone la Arquitectura Harvard.

Figura 1.2 Arquitectura de Von Neumann.

La Arquitectura de Von Neumann se caracteriza por disponer de una sola memoria principal, donde se almacenan datos e instrucciones de forma indistinta. A dicha memoria se accede a través de un sistema de buses único (direcciones, datos y control).   

Figura 1.3 Arquitectura Harvard.

La arquitectura Harvard empleada en los microcontroladores actuales, dispone de dos memorias independientes: una que contiene sólo instrucciones y otra sólo datos.

Ambas disponen de sus respectivos sistemas de buses de acceso y es posible realizar operaciones de acceso (lectura o escritura) simultáneamente en ambas memorias, todo esto propicia que se mejore el ancho de banda con respecto a la arquitectura tradicional.

Separar los buses de programa y de datos, permite además que el ajuste del tamaño de las instrucciones sea diferente del ancho de 8 bits en los datos de palabra. Un bus de acceso a la memoria de programa con un ancho de 14 bits, toma una instrucción de 14 bits en un solo ciclo.

Los microcontroladores elegidos para el presente trabajo, pueden dirigirse directa o indirectamente a sus archivos de registros o memoria de datos.

Todos los registros de funciones especiales, incluyendo el contador del programa, son trazados en un mapa en la memoria de datos. Estos microcontroladores, tienen un set ortogonal (simétrico) de instrucción, que hace posible que se lleve a cabo cualquier operación en cualquier registro usando cualquier modo de dirección.

La naturaleza simétrica y la ausencia de situaciones óptimas especiales, hacen la programación con estos microcontroladores simple y más eficiente.

Organización de Memoria

La repercusión más importante del empleo de la arquitectura Harvard en los microcontroladores PIC, se manifiesta en la organización de la memoria del sistema.

La memoria de programa es independiente a la de los datos, accediéndose en el mismo ciclo a ambas memorias, pues cada uno tiene sus propios buses de acceso, además de tener tamaños y longitudes de palabra diferentes.

Organización de la Memoria de Programa.

En los PIC de la gama baja, el registro contador de programa (PC) proporciona la dirección de la memoria de programa y su longitud puede oscilar entre 9 y 11 bits, según la capacidad de la misma.

En los modelos que sólo disponen de la página 0, bastan los 9 bits de menos peso del PC (A8-A0) para direccionar la instrucción en curso, que, si no es una de salto, provoca el autoincremento del mismo.

En las instrucciones de salto, el valor del PC se obtiene de diferentes formas según de la instrucción de que se trate.

Figura 1.4 Memoria de programa de los PIC de la gama media

Los PIC de rango medio poseen un registro Contador del Programa (PC) de 13 bits, capaz de direccional un espacio de 8K x 14, como todas las instrucciones son de 14 bits, esto significa un bloque de 8k instrucciones.

El bloque total de 8K x 14 de memoria de programa, está subdividido en 4 páginas de 2K x 14. En la Figura 1.4 se muestra esta organización.

Los PIC´s de la gama mejorada 18CXX2 y 18F452, tienen un registro Contador del Programa (PC) de 14 bits, poseen mayores capacidades de memoria que los de la gama media que alcanza hasta 1M palabras.

La mayoría de las instrucciones son de 16 bits, aunque las hay también de 32 bits. El número total de instrucciones es de 77.



Organización de la memoria de datos.

La memoria de datos evoluciona según se ejecuta el programa, la misma es de tipo lectura–escritura, es decir tipo RAM.
La memoria de datos se organiza en "bancos", pudiendo existir hasta cuatro en los modelos de mayor capacidad.

El banco 0 tiene un tamaño de 32 bytes, mientras que todos los demás sólo disponen de 16. El banco 0 ocupa las 32 primeras posiciones de la memoria y lo poseen todos los modelos de la gama baja.

Las 16 posiciones de menos peso de los bancos 1, 2 y 3 no son accesibles y cuando se direcciona desde el valor 00h al 0Fh, siempre se acude al banco 0. Cuando la dirección está comprendida entre la 10h y la 1Fh, hay que seleccionar a cuál de los cuatro posibles bancos corresponde con los bits 6 y 5 del registro FSR (File Select Register).

La memoria datos de los PIC de la gama media, consta de dos áreas mezcladas y destinadas a funciones distintas:
• Registros de Propósito Especial (SFR)
• Registro de Propósito General (GPR)

Los SFR, son localidades asociadas específicamente a los diferentes periféricos y funciones de configuración del PIC y tienen un nombre específico asociado con su función. Mientras que los GPR son memoria RAM de uso general.

Bancos de memoria

Toda la memoria de datos está organizada en 4 bancos numerados: 0, 1, 2 y 3. Para seleccionar un banco, se debe hacer uso de los bits del registro STATUS<7:5> denominados IRP, RP1 y RP0.

Cada banco se extiende hasta la dirección de memoria 7Fh (128 bytes). Las posiciones inferiores de cada banco están reservadas para los registros de funciones especiales, a continuación de estos, se ubican los registros de propósito general, implementado como RAM estática.

Todos los bancos implementados contienen registros de funciones especiales. Uno de los usos más frecuentes de estos registros con respecto a un banco, puede ser el reflejo en otro para la reducción de código y la vía de entrada más rápida.

Tabla 1.1 Bancos de memoria de los PIC de la gama media.

Hay dos maneras de acceder a la memoria de datos: Direccionamiento directo e indirecto. La selección de bancos se basa en la siguiente tabla.

Los PIC´s de la gama mejorada, poseen memoria de datos RAM en todas las versiones hasta 1MB, con MMU y 4 canales de DMA. También tienen versiones de memoria de datos EEPROM (con protección) de 256 bytes

Los PIC utilizados en la tarjeta PICDEM 2 PLUS

En este epígrafe se describen las principales características de los PIC utilizados en la Tarjeta PICDEM 2 PLUS, objeto de estudio, como se abordó en los epígrafes anteriores, los mismos pertenecen a la gama baja, media y mejorada:

Características de los microcontroladores pertenecientes a la gama baja:
· Un temporizador (TMR0).
· 33 instrucciones de 12 bits.
· E/S comprendido entre 12 y 20.
·Memoria ROM, EPROM, OTP.
· El voltaje de alimentación admite un valor muy flexible comprendido entre 2 y 6,25 V.
· Restricciones importantes sobre los componentes de la gama baja: La pila o "stack" sólo dispone de dos niveles, lo que supone no poder encadenar más de dos subrutinas y no admiten interrupciones.

Figura 1.5 Microcontrolador PIC16F877.

Características del microcontrolador PIC16F877,     Perteneciente a la gama media:

· Interrupciones.
· Comparadores analógicos.
· Convertidores A/ D.
· Puerto serie.
· Temporizadores.
· Memorias OTP y EEPROM.
· 35 instrucciones de 14 bits de ancho.

La Figura 1.5 muestra el microcontrolador PIC16F877, con la distribución de sus pines, ver Anexo 1. Distribución de los pines

Características de los microcontroladores PIC18F452 y PIC18CXX2, pertenecientes a la gama mejorada:
· Microcontrolador de interfaz abierta.
· Gran cantidad de pines (40- 44).
· Memoria de Programa 16384 palabras
· Memoria para datos 454 a 3968 bytes.
· Memoria de Datos EEPROM 256 bytes
· Fuentes de Interrupción 19

Figura 1.6 Microcontrolador PIC18XXX.


· Puertos de E/S A(8), B(8), C(8), D(8) y E(3)
· Temporizadores 4
· Módulos Captura/Comparación 1 estándar y 1 ampliado
· Comunicación Serie MSSP y USART (mejorado)
· Comunicación Paralelo PSP
· Convertidores ADC 13 x 10 bits
· 77 Instrucciones de 16 bits de ancho.
· Hardware multiplier.
· Memoria lineal.

La familia PIC18CXXX/PIC18FXXX tienen características especiales para reducir componentes externos, por ello reduce el costo, aumenta la confiabilidad y reduce el consumo de energía.

La Figura 1.6 muestra el microcontrolador perteneciente a la familia PIC18XXX, con la distribución de sus pines.

Los Puertos de E/S.

Los pines de comunicación de los microcontroladores, se agrupan en conjuntos que se denominan puertos, porque dejan entrar y salir la información al procesador.

Dichos puertos, deben soportar las líneas que precisan los distintos periféricos que hay integrados en la cápsula. Cuantos más periféricos dispone el modelo, exige más líneas de comunicación y mayor número de pines, con más multiplexado de señales.

La mayoría de los pines de los Puertos son multifunción, es decir, soportan diferentes funciones según sean programadas. Así, por ejemplo, existen pines que a veces funcionan como líneas de E/S digitales y otras como entradas o salidas de señales analógicas para un comparador.

Puertos de E/S de los PIC, de la gama baja.
Los PIC de la gama baja, sólo disponen de líneas de E/S digitales, cada una de las cuales tiene su correspondencia con una patita de la cápsula. Dichas líneas se agrupan en tres puertos: A, B y C. El Puerto A, actúa lo mismo que un registro de E/S de lectura y escritura.

Sólo son válidos los 4 bits de menos peso que corresponden con las patitas RA3:RA0. Los 4 bits de más peso, no están implementados y cuando se leen siempre valen 0. El Puerto B, funciona como un registro de E/S de 8 bits bidireccionales, siendo accesibles todos ellos por las patitas RB7:RB0.

Puertos de E/S del PIC16F877, de la gama media

· Recursos comunes (TMR0, Perro Guardián, Modo de Reposo, Reset de conexión de alimentación, interrupciones).
· Convertidor A/D de 8 bits con 5 canales de entrada.
· 2 Módulos de Captura/Comparación/PWM (CCP).
· Puerto Síncrono Serie (SSP).
· Interfaz de Comunicaciones Serie (SCI).

Puertos de E/S de los PIC´s 18F452 y 18CXX2, de la gama mejorada

· Puertos de entrada y salida. Se usan 3 entradas digitales para los conmutadores (RC3, RC4, RC5); 3 como salidas de la plataforma PICCI (RB0, RB1, RB2), y otras 3 (RC0, RC1, RC2) como salidas para los indicadores LED.
· 4Temporizadores (TMR0, TMR1, TMR2, TMR3): 2 de 16 bits y 2 de 8 bits.
· Convertidor A/D de 10 bits (RA0/AN0, RA1/AN1, RA2/AN2, RA3/AN3, RA5/AN52).
· USART (RC6, RC7). Receptor transmisor asíncrono síncrono direccionable universal. Permite la transmisión y recepción de cadenas de bits.
· Programación RB6, RB7: Reloj y entrada y salida de datos para modo programación respectivamente desde el PIC.
· MCLR/VPP: Dedicado a encender (RUN) y apagar (STOP) el PIC según exista 5 y 0 Voltios con respecto a VSS respectivamente. Además, si se excita con 13 V, se consigue entrar en modo programación. Servirá de RESET del microcontrolador (RESET durante funcionamiento).

Conversor A/D.

Se trata de un potentísimo periférico, que se halla integrado en todos los microcontroladores del tipo PIC16FXXX, PIC18FXXX y PIC18CXXX.

El PIC16F877 cuenta con 5 canales. Es un conversor análogo - digital de 8 bits con una tensión de referencia que puede ser interna (VDD) o externa (entra por el pin AN3/Vref).

En cada momento la conversión solo se realiza con la entrada de uno de sus canales, depositando el resultado de la misma en el registro ADRES y activándose el señalizador ADIF, que provoca una interrupción si el bit de permiso correspondiente esta activado.

Además, al terminar la conversión el bit GO/DONE se pone a 0. La tensión de referencia puede provenir de la tensión interna VDD o de la externa que se introduce por el pin AN3/Vref.

Para gobernar el funcionamiento del CAD (Conversor Análogo-Digital) se utilizan dos registros: ADCON0 y ADCON1. El primero, selecciona el canal a convertir con los bits CHS, activa al conversor y contiene el señalizador que avisa el fin de la conversión (ADIF) y el bit GO/DONE; el segundo (ADCON1), establece las entradas que son digitales y analógicas, así como el tipo de tensión de referencia (interna o externa). El tiempo que dura la conversión, depende de la frecuencia de funcionamiento del PIC y del valor de los bits ADCS1 y ADCS0

Los PIC´s 18F452 y 18CXX2, de la gama mejorada poseen un conversor análogo digital con una resolución de 10 bits y hasta 13 canales.

Fuentes

  • Angulo Martínez J., Angulo Usategui J. Ma., y Martín Cuenca E. Microcontroladores PIC, La solución en un chip Editorial Paraninfo, 1997.
  •   Angulo Martínez J., Angulo Usategui J. Ma., y Martín Cuenca E. Aplicaciones de los microcontroladores PIC de Microchip Editorial McGraw Hill, 1998.
  • Campos Cerda Manuel Fernando, Castañeda Pérez Ramiro, Contreras Torres Arturo Cesar. Implementación de un Sistema de Desarrollo Utilizando Microcontroladores PIC, Microchip Tecnology. Universidad de Guadalajara, 1998.