Está en la página 1de 21

Memorias en Arduino Uno

ASIGNATURA AMI4101
SEMANA 13
INTRODUCCION

Aplicación de microcontroladores
Objetivo

• Conocer las diferentes tipos de memorias de un


microcontrolador.
• Identificar el funcionamiento de una memoria EEPROM.
• Manejar la librería para el uso de una EEPROM.

Motivación

Técnico en electricidad y automatización industrial


Las memorias del microcontrolador

Aplicación de microcontroladores
Un aspecto importante sobre el uso de
microcontroladores son los tipos y
cantidades de memoria que alojan en su interior.

En el caso del ATmega328 se tiene:

Flash SRAM EEPROM

Técnico en electricidad y automatización industrial


Memoria FLASH

Aplicación de microcontroladores
Memoria donde se almacena permanentemente el programa que
ejecuta el microcontrolador (hasta una nueva reescritura).

En el caso del ATmega328P tiene una capacidad de 32KB

En los microcontroladores que vienen incluidos en la placa Arduino


no se puede usar toda la capacidad de la memoria Flash porque
existen 512 bytes (el llamado “bootloader block”) ocupados ya por un
código preprogramado de fábrica (el llamado “bootloader” o “gestor
de arranque”).

Técnico en electricidad y automatización industrial


Memoria SRAM

Aplicación de microcontroladores
memoria volátil donde se alojan los datos que en
ese instante el programa (grabado separadamente
en la memoria Flash) necesita crear o manipular
para su correcto funcionamiento.

Estos datos suelen tener un contenido variable a lo


largo del tiempo de ejecución del programa y cada
uno es de un tipo concreto (es decir, un dato puede
contener un valor numérico entero, otro un número
decimal, otro un valor de tipo carácter… también
pueden ser cadenas de texto fijas u otros tipos de
datos más especiales).

Técnico en electricidad y automatización industrial


Memoria SRAM

Aplicación de microcontroladores
Técnico en electricidad y automatización industrial
Memoria SRAM

Aplicación de microcontroladores
Las memorias SRAM se organizan en grupos de bits o bytes (16, 24,
32, etc…)

Técnico en electricidad y automatización industrial


Memoria SRAM

Aplicación de microcontroladores
Independientemente del tipo de dato, su valor siempre
será eliminado cuando se deje de alimentar
eléctricamente al microcontrolador.

En el caso del ATmega328P esta memoria tiene una


capacidad de 2KB.

Si necesitáramos ampliar la cantidad de memoria SRAM


disponible, siempre podríamos adquirir memorias SRAM
independientes y conectarlas al microcontrolador
utilizando algún protocolo de comunicación conocido por
este (como SPI o I2C, de los cuales hablaremos
enseguida).

Técnico en electricidad y automatización industrial


Memorias ROM

Aplicación de microcontroladores
El nombre ROM proviene del inglés read only memory y
corresponde a un tipo de memoria que almacena datos
permanentes durante su proceso de fabricación.

Técnico en electricidad y automatización industrial


Memoria EEPROM

Aplicación de microcontroladores
Memoria persistente donde se almacenan datos que
se desea que permanezcan grabados una vez
apagado el microcontrolador para poderlos usar
posteriormente en siguientes reinicios.

En el caso del ATmega328P esta memoria tiene una


capacidad de 1 KB, por lo que se puede entender
como una tabla de 1024 posiciones de un byte cada
una.

Técnico en electricidad y automatización industrial


Uso de la librería EEPROM

Aplicación de microcontroladores
La librería oficial EEPROM consta tan solo de dos
funciones:

EEPROM.write(): Escribe un byte en una celda


especificada de la EEPROM.

Tiene dos parámetros: el primero es el número de celda


donde se escribirá el byte (existen 1024, empezando por
la número 0); el segundo es el valor a escribir, el cual ha
de ser un valor entero entre 0 y 255. No tiene valor de
retorno.

Técnico en electricidad y automatización industrial


Uso de la librería EEPROM

