May 9, 2012

Microcontrolador PIC16F628A

Como ya habíamos visto en una entrada anterior los microcontroladores PIC son fabricados por la empresa MICROCHIP Technology INC. cuya central se encuentra en Chandler, Arizona. Esta empresa ocupa el primer lugar en venta de microcontroladores de 8 bits desde el 2002. 

Su gran éxito se debe a la gran variedad (más de 180 modelos), gran versatilidad, gran velocidad, bajo costo,bajo consumo de potencia, y gran disponibilidad de herramientas para su programación. Uno de los microcontroladores más populares y más conocidos en la actualidad es el PIC16F628A y sus variantes, PIC16F627A y PIC16F648A, estos modelos (los tres serie A) soportan hasta 100 000 ciclos de escritura en su memoria FLASH, y 1 000 000 ciclos en su memoria Eeprom, este está reemplazando rápidamente al popular PIC16F84A ya que presenta grandes ventajas, por ejemplo:



Como pueden observar en la tabla el PIC16F628A tiene gran ventaja sobre otros PIC, además de que cuenta con:

  • Un oscilador interno RC de 4MHZ 
  • MCLR (master clear) programable 
  • Mayor capacidad de corriente
  • Programación en bajo voltaje. 

Todas estas características hacen al  PIC16F628A el microcontrolador ideal para estudiantes y aficionados, ya que al tener oscilador interno y el MCLR programable, es mucho más sencillo ponerlo en funcionamiento, basta con conectar al pin 14 a 5V y el pin 5 a tierra para que empiece a trabajar.


Arquitectura

El PIC16F628A utiliza un procesador con arquitectura Harvard, lo que le da un mayor rendimiento en el procesamiento de las instrucciones, a diferencia de la arquitectura VonNeumann, esta arquitectura utiliza dos bloques de memorias independientes, una contiene instrucciones y la otra sólo datos, cada una con su sistema de buses de acceso, 8 líneas para los datos y 14 líneas para las instrucciones, con lo que es posible realizar operaciones de acceso lectura o escritura simultáneamente en las 2 memorias, a esto se le conoce como paralelismo.


El CPU de los microcontroladores de la familia 16F6XX emplea una arquitectura RISC (reduced instruction set computer) con un conjunto de 35 instrucciones que pertenecen a la gama media de la familia de los PIC, la mayoría de estas instrucciones se ejecutan en un ciclo de instrucción a excepción de los saltos que requieren de 2 ciclos

Dentro de su procesador existe una pila de 8 niveles que permiten el anidamiento de subrutinas, esto quiere decir que puede retomar 8 lugares diferentes de línea de programa e ir regresando a cada uno en el orden inverso al que fueron anidados.

Aquí les dejo el diagrama de los bloques funcionales del pic.



Memoria de programa

Como puse en una entrada anterior a esta memoria también se le conoce como memoria de instrucciones, aquí se escribe las ordenes para que el CPU las ejecute. 


Este PIC tiene memoria de programa no volátil tipo FLASH, a diferencia de la memoria EEPROM, la memoria FLASH se caracteriza por ser más rápido en el proceso de escritura/borrado eléctrico, además dispone de mayor capacidad de almacenamiento, esta característica hace que sea ideal para prácticas de laboratorio en donde la grabación y el borrado son frecuentes, que como dije antes, soporta 100 000 ciclos de escritura/borrado. 

El bus de direcciones de la memoria de programa es de 13 bits, por lo que el Contador de Programa (PC) puede direccionar 8192 posiciones de 14 bits cada una, desde la 0000h hasta 1FFFh; de las cuales sólo las primeras 2048 líneas tiene implementadas, desde la 0000h hasta la 07FFh; es decir que el PC sólo utiliza los 11 primeros bits de direcciones los demás bits los ignora.


Memoria de datos

El PIC16F628A tiene dos tipos de memorias de datos, la RAM estática o SRAM (Random Access Memory) y una memoria auxiliar no volátil llamada EEPROM

LA SRAM es un tipo de memoria volátil, es decir sus datos permanecen en la memoria mientras exista alimentación en el dispositivo y es de vital importancia porque ahí residen dos tipos de datos, los registros de propósito general (GPR), en donde se almacenan las variables; y los registros especiales (SFR), que son los encargados de llevar el contador de programa, el conteo del temporizador, el estado de los puertos, la configuración de las interrupciones, etc.

La memoria EEPROM puede ser accedida por el usuario mediante programación, es muy útil para almacenar datos que el usuario necesita que se conserven aún sin alimentación, tal es el caso de la clave de una alarma, esta puede ser modificada, pero no debe perderse por un corte de energía. Esta memoria tiene una capacidad de 128 posiciones de 8 bits cada una. La serie PIC16F6XXA, tiene una retención de datos en esta memoria mayor a 100 años.

Este microcontrolador es fabricado con tecnología CMOS (Complementary metal-oxide semiconductor) lo que hace que su consumo de potencia sea muy bajo (2 mA a 4 Mhz) debido a que esta tecnología hace que este microcontrolador este configurado de tal forma que, en estado de reposo, el consumo de energía es únicamente el debido a las corrientes parásitas. 

Además tiene la característica de que es completamente estático, lo que significa que si el reloj se detiene los datos de la memoria RAM no se pierden, esto mientras el microcontrolador sigue alimentado. 

La memoria de datos RAM, tiene 512 líneas de 8 bits cada una y está particionada por 4 bancos; el banco 0, banco 1, banco 2 y banco 3, cada uno con 128 bytes, el acceso a cada banco de memoria lo realiza los bits RP1 y RP0 del registro STATUS, la mayoría de los bytes son ocupados por los Registros de Funciones Especiales (SFR) o no están implementadas. Para el caso del PIC16F628A sólo 224 posiciones de memoria RAM están disponibles para los Registros de Propósito General (GPR),

Aquí les dejo una imagen con el diagrama de la memoria de datos SRAM:



Características

Las características más sobresalientes de este PIC son:

  • Procesador con arquitectura Harvard.
  • Rango de operación desde 3V. hasta 5.5V.
  • Programable con bajo voltaje LPV (5V).
  • 8 niveles de Pila.
  • 15 pines de I/O y 1 sólo de entrada (RA5).
  • Pin RA5 MCLR programable como reset externo o pin de entrada.
  • Conjunto reducido de instrucciones RISC (35) gama media.
  • Oscilador interno RC (resistencia condensador) de 4 MHZ calibrado de fábrica al ±1 %.
  • Velocidad de operación hasta 20 MHZ con oscilador externo.
  • Admite 8 configuraciones de oscilador.
  • Instrucciones de un ciclo excepto los saltos (200nS por instrucción a 20 MHZ).
  • Resistencias Pull-Up programables en el puerto B.
  • Temporizador Perro guardián WDT independiente del oscilador.
  • Programación serial en Circuito ICSP por 2 pines: RB6 reloj y RB7 datos.
  • Código de protección programable por sectores.
  • Memoria de programa FLASH 2048K. de 100.000 ciclos escritura/borrado.
  • Memoria de datos EEPROM de 1.000.000 ciclos escritura/borrado de 100 años retención.
  • 2 circuitos comparadores análogos con entradas multiplexadas.
  • 3 Timers, Timer 0 a 8 bits, Timer 1 a 16 bits y Timer 2 a 8 bits.
  • Módulos CCP, Captura compara 16 bits, y PWM, modulación de ancho de pulso 10 bits.
  • 10 fuentes de interrupción.
  • Módulo de comunicación serial USART/SCI.
  • Capacidad de corriente para encender leds directamente (25 mA I/O) por cada pin.

Fuentes


1 comment: