RamDisk - Fujitsu 256 KB FRAM in 8-pin DIP

I Just got a prototype breadboard FRAM shield working with the RamDisk file system.

I plan to use four MB85RS2MT chips in the final version for 1 MB of storage.

The raw performance results are about the same as the MicroChip 23LCV1024 SRAM. The FRAM chips have twice the storage.

The FRAM is a 3.3V part so level shifters are needed. I am using a 74HC4050 Hex non-inverting buffer which will handle SCK, MOSI, and four chip select lines. The 74HC4050 only costs $0.52 at Digi-Key.

The FRAM chips were $7.44 each at Digi-Key. 23LCV1024 chips cost $2.95 each so eight SRAM chips would cost a bit less but you need a coin cell for data backup and you need to deal with eight chip select lines.

I attached a photo of the one FRAM chip prototype and the performance results for the raw driver.

The performance is plotted as a function of transfer size for a read or write.

Did you consider MR25H40? 512kx8 SPI, also nonvolatile. The same performance as your FRAM.

Did you consider MR25H40?

Yes.

The 8-DIP package makes the MB85RS2MT easy to use.

Not many people hand solder DFN 8 to DIP adapters. The MR25H40 is in the big 8-pin 5 x 6 mm package with 1.27 pin spacing so I guess it won't be too hard. I use lots of SOIC packages and they have 1.27 pin spacing.

I was thinking about eight chips with a 3 to 8 decoder. I need a decoder that is also a buffer like the 74HC4050 that can take 5V in with 3.3 Vcc.

With several chips you will create 256kB segments - thus your driver has to organize the crossings of the segment's boundaries..

driver has to organize the crossings of the segment's boundaries

That's really simple. I already have a driver that easily works with any number of chips. File system allocation units don't cross chip boundaries so that makes the problem simpler.

In begin() for AVR I form an array of PORT address and bit for CS of each chip. I just index into the array with high address bits of the start address.

For Due I use pin number and digitalWrite.

I have tested it for a group of 128 KB SRAM and it is fast.

I'm reading the FRAM (23LCV1024) datasheet and having a little trouble finding the capacity. All I could find was this :

128K x 8-bit Organization:

Is that correct ? This chip has 128k of FRAM ?

I'm reading the FRAM (23LCV1024) datasheet

23LCV1024 is not FRAM. It is a 128 KB SRAM.

This topic is about MB85RS2MT 256 KB FRAM http://edevice.fujitsu.com/fj/DATASHEET/e-ds/MB85RS2MT-DS501-00023-1v0-E.pdf

Ferroelectric RAM (FeRAM, F-RAM or FRAM) is a random-access memory similar in construction to DRAM but uses a ferroelectric layer instead of a dielectric layer to achieve non-volatility.

oh, yeah , right. (duh) . I guess I missed that.

MB85RS2MT chips are now supported by the RamDisk library http://forum.arduino.cc/index.php?topic=229485.msg1656674#msg1656674.

A 1 MB RamDisk requires four 8-pin DIP chips plus a level converter. I used a 16-pin DIP 74HC4050. It is not difficult to fit this on an Arduino prototype shield.

fat16lib: A 1 MB RamDisk requires four 8-pin DIP chips plus a level converter. I used a 16-pin DIP 74HC4050. It is not difficult to fit this on an Arduino prototype shield.

Can A RamDisk be used to store the code and execute from it or only for data storage??

You cannot execute a code from a ramdisk. You may develop a mechanism, where you load the flash (and ram) from an external memory device and execute.

you might want to play with an interpreter - http://bitlash.net/ -

imagine one that reads a command from SD , executes and continues