Easiest way to add RAM (32MB) to BX


#1

I building a glorified datalogger using a BX and I want to add some ram (in the order of 10-100MB). What are my options that don’t involve me learning how to solder BGA packages?
I don’t need it to be fast.
It doesn’t need to be non-volatile.
Cheap would be nice but is secondary.
Low power would be nice but it secondary.


#2

A little more info would help. What memory bandwidth do you need for the storage. Could a micro SD card be sufficient? Serial access would be nice and easy! :slight_smile: There are also plenty of cheap serial flash devices to be had.
SPI SRAM exists but not economical for the amount of storage you need. Interfacing to standard SRAM or DRAM is going to eat a lot of pins. And DRAM will take a fair amount of internal logic too.


#3

SPI flash use on BX? may be helpful.


#4

I’m aiming to generate a few MB of data every minute and offload the data every few minutes. I haven’t settled on exact numbers yet. I was avoiding using flash and sd cards because of concerns about write fatigue. I was hoping that by allowing volatile memory there was some other medium that would make endurance a non-issue.

My memory dating profile would read:
“FPGA seeks soic-8 package that can provide 32MB of sweet memories. I like long walks on the beach and 3.3V interfaces. Must have unlimited endurance”


#5

Always seems to be the case. Whenever anyone comes up with a good idea, there is always an edge case that makes it way more difficult than it should be!
I have had a bit more of a think about this. But please check my calcs as it is way past bedtime! Spreadsheet here

At say 4MB/min a 4GB SD card would fill once in about 0.71 of a day.
Even with 10,000 write endurance that would give you about 19 years endurance.
Most flash is rated closer to 100,000 writes, so I would say you are well inside a reasonable life of even a “professional” product. So it may still be worth considering?


#6

Remember endurance is how many times you can write to a specific address, not to the device in total. (Hence the use of “wear levelling” code to spread the writes across the device in embedded systems.)
You will hopefully be spreading your writes across the device naturally.