Arduino Writing/Read to extra RAM/Memory?

So I've done some googling...but haven't found anything definite.
Is there any guides on writing and Storing (and then later retrieving Data) from Extra RAM?
Like EEPROM/NAND FLASH/Etc...?

(Im not talking about Onboard stuff, im talking about EXTRA chips). I realize there are easier ways (like storing to an SD card or something) but this is more for a learning experience. Like for example if I wanted to store Temperatures over a 24H period or something?

That being said, what would be the different types of Memory I could use? and which one would be easiest/best?

Simplest would be an SPI (or I²C) connected serial SRAM or EEPROM chip. Many manufacturers make them, and they are pretty standard.

Isn't EEPROM a type of Flash memory (maybe not).
Im not sure of the difference between SPI and I2C exactly? Which one is the most commonly used?

as far as SRAM or EEPROM? any advantages/dis to using one over the other (Besides SRAM being Volatile?)

SPI and I²C are both synchronous serial protocols. SPI is full duplex 1:1 (master to slave), using chips select lines to select the right slave. I²C is half duplex 1:many using addresses in the protocol to select the right slave.

SPI is faster, but uses more connections. It's a trade-off between the two. If you want fast, go for SPI. If you want low pin count, go for I²C.

SRAM is faster to work with that FLASH (EEPROM), and will last longer - you can only write to flash a certain number of times before it becomes unreliable.

Isn't EEPROM a type of Flash memory

It is similar in terms of it not being volatile but after that it is totally different.
You can write and read from flash faster, but it will not withstand as many write cycles as EEPROM.

Alternatively, you could use slightly more expensive FRAM (ferro-electric RAM). Fast read/write speeds like SRAM, non-volatile storage of EEPROM without the write speed penalties, no battery-backup needed like SRAM would need.

Example
http://www.mouser.com/ProductDetail/Ramtron/FM25C160B-GA/?qs=OiTXcupis6FbFg6nGTI9f6uZRnf%2FJFxf%252br5IcAvGZMM%3D
Larger sizes also available; may need 3.3V & signal buffering, read the data sheets.

I'm waiting for Memristor RAM to be available on the open market at a price that is affordable... :wink:

These are super helpful. And Write/Read speeds aren't a Problem. So SRAM would be probably easier.
Isn't SRAM kinda being mostly replaced by FLASH tho?

Isn't SRAM kinda being mostly replaced by FLASH tho?

Not in the slightest. SRAM is essential for microcontrollers to operate. FLASH lacks the speed and longevity for it to be viable as temporary storage.

It has largely been replaced by DRAM though in more complex systems, but microcontrollers tend to lack the extra hardware required to refresh DRAM internally.

I see, DRAM are Capacitors correct? I guess they'd need the charges refreshed.

is SRAM a viable thing for storing temperatures you think though?

Yes, SRAM will hold whatever you write into it as long as power is applied.

DRAM, yes, needs continual refresh.

FRAM, write to it fast like SRAM, is nonvolatile like EEPROM, not prone to write-cycle burnout tho.

Mercfh:
So I've done some googling...but haven't found anything definite.
Is there any guides on writing and Storing (and then later retrieving Data) from Extra RAM?

(Im not talking about Onboard stuff, im talking about EXTRA chips).

Example of adding SRAM here: Gammon Forum : Electronics : Microprocessors : Connecting SRAM to your microprocessor using SPI

1 Like

Mercfh:
is SRAM a viable thing for storing temperatures you think though?

You need to have a method of getting them out of the RAM before the power goes off. Just as an example, connect up a laptop to the serial pins, hit a button, and make it send the collected data out the serial port. There are quite a few ways you could do it.

But really, an SD card is pretty simple, and then just pull the card out and put it into your PC.

But as a learning experience, sure, play with the SRAM chips.