martes, 8 de mayo de 2012

Memoria de Arduino

Cuando utilizamos un sistema integrado, en este caso para nuestro proyecto final de Arduino, es necesario saber sobre las fuentes que tenemos disponibles de memoria, es por esto que en esta entrada voy a hablar acerca de las diferentes memorias que contiene el Arduino y para qué sirven.



Una placa de Arduino tiene 3 diferentes fuentes de memoria, estas son:
  • La memoria flash.
  • La SRAM o la Static Random Access Memory.
  • La EEPROM  o la Electrically Erasable Programmable Read-Only

Vamos a hablar de cada una de ellas y cuales son sus funciones en la placa de Arduino.


Memoria flash.



La memoria flash es una memoria no volátil, esto quiere decir que el contenido de los datos que vamos a almacenar, no se van a perder, inclusive si no tiene energia, es el contrario de la volátil, entonces se pueden borrar y reprogramar eléctricamente, esta permite que podamos leer y escribir en múltiples posiciones de la memoria y por medio de estos impulsos electricos, tenemos velocidades rápidas, la memoria flash tiene una función específica en el Arduino, la cual es almacenar el sketch que vamos a realizar en la IDE, por lo que ahí ponemos lo que codificamos y que va a correr en nuestra placa.


SRAM
 
Es la memoria estática de aceso aleatorio la cual es un tipo de memoria utilizando semiconductores, la cual tiene distintas operaciones como el reposo o standby en donde el ponemos la memoria en este modo, el modo lectura o reading y el modo de lectua, actualizando los datos de la memoria, en la placa de Arduino sirve para que los sketches puedan manimular y almacenar las variables que nosotros necesitamos programar, al momento de ejecutar el programa.


EEPROM

La memoria EEPROM es la ROM programable y eléctricamente borrable, en donde podemos decir que es una memoria de solo lectura la cual podemos programarla, borrarla y reprogramarla eléctricamente, siendo tambien no volátiles, contienen transistores, puede ser leída ilimitadamente, peor borrada y programada entre cien mil y un millon de veces, la función de la placa de Arduino es que puede ser utilizada por nostros para almacenar información que ocupelos de largo plazo.


Como podemos ver, la memoria flash y la memoria EEPROM son memorias no volátiles, esto quiere decir que la memoria tiene información guardada aunque no tenga una alimentación de energia externa, a diferencia de la memoria SRAM ya que esta es volatil y esta se pierde cuando reiniciemos nuestra placa.


 Por ejemplo, en un chip de una placa de Ardunio, el ATmega168 tiene esta memoria.


  • Flash  16  kbytes, en donde 2 son los que se utilizan para el bootloader
  • SRAM 1024 bytes
  • EEPROM 512 bytes

Para nuestro proyecto final de Arduino, estamos utilizando el Arduino Bluetooth, en donde tenemos esta memoria


  • Flash 32 KB, en donde otra vez, 2 son usados para el bootloader
  • SRAM 2 KB
  • EEPROM 1 KB


¿Por qué es importante?

Esto es importante tenerlo en cuenta a la hora de programar nuestro Arduino ya que como podemos ver, no tenemos mucha memoria SRAM disponible, y si por ejemplo reservamos cadenas con mucho texto para mostrarlo en alguna pantalla, si ya no tenemos SRAM disponible, nuestro programa definitivamente no va a funcionar, esto quiere decir que nosotros vamos a compilarlo normal y pasarlo mediante USB en la IDE de Arduino, pero no va a funcionar en el Arduino o va a funcionar de una manera que no queremos.


Espero que esta entrada nos ayude a entender como funciona la placa de Arduino y saber que debemos de administrar correctamente la memoria para tener un programa eficiente.


Referencias.
Arduino - Memory
Memoria volatil
Memoria flash
Memoria SRAM
Memoria EEPROM

1 comentario: