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.
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.
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.
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.
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??