Los aspectos fundamentales de las memorias integradas: Memoria Programable y Borrable de Solo Lectura, memoria FRAM, memoria eMMC y tarjetas SD
Colaboración de Editores de DigiKey de América del Norte
2019-10-16
Un elemento muy importante de los sistemas integrados basados en microcontroladores es la memoria. Por ejemplo, los desarrolladores necesitan suficiente memoria RAM para contener todas las variables volátiles, crear búferes y administrar varias pilas de aplicaciones. Si bien la memoria RAM es muy importante en un sistema integrado, los desarrolladores también necesitan contar con un lugar donde almacenar el código de las aplicaciones, los datos no volátiles y la información de configuración.
El problema es que cada vez hay más opciones de tecnologías de memoria no volátil, lo que dificulta determinar cuál es la memoria adecuada para una aplicación.
En este artículo, se brinda una introducción a las diversas tecnologías que existen. Luego, se presentan ejemplos de proveedores como ON Semiconductor, Adesto Technologies, Renesas, ISSI, Cypress Semiconductor, Advantech, GigaDevice Semiconductor y Silicon Motion para que los desarrolladores puedan comprender mejor las características de cada tipo de memoria. Además, se aclara dónde se aplica mejor cada una para que los desarrolladores puedan usarlas de manera efectiva.
La EEPROM y la memoria FRAM en los sistemas integrados
Al momento de agregar una memoria a un sistema integrado, la primera que se tiene en cuenta más comúnmente es la EEPROM. Es una memoria no volátil que suele usarse para almacenar los parámetros de configuración del sistema para una aplicación integrada. Por ejemplo, es probable que un dispositivo que está conectado a una red del tipo de un bus CAN almacene el identificador del CAN en una EEPROM.
La EEPROM tiene varias características que la convierten en una buena opción para los desarrolladores de sistemas integrados:
- Ocupa un espacio físico pequeño
- Es relativamente económica
- Velocidades de bits típicas que varían entre los 100 kilobits por segundo (Kbits/s) y los 1000 Kbits/s
- Con una interfaz eléctrica estandarizada
- Por lo general, admite la interfaz I2C y la interfaz periférica serial (SPI)
Una búsqueda rápida de memorias EEPROM en el sitio web de DigiKey actualmente muestra nueve proveedores de EEPROM que ofrecen más de 5800 variantes de esa memoria. Por ejemplo, el CAT24C32WI-GT3 de ON Semiconductor es un dispositivo de EEPROM de 32 Kbit (4 Kbytes) que viene en un paquete SOIC de 8 pines que se puede conectar al bus I2C a velocidades de hasta 1 megahercio (MHz) (Ilustración 1).
Ilustración 1: El CAT24C32WI-GT3 es un dispositivo de EEPROM de 1 Kbit de ON Semiconductor que se puede conectar a un microcontrolador a través de un puerto de I2C o de SPI para almacenar datos de la configuración y de la aplicación. (Fuente de la imagen: ON Semiconductor)
Lo interesante de la memoria EEPROM es que, a veces, también está incluida en el propio microcontrolador. Por ejemplo, el microcontrolador R7FS128783A01CFM#AA1 de 32 bits de Renesas tiene 4 Kbytes de memoria EEPROM integrada que pueden usar los desarrolladores.
Esto supone que las necesidades de configuración están dentro de los 4 Kbytes. De lo contrario, los desarrolladores deben usar un dispositivo externo o emular una EEPROM adicional utilizando la memoria flash del microcontrolador.
A pesar de la popularidad de la EEPROM, tiene algunas posibles desventajas:
- Suele estar limitada a 1,000,000 ciclos de borrado/escritura
- Sus ciclos de escritura son de aproximadamente 500 nanosegundos (ns)
- Se necesitan instrucciones múltiples para escribir una celda
- Tiene una retención de datos de 10 años o más (últimamente, es más común que sea de 100 años o más)
- Es susceptible a la radiación y a las altas temperaturas de funcionamiento
Las EEPROM funcionan bien con muchas aplicaciones, pero para las aplicaciones que requieren una confiabilidad alta, como las de las industrias automotriz, médica o de sistemas espaciales, los desarrolladores querrán usar una memoria más robusta, como la FRAM.
FRAM significa "memoria de acceso aleatorio ferroeléctrica" y ofrece varias ventajas con respecto a la memoria EEPROM:
- Es más rápida (los ciclos de escritura son de menos de 50 ns)
- Tiene más ciclos de escritura (más de 1 billón contra el millón de la EEPROM)
- Menor potencia (requiere 1.5 voltios para funcionar)
- Es más tolerante a la radiación
La memoria FRAM está disponible en tamaños de memoria similares a los de la EEPROM. Por ejemplo, la familia de memorias FRAM de Cypress Semiconductor varía entre los 4 Kbits a los 4 Mbits. La FM25L16B-GTR tiene 16 Kbits (Ilustración 2). Viene en un paquete SOIC de 8 pines y puede operar a una velocidad de hasta 20 MHz.
Ilustración 2: La familia de memorias FRAM de Cypress cuenta con una gama de tamaños de memoria de entre 4 Kbits a 4 Mbits, que se pueden conectar a un microcontrolador a través de una SPI para almacenar datos de configuración y de aplicaciones. La FM25L16B-GTR (en la foto) opera a una velocidad de hasta 20 MHz. (Fuente de la imagen: Cypress Semiconductor)
En el extremo superior, se encuentra la CY15B104Q-LHXIT de Cypress Semiconductor, que tiene 4 Mbits y admite velocidades de interfaz de hasta 40 MHz (Ilustración 3). A continuación, se detallarán algunas características interesantes de la memoria FRAM:
- Tiene una retención de datos de 151 años
- Tiene 100 billones de ciclos de lectura/escritura
- Es un reemplazo directo para la memoria flash serie y la EEPROM
Como es esperable, la memoria FRAM es más costosa que la EEPROM, por lo que es importante sopesar meticulosamente los factores ambientales en los que operará un dispositivo al seleccionar la memoria adecuada para una aplicación.
Ilustración 3: El CY15B104Q-LHXIT es un dispositivo de 4 Mbit que opera a una velocidad de hasta 40 MHz. Es parte de la familia de memorias FRAM de Cypress, que varían entre los 4 Kbits y los 4 Mbits. (Fuente de la imagen: Cypress Semiconductor)
Memorias flash, eMMC y tarjetas SD en sistemas integrados
La memoria flash, en un sistema integrado, se puede utilizar para distintos propósitos. En primer lugar, la memoria flash externa se puede utilizar para expandir la memoria flash interna con el fin de aumentar la memoria disponible para el código de la aplicación. Esto se suele hacer con módulos flash a través de la SPI, como el GD25Q80CTIGR de GigaDevice Semiconductor (Ilustración 4). El GD25Q80CTIGR se podría utilizar para expandir la memoria interna unos 8 Mbits, suponiendo que el microcontrolador lo admita, todo a través de la interfaz SPI.
Ilustración 4: La memoria flash GD25Q80CTIR de GigaDevice Semiconductor Limited se puede utilizar para ampliar el espacio de memoria flash interna unos 8 Mbits mediante el puerto de la SPI. (Fuente de la imagen: GigaDevice Semiconductor Limited)
En segundo lugar, se puede utilizar la memoria flash externa para almacenar información de configuración o datos de la aplicación en lugar de usar una EEPROM o una FRAM. En su lugar, se podría usar un chip de memoria flash externa para disminuir los costos de BOM o aumentar la memoria interna para almacenar los datos de la aplicación. Se puede configurar un periférico de microcontrolador y un mapa de memoria que incluya esta memoria flash externa para facilitarle el acceso al desarrollador sin tener que hacer llamadas personalizadas a un controlador, lo que sí sería necesario para interactuar con una EEPROM o una FRAM.
Un ejemplo de un dispositivo de memoria flash externa que se podría utilizar para este propósito es el AT25SF161 de Adesto Technologies (Ilustración 5). Este dispositivo utiliza una interfaz SPI en cola (QSPI). La QSPI es una extensión del protocolo de la SPI normal que permite una mayor tasa de producción de datos en el sistema. Esto resulta extremadamente interesante para los desarrolladores que necesitan almacenar o recuperar grandes cantidades de datos en una sola transacción.
La QSPI elimina la intervención de la CPU dentro del periférico de la QSPI y cambia la interfaz estándar de cuatro pines (MOSI, MISO, CLK y CS) a una de seis pines (CLK, CS, IO0, IO1, IO2, IO3). Esto permite que se utilicen cuatro pines para la entrada y la salida, a diferencia de los dos pines tradicionales de la SPI.
Ilustración 5: Los dispositivos de memoria flash externa AT25SF161 de Adesto Technologies se pueden utilizar para extender la memoria flash interna. Cuentan con una interfaz QSPI, que almacena y recupera datos más rápido. (Fuente de la imagen: Adesto Technologies)
Por último, la memoria flash se puede utilizar para almacenar datos de aplicaciones e información de la carga útil. Por ejemplo, en un sistema GPS, no se intentarían almacenar todos los mapas de manera local en el procesador; en cambio, se usaría un dispositivo de almacenamiento de memoria externa, como una tarjeta SD o un dispositivo de memoria eMMC. Estos medios de almacenamiento se pueden conectar a un microcontrolador a través de una SPI o una interfaz SDIO dedicada que permite una comunicación eficaz con el dispositivo de memoria externa.
Por ejemplo, la memoria eMMC de IS21ES04G-JCLI de ISSI se puede conectar directamente a una interfaz SDIO en el microcontrolador para agregarle 32 Gbits de almacenamiento de memoria flash al dispositivo (Ilustración 6).
Ilustración 6: El módulo de memoria flash eMMC de ISSI tiene 32 Gbits de memoria que se pueden conectar a una central a través de una SPI o una SDIO. (Fuente de la imagen: ISSI)
Desde el punto de vista de la interfaz eléctrica, las tarjetas SD y los dispositivos eMMC son iguales. Es decir, tienen los mismos pines comunes que se utilizan para conectar los dispositivos a un microcontrolador, aunque ciertamente vienen en paquetes diferentes. Aun así, los dos tipos de memoria pueden ser bastante diferentes entre sí. Comparada con las tarjetas SD, la memoria eMMC generalmente presenta las siguientes diferencias:
- Es más robusta y menos propensa a sufrir corrupciones físicas
- La interacción es más rápida
- Es más costosa
- Va soldada en el tablero y no es extraíble
Si el usuario no necesita extraer la memoria, la eMMC es la solución más sólida, pero dependerá de la aplicación final. En cualquier caso, es necesario que los desarrolladores elijan las memorias meticulosamente, porque no todas son iguales.
Por ejemplo, para un subsistema que se colocará en un automóvil puede ser necesario que la memoria esté verificada y certificada como confiable con un estándar más alto que el de los dispositivos de memoria flash estándar. En este caso, el desarrollador buscaría una memoria autocalificada, como la del módulo eMMC SM668GE4-AC de 4 Gbyte Silicon Motion.
Cuando se trata de tarjetas SD, los desarrolladores deben prestar mucha atención a lo que compran, ya que, al igual que las memorias eMMC, no todas las tarjetas SD son iguales. Los desarrolladores deben examinar meticulosamente la clase de velocidad y la temperatura de funcionamiento de la tarjeta. Por ejemplo, la mayoría de las tarjetas SD tienen una clasificación de entre 0 ºC y 70 ºC, la cual es apropiada para la electrónica de consumo.
También hay clases de velocidad asociadas a cada tarjeta, que describen la velocidad máxima de interfaz esperable. Por ejemplo, una clasificación de Clase 2 significa que una tarjeta será lenta para las aplicaciones de almacenamiento de imágenes, mientras que una tarjeta con una clasificación de Clase 10 está diseñada para los videos en HD, como la tarjeta microSD SQF-MSDM1-4G-21C SQFlash de 4 Gbyte de Advantech.
Ilustración 7: La tarjeta microSD SQF-MSDM1-4G-21C SQFlash de Advantech tiene 4 Gbytes de memoria y una clasificación de velocidad de Clase 10 de alta gama. (Fuente de la imagen: Advantech Corp)
Consejos y trucos para elegir una memoria
Seleccionar el tipo de memoria y la interfaz correctas para un producto integrado puede ser un desafío. A continuación, se brinda una serie de consejos y de trucos que deben tener en cuenta los desarrolladores al elegir la memoria adecuada para una aplicación:
- Identificar claramente las condiciones de funcionamiento de la memoria, tales como:
- Los ciclos esperados de borrado/escritura
- Las condiciones ambientales y factores como la temperatura, la vibración y la radiación
- Los requisitos de carga de datos
- Documentar las velocidades de bits mínimas, deseadas y máximas necesarias para utilizar con éxito la memoria en la aplicación
- Seleccionar el tipo de interfaz de memoria que se adecúe mejor a la velocidad de bits deseada documentada
- En los casos de condiciones ambientales adversas, como en los sistemas automotrices o espaciales, seleccionar una memoria que tenga una calificación automotriz o que sea tolerante a la radiación
- Utilizar una placa extraíble para probar el dispositivo de memoria seleccionado integrándolo con el kit de desarrollo del microcontrolador
Estos consejos ayudarán a los desarrolladores a seleccionar la memoria adecuada para su aplicación integrada.
Conclusión
Hoy en día, los desarrolladores deben elegir entre una amplia gama de dispositivos de memoria no volátiles que se pueden utilizar para almacenar datos que van desde el código de la aplicación hasta la información de configuración. Como se demostró, es necesario que los desarrolladores evalúen meticulosamente las necesidades de sus aplicaciones y, luego, seleccionen la interfaz y el tipo de memoria adecuados equilibrando esas necesidades con el costo.
Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de DigiKey o de las políticas oficiales de DigiKey.

