martes, 15 de mayo de 2012

Memoria en los microcontroladores PIC



"Todo dispositivo programable necesita de una memoria para poder almacenar el programa, poder manejar variables y almacenar datos."



MEMORIA DEL PROGRAMA

El microcontrolador está diseñado para que en su memoria de programa se almacenen todas las instrucciones del programa de control. Como éste siempre es el mismo, debe estar grabado de forma permanente.


Existen algunos tipos de memoria adecuados para soportar estas funciones, de las cuales se citan las siguientes:
ROM con máscara: Esta memoria se conoce simplemente como ROM y se caracteriza porque la información contenida en su interior se almacena durante su construcción y no se puede alterar. Son memorias ideales para almacenar microprogramas, sistemas operativos, tablas de conversión y caracteres. 
Se graba mediante el uso de máscaras. Sólo es recomendable para series muy grandes debido a su elevado coste. 
EPROMEste tipo de memoria es similar a la PROM con la diferencia que la información se puede borrar y volver a grabar varias veces. Su nombre proviene de la sigla en inglés Erasable Read Only Memory. 
Se graba eléctricamente con un programador controlador por un PC. Disponen de una ventana en la parte superior para someterla a luz ultravioleta, lo que permite su borrado. Puede usarse en fase de diseño, aunque su coste unitario es elevado. 
OTPEl microcontrolador contiene una memoria no volátil de sólo lectura "programable una sola vez" por el usuario. El usuario puede escribir un programa en el chip usando un sencillo programador. La versión OTP es recomendable cuando es muy corto el ciclo de diseño del producto, o en la construcción de prototipos y series muy pequeñas. 
EEPROMLa memoria EEPROM es programable y borrable eléctricamente y su nombre proviene de la sigla en inglés Electrical Erasable Programmable Read Only Memory. 
No se pueden conseguir grandes capacidades y su tiempo de de escritura y su consumo es elevado. 
FLASHLa memoria FLASH es similar a la EEPROM, es decir que se puede programar y borrar eléctricamente. 
Sin embargo esta reúne algunas de las propiedades de las memorias anteriormente vistas, y se caracteriza por tener alta capacidad para almacenar información y es de fabricación sencilla, lo que permite fabricar modelos de capacidad equivalente a las EPROM a menor costo que las EEPROM.

En el PIC16F84...



La memoria de programa o de instruciones es una memoria tipo FLASH de 1K.


En esta memoria almacenaremos el programa que ejecutará el microcontrolador.

Existe un registro especial llamado contador de programa PC cuya finalidad es avanzar por las instrucciones del programa de forma secuencial excepto cuando se encuentran instrucciones de salto.


El espacio marcado como "User memory Space" es el espacio de memoria donde irá nuestro programa, comprende las direcciones de memoria desde la 0000h hasta la 3FFh (3FFh en decimal es 1023, mas la dirección 0000h hacen 1024 direcciones, es decir, 1Kbyte)

"Reset Vector" es la primera dirección a la que se dirige el pic al encenderlo o al resetearlo.

"PC" y los "Stack Level" son empleados por el pic y nosotros no tenemos acceso a ellos.





MEMORIA DE DATOS

"La memoria de datos sirve para almacenar variables, leer puertos de entrada o escribir en los puertos de salida, podemos tambien acceder al temporizador o al registron EEPROM"
La memoria de datos esta realizada sobre memoria RAM estatica, de modo que es una memoria volatil del lectura y escritura, aunque, en algunos modelos de PIC puede existir, adicionalmente en un espacio separado, cierta cantidad de memoria EEPROM, denominada EEPROM de datos.

Esta EEPROM se puede almacenar datos fijos o que varian poco. La tabla de abajo muestra, a modo de ejemplo, la cantidad de memoria disponible en algunos modelos de microcontroladores PIC.

Tamaño de la memoria de programa y de datos en algunos microcontroladores PIC.



En el PIC16F84...


La memoria de datos en el PIC16F84 está formada por dos zonas:

MEMORIA RAM de 68 registros. La memoria RAM no solo se usa para almacenar nuestras variables, también se almacenan una serie de registros que configuran y controlan el PIC.

MEMORIA EEPROM de 68 registros cuya caracteristica principal es que no se perderán los datos cuando se desconecta la alimentación.


Esta memoria está formada por dos bancos Bank0 y Bank1














Mapa de memoria RAM detallada



REFERENCIAS:

pic16f84.pdf