lunes, 20 de febrero de 2012

Framebuffer en SRAM

Por ahora he estado utilizando un framebuffer almacenado en memoria de programa (FLASH). El problema es que la memoria de programa es de sólo lectura y voy a necesitar poder escribir el buffer para generar movimiento. Si la resolución utilizada es 208x144 y cada pixel ocupa 1 byte, necesito un espacio de memoria de 29.25Kb para almacenar la escena que tiene que salir por pantalla.

208 * 144 * 1 = 29952 bytes
19952 / 1024 = 29.25 Kb


Arduino Mega dispone de 128Kb (-4Kb del bootloader) y sólo 8Kb de SRAM. Necesito una solución. Pues bien, como siempre, googleando se encuentran soluciones. He encontrado varios módulos de RAM para Arduino:


El primero, de Andy Brown, es un shield de 512Kb especial para Arduino Mega. Dispone de una librería fácil de utilizar, pero he contactado con el autor y no tiene stock:

512Kb SRAM expansion for the Arduino Mega (Andy's Workshop)
http://andybrown.me.uk/ws/2011/08/28/512kb-sram-expansion-for-the-arduino-mega-build/

 El segundo que he encontrado, de Rugged Circuits, está basado en el primero, además utiliza la misma librería. También es de 512Kb:

QuadRAM (Rugged Circuits)
http://ruggedcircuits.com/html/quadram.html

La misma empresa tiene otro shield más sencillo, de 128Kb, de momento este es el que he pedido para hacer pruebas, pero me gustaría probar con más.


MegaRAM (Rugged Circuits)
http://ruggedcircuits.com/html/megaram.htm

El cuarto que he encontrado, de Adam Ward, también de 512Kb, y sólo utiliza 15 pins.

Open Source SRAM Memory Board (Wardy's Projects)
http://wardyprojects.blogspot.com/p/open-source-sram-memory-board.html


Y el último, de Science Prog, es algo más sencillo, el ejemplo tiene una memoria de 8Kb y puede llegar hasta 64Kb.

Adding external memory to Atmega128 (Science Prog)
http://www.scienceprog.com/adding-external-memory-to-atmega128/

Mientras llega el pedido iré desarrollando un software de edición de tiles en VB para poder probar la RAM.

No hay comentarios:

Publicar un comentario