Aplicación de microcontroladores
Hay que tener en cuenta que una escritura de la EEPROM
tarda 3,3 ms en completarse, y sobre todo, que esta
memoria tiene una vida media de 100000 ciclos de
escritura/borrado, así que se tiene que ir con cuidado con
esto.

EEPROM.read(): lee un byte de la celda especificada.


Tiene un parámetro: el número de celda de donde se lee el
byte (existen 1024, empezando por la número 0).

Su valor de retorno es el valor del byte leído. Las celdas


que nohan sido escritas previamente guardan un valor de
255.

Técnico en electricidad y automatización industrial


Ejemplo uso EEPROM

Aplicación de microcontroladores
#include <EEPROM.h>
int i,celda = 0;
byte valor;
void setup()
{
Serial.begin(9600);
/*Escribe la mitad de la memoria EEPROM (los primeros 512 bytes) con
valores que coinciden con su índice. Se puede observar cómo cuando se
quiere escribir un valor mayor de 255, se empieza de 0 otra vez.*/
for (i = 0; i < 512; i++){
EEPROM.write(i, i);
}
}

Técnico en electricidad y automatización industrial


Ejemplo uso EEPROM
void loop()

Aplicación de microcontroladores
{
//Lee el byte ubicado en una celda
valor = EEPROM.read(celda);
//Se muestra el nº de la celda y el valor acabado de leer
Serial.print(celda); Serial.print("\t");
Serial.print(valor); Serial.println();
//Se mueve a la celda siguiente
celda = celda + 1;
/* Si ya he llegado a la última celda que contiene valores escritos
en el setup(), se vuelve otra vez al principio. */
if (celda == 512){
celda = 0;
}
delay(50);
}

Técnico en electricidad y automatización industrial


Comparación de memorias

Aplicación de microcontroladores
Celda con un Reescribible
Tipo de Alta
Volátil solo en el sistema
memoria densidad
transistor final
Flash No Si Si Si
SRAM Si No No Si
DRAM Si Si Si Si
ROM No Si Si No
EPROM No Si Si No
EERPOM No No No Si

Técnico en electricidad y automatización industrial


Aplicaciones memorias EEPROM

Aplicación de microcontroladores
• La principal aplicación corresponde a su función,
almacenar datos que no sean borrados al momento de
desenergizar el microcontrolador.

• Registro de contraseñas.

• Almacenamiento de datos capturados por un sensor


(DAS, data adquisition system).

• Parámetros de configuración de carácter vital.

• Cualquier tipo de dato que necesite ser almacenado de


forma permanente.

Técnico en electricidad y automatización industrial


Repasemos

Aplicación de microcontroladores
• Arduino uno posee 3 memorias ram: SRAM,
Flash e EEPROM
• La EEPROM tiene una capacidad de 1KB.
• Existe una librería para utilizar la memoria
EEPROM.
• La EEPROM se emplea para almacenar datos no
volátiles.

Técnico en electricidad y automatización industrial


Repasemos

Aplicación de microcontroladores
En base a lo estudiado sobre memorias en arduino uno:

¿Qué es una memoria?


¿Cuántas memorias tiene arduino uno?
¿Cuáles son las memorias que posee arduino uno?
¿Cuál es la principal característica de una memoria
SRAM?

Técnico en electricidad y automatización industrial


Repasemos

Aplicación de microcontroladores
¿Cuál es la principal característica en la memoria
FLASH?
¿Cuál es la principal característica en la memoria
EEPROM?
¿Cómo se puede utilizar la memoria EEPROM?
¿Cuánto es la capacidad de la memoria EEPROM en
arduino uno?
¿Cuáles son las principales aplicaciones donde se utiliza
la memoria EEPROM?

Técnico en electricidad y automatización industrial


Debe ser capaz de…

Aplicación de microcontroladores
• Conocer las memorias disponibles en la placa arduino
uno.
• Identificar las características de las memorias flash,
sram y eeprom.
• Manejar la librería EEPROM.
• Identificar las principales aplicaciones de la memoria
EEPROM.

Técnico en electricidad y automatización industrial


Recuerde que el Aprendizaje:
10% es en clases
90% lo hace el estudiante

También podría gustarte