April 29, 2012

Memoria en microcontroladores

En los microcontroladores la memoria de instrucciones y datos está integrada en el propio circuito integrado. Una parte debe ser no volátil, esto es tipo ROM, y está destinada a contener el programa de instrucciones que tiene la aplicación. Otra parte de memoria debe ser de tipo RAM, esto es volátil, y se destina a guardar las variables y los datos.

Hay dos características que diferencían a los microcontroladores de los PC's:
  • No existen sistemas de almacenamiento masivo, como discos duros.
  • Como el microcontrolador sólo se destina a una tarea en la memoria de programa, sólo hay que almacenar un único programa de trabajo.

La memoria de datos (RAM) en estos dispositivos tiene poca capacidad pues sólo contiene las variables y los cambios de información que se produzcan en el transcurso de la ejecución del programa. Otra razón por la que los cicrocontroladores tienen poca memoria RAM es que como sólo existe un programa activo, no se requiere guardar una copia del mismo en la RAM pues se ejecuta directamente desde la memoria de programa (ROM).

Es común que los usuarios de PC's y desarrolladores de programas para PC esten acostumbrados a trabajar con Megabytes de memoria, pero los diseñadores con microcontroladores trabajan con capacidades de memoria de programa de 512 bytes, 1K, 2K (hasta 64K) y de RAM de 20 bytes, 68 bytes, 512 bytes (hasta 4K).

Según el tipo de memoria de programa que con la que cuenten los microcontroladores, la aplicación y utilización de los mismos es diferente. Estos son los 5 tipos de memoria ROM que se puede encontrar en el mercado:

  • ROM con máscara
Es una memoria no volátil de sólo lectura cuyo contenido se graba durante la fabricación del chip. Máscara viene de la forma cómo se fabrican los circuitos integrados, éstos se fabrican en obleas que contienen varias decenas de chips, dichas obleas se obtienen a partir de procesos fotoquímicos, donde se impregnan capas de silicio y oxido de silicio, y se erosionan al exponerlos a la luz. Como no todos los puntos terminan siendo erosionados, se sitúa entre la luz y la oblea una máscara con agujeros, de manera que donde deba incidir la luz, esta pasará.

Debido al elevado costo del diseño de la máscara es recomendable usar microcontroladores con este tipo de memoria cuando se precisan cantidades superiores a varios miles de unidades.

  • OTP (One Time Programmable)
El 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.
  • EPROM (Erasable Programmable Read Only Memory)
Los microcontroladores con esta memoria pueden borrarse y grabarse muchas veces. La grabación se realiza de igual manera con un programador. Si después se quiere borrar el contenido, disponen de una ventana de cristal en su superficie por la que se somete a la EPROM a rayos ultravioleta durante varios minutos. Las cápsulas son de material cerámico y son más caros que los microcontroladores con memoria OTP que están hechos con material plástico. Hoy en día se utilizan poco, siendo sustituidas por memorias EEPROM o Flash.

Tanto en este tipo de memoria como en la OTP, se suele usar la encriptación mediante fusibles para proteger el código contenido.

  • EEPROM (Electrical Erasable Programmable Read OnIy Memory). 
Se trata de memorias de sólo lectura, programables y borrables eléctricamente. Tanto la programación como el borrado, se realizan eléctricamente desde un programador. No disponen de ventana de cristal en la superficie como en el caso de las memorias EPROM.

Los microcontroladores con de memoria EEPROM una vez instalados en el circuito, pueden grabarse y borrarse cuantas veces se quiera sin ser retirados de dicho circuito, aunque también es finito por lo que no se recomiendo una programación continua. Para ello se usan "programadores en circuito" que proporcionan una gran flexibilidad y rapidez a la hora de realizar modificaciones en el programa de trabajo.

Se va extendiendo en los fabricantes la tendencia de incluir una pequeña zona de memoria EEPROM en los circuitos programables para guardar y modificar cómodamente una serie de parámetros que adecúan el dispositivo a las condiciones del entorno.

Este tipo de memoria es relativamente lenta. Hoy día están siendo sustituidas por memorias de tipo Flash.

  • FLASH
Esta es una memoria no volátil, de bajo consumo, que se puede escribir y borrar. Funciona como una ROM y una RAM pero consume menos y es más pequeña.

A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es más rápida y de mayor densidad que la EEPROM.

La alternativa FLASH está recomendada frente a la EEPROM cuando se precisa gran cantidad de memoria de programa no volátil. Es más veloz y tolera más ciclos de escritura/borrado. Son perfectas para la enseñanza y la Ingeniería de diseño.


Las memorias EEPROM y FLASH son muy útiles al permitir que los microcontroladores que las incorporan puedan ser reprogramados sin tener que sacar el circuito integrado de la tarjeta. Con esto, un dispositivo con este tipo de memoria incorporado al control del motor de un automóvil permite que pueda modificarse el programa durante la rutina de mantenimiento periódico, compensando los desgastes y otros factores tales como la compresión, la instalación de nuevas piezas, etc.

Memoria en PIC

Los PIC tienen una serie de registros que funcionan como una RAM de propósito general. Los registros de propósito específico para los recursos de hardware disponibles dentro del propio chip también están direccionados en la RAM. Todos los PIC cuentan con algún tipo de mecanismo de manipulación de bancos de memoria que pueden ser usados para acceder a la memoria externa o adicional. Las series más recientes de dispositivos disponen de funciones que pueden cubrir todo el espacio direccionable, independientemente del banco de memoria seleccionado.

Todos los PICs (menos los dsPIC) manejan datos en partes de 8 bits. Como ya sabemos los PIC usan arquitectura Harvard, por lo que el tamaño de las instrucciones puede ser distinto del de la palabra de datos. De hecho, las diferentes familias de PICs usan tamaños de instrucción distintos, lo que hace difícil comparar el tamaño del código del PIC con el de otros microcontroladores.

La memoria de programa de los PIC puede ser ROM, OTP, EPROM o FLASH; y en ella se almacena las instrucciones del programa que ejecuta el microcontrolador.

En algunos modelos de PIC de gama media, la memoria de prograa se puede leer desde el programa que se está ejecutando, por esto es posible almacenar datos fijos en dicha memoria. En algunos otros modelos con memoria FLASH, se puede escribir datos en la memoria de programa.
Algunos modelos de PIC cuentan con memoria EEPROM en un espacio separado para almacenar datos fijos o que varían un poco.

La memoria de programa en los PIC se organiza en páginas. En la gama media puede haber hasta 4 páginas de 2k palabras cada una. Por lo tanto, la capacidad de memoria puede llegar hasta 8k palabras. Cabe aclarar que las plabras de esta gama de PIC son de 14 bits.


No comments:

Post a Comment