XFLASH Support For F-RAMs (Ferroelectric Non-Volatile RAM)

Technical discussions around xCORE processors (e.g. xcore-200 & xcore.ai).
Post Reply
Corin
Experienced Member
Posts: 66
Joined: Fri Dec 11, 2009 3:38 pm

XFLASH Support For F-RAMs (Ferroelectric Non-Volatile RAM)

Post by Corin »

I've added support for the RAMTRON FM25V10 1Mbit Serial 3V F-RAM Memory to the list of spispec files for XFLASH.

This is not magnetic core (as used to land on the moon), but Ferroelectric RAM. It uses a ferroelectric instead of a dielectric layer and a construction similar to DRAM to be non-volatile.

This gives it the advantages of:
- Low power than FLASH
- Faster write performance (there are no write delays).
- Much larger umber of write cycles (at least 100 trillion).

You can read and write to it using xflash/flashlib, and the XCore can boot from it as if it was a normal FLASH.

Just though somebody might be interested...

Cheers,
Corin


User avatar
Folknology
XCore Legend
Posts: 1274
Joined: Thu Dec 10, 2009 10:20 pm
Contact:

Post by Folknology »

This is very cool thanks Corin, just out of interest what sort of sequential write speeds can you get over SPI with these?

regards
Al
Corin
Experienced Member
Posts: 66
Joined: Fri Dec 11, 2009 3:38 pm

Post by Corin »

It will accept data at line rate, with is up to 40MHz if running at 3V3.

A write operation has an overhead of 1 byte of command and 3 bytes of address. It then accepts data and auto-increments the address on each byte. If it reaches the end of memory, it loops back to the start.

So assuming running at maximum speed and writing long bursts where the data the write command overhead is neglible, then this would be 5M bytes per second.

Cheers,
Corin
User avatar
octal
XCore Addict
Posts: 228
Joined: Thu Jan 27, 2011 3:30 pm
Location: Argenteuil - France
Contact:

Post by octal »

Thank Corin for this update.

I have a question regarding EEprom usage.
Is there any drawback (or risk) at using a 256Kb SPI EEprom (instead of 128Kb), the first 128Kb will be used to store the program, and once my XMOS device booted and program loaded, the program itself will use the same EEprom to store data on the second half of the EEprom.?

If I take all care when programming to avoid using the first 128Kb half, is there anything else to care about?

PS. The main idea is to avoid having a second EEprom (and thus more PCB to route + decoupling cap) on the same board.
User avatar
bsmithyman
Experienced Member
Posts: 126
Joined: Fri Feb 12, 2010 10:31 pm
Contact:

Post by bsmithyman »

Hi Corin,
Thanks! I've got a couple of these, and I might try one with a converter in the DIP socket on my XC-1... It seems like they're sufficiently fast to act as a decent user-space RAM as well (if not as fast as parallel SRAM, it's still much faster than a lot of alternatives) for anyone looking for a bit more space. IIRC they come in up to 2 megabit modules, if you're willing to deal with the slightly higher current requirements of the FM25H?? series devices (which have similar interfaces otherwise).

Cheers,
Brendan
User avatar
octal
XCore Addict
Posts: 228
Joined: Thu Jan 27, 2011 3:30 pm
Location: Argenteuil - France
Contact:

Post by octal »

bsmithyman wrote:Hi Corin,
...(if not as fast as parallel SRAM, it's still much faster than a lot of alternatives)
...
Cheers,
Brendan
Yes but they are also a lot more expensive than the other SPI Ram alternatives. 32Kb SPI RAM from Microchip is only 20MHz but also costs only 1.24$ in low quantities (<25 units).
Corin
Experienced Member
Posts: 66
Joined: Fri Dec 11, 2009 3:38 pm

Post by Corin »

For general RAM I'd still probably just use a SPI RAM or better a parallel access SRAM, as they are cheaper. This is more suitable if you need to non-volatile nature. e.g logging data when something fails (think of a black box in your project).

@octal - there is no problem with using a larger flash - xflash/libflash has support for a user data area in the flash to allow applications to store data.

@bsmithyman - I have some of the FM25H devices, but unfortunately xflash cannot identify them as they are missing the RDID SPI command (basically they have no identifier ID). You should still be able to use them, but you can't actually tell it's on the end of the lines! I might have a play with one later...

Cheers,
Corin
Post Reply