Go Down

Topic: external RAM (Read 1 time) previous topic - next topic

HassanBasil

Hello everyone, this is my very first post here ^^

Alright so, I'm somewhat new to electronics, especially MCUs, and I bought an arduino mega1280
for a project i will be starting on, i need two buffers to store some bytes in, each one would need around 1256KB available, they will need to be re-written 30-60 times in a second (hope that is not so crazy :s), so i've been searching here and there on the net and i don't seem to find this size of RAM, i found this (datasheet) http://ww1.microchip.com/downloads/en/DeviceDoc/22100E.pdf, that's 256 KB each if i'm correct? well, so i thought i could use 5 of them for each buffer.

also note that i don't access both buffers at the same time, so just assume i have only 1 buffer (which is 5 RAMs).

my questions are:
well first off, SRAM stands for Static RAM, well, since it's "static", is it the right one to use for my issue? or i need a dynamic RAM (which i haven't found any so far on the net)
also, what's the clock speed of the RAM? would it make any difference? how so?
and, how can i hook a RAM (like the one mentioned above) to my arduino? in the datasheet: CS, SO, SI, SCK, what are they, and how to use them/access them through code?

Sorry if that's too much to ask
Thanks for reading.

fat16lib

These are 256 K bit not byte.  Your speed requirement is about 100 times faster than the SPI bus.

HassanBasil


These are 256 K bit not byte.  Your speed requirement is about 100 times faster than the SPI bus.


ah that's disappointing :/ thanks for your answer

well here's what im trying to do: i want to output data through VGA, so i need a place to store pixels in, 640*480*3 array won't work in the code so, i thought i should make a buffer to write my pixels to, well 2 buffers so that, when im writing pixels to a buffer, another circuit will be transferring the other buffer to the VGA, and the cycle goes on, and im trying to achieve 60 frames per second, which is, 60 arrays of pixels every second, each array would hold 640*480*3 bytes, approximately 1 MB

what could i do to achieve this? if the SPI is slow, are there some RAMs that uses some faster interface?

Grumpy_Mike

The arduino processor is about as good as computer processors were in the 80s. How many VGA computers were there then? None this was in the days before VGA. Graphics capabilities were limited. While a circuit read out bits from a memory to generate the video, that memory was not written to at video speeds but at slower speeds. The CPU architecture of these computers meant that external memory could be part of the computers main memory map. The architecture on processors like the arduino separates out data from memory, they occupy different spaces and they are not designed for extending the memory.
Sure you can bit bang external memory but it will never be at the speeds you are talking about.

Simply you have the wrong processor for your project so change the project or the processor.

HassanBasil


The arduino processor is about as good as computer processors were in the 80s. How many VGA computers were there then? None this was in the days before VGA. Graphics capabilities were limited. While a circuit read out bits from a memory to generate the video, that memory was not written to at video speeds but at slower speeds. The CPU architecture of these computers meant that external memory could be part of the computers main memory map. The architecture on processors like the arduino separates out data from memory, they occupy different spaces and they are not designed for extending the memory.
Sure you can bit bang external memory but it will never be at the speeds you are talking about.

Simply you have the wrong processor for your project so change the project or the processor.


I see, thanks for your input

keeper63

How many VGA computers were there then?


That's not completely, true, GM; there existed more than one VGA-resolution (and color capability) cards for old S-100 bus computers; I also remember reading a Byte magazine "Circuit Cellar" article on how to build such a system (although its memory was organized as multiple bit-planes - so you could go cheap and have high-res black and white, and add on extra memory boards to increase the color range, up to 8-bits IIRC).

Granted - these boards and systems weren't very quick to display things, they weren't standardized, they weren't cheap, and they were generally 3rd party add-ons that most hobbyists didn't have - and could only dream of - but they did exist!

I'm not trying to argue here - VGA certainly didn't exist in the early 1980s (not until 1987), but prior to the IBM PS/2, there were high-resolution, 256+ color graphical displays available to those who could afford it...

:)
I will not respond to Arduino help PM's from random forum users; if you have such a question, start a new topic thread.

Go Up