1
\$\begingroup\$

I am designing a device that does not have an external bus interface and requires a modest ram size for binary data buffering. 16mb would be great, more would be awesome.

It's quite easy to find SPI flash that are 32 - 64 mb, but a lot more complex to find > 4 mb SPI RAM.

I found one 4mb at cypress :

http://www.cypress.com/documentation/datasheets/cy15b104q-4-mbit-512-k-8-serial-spi-f-ram-datasheet

But :

  • I would need to have 4 chip. That's lot of PCB area.
  • It cost a lot. The unitary price is almost 27$ ( ! )

What other options do I have ?

\$\endgroup\$
  • \$\begingroup\$ That's FRAM (ferroelectric, non-volatile), not ordinary SRAM or DRAM. No wonder it's more expensive. \$\endgroup\$ – Abe Karplus Aug 30 '17 at 10:23
  • \$\begingroup\$ I have to say 16Mb does not seem "modest"! I would be looking at changing to a micro with an external bus. The cost will be way lower, I have looked for serial SRAMs with little success in the past. \$\endgroup\$ – DiBosco Aug 30 '17 at 10:41
  • \$\begingroup\$ 16mb does not seems me huge. I mean for a MCU it's quite big but we have been working on some other project with 256 MB parallel ram. Hence " modest ". \$\endgroup\$ – FR_A91 Aug 30 '17 at 11:48
  • \$\begingroup\$ I didn't use the word huge, but in terms of the overwhelming majority of embedded systems I have worked on, it's a lot and certainly not modest. \$\endgroup\$ – DiBosco Aug 30 '17 at 12:48
3
\$\begingroup\$

You can get 512MB for $10 and they even throw in a complete ARM computer around it.

If you really want a serial RAM to retrofit on an existing board, the irony of modern ultra-mass-production is that it would probably be cheaper to stick the above ARM SBC with a little bit of code on it to emulate a serial RAM than to purchase the dedicated hardware device (if it even exists). And while you're at it, replace the existing micro with it...

If this is for DIY or low production volumes, I suggest you use such a module. Otherwise, there are Cortex-M4 or M3 micros with SDRAM interfaces, so you can simply add a cheap SDRAM chip.

The drawback of SDRAM and a big cpu is the higher power consumption versus SRAM and a slow cpu. If you absolutely need very low power, then that will be an issue. But SRAM is a lot more expensive and less available than SDRAM.

Here's another non-volatile option but also too small and expensive, although these non-volatile chips offer an interesting option: power draw is very low when not in use, because you can power them down!

What kind of speed and power do you need?

If this is for data logging, and the data throughput is low enough, the number of writes low enough, you could also use a SPI flash...

\$\endgroup\$
  • \$\begingroup\$ I can't replace the existing micro... That's the whole point. It's the only one that support all the communication channels I need ( Flexray , CAN FD 2015, Ethernet, USB ) Actually, using an SPI flash is not a bad idea. I guess it highly depend on the chip erase time, I have to give it a try. 1 - 2 mb per second would be OK. \$\endgroup\$ – FR_A91 Aug 30 '17 at 12:00
  • \$\begingroup\$ It has ETHERNET?... No problem then, implement the buffer into another networked device! Like a Raspi, or whatever. Or USB, you can program a ARM SBC as a USB device, using usb-gadget lib, so you can turn your $10 NanoPi into a RAM-based USB mass storage device. \$\endgroup\$ – peufeu Aug 30 '17 at 12:04
0
\$\begingroup\$

Once you get beyond 4MB, people generally switch to DRAM to save money. That means there's virtually no commercial pressure to develop larger SRAM or bring its price down.

So the answer to the question is simple : your other option would be DRAM. Which doesn't have an SPI interface, so you're looking at a 2-chip solution. It's still smaller and cheaper than a 4-chip SRAM solution, but more power hungry.

You could use a microcontroller with both SPI and DRAM interfaces as your SPI interface, or a small FPGA if you need more performance. Probably more practical to re-think that "no external bus" design constraint.

\$\endgroup\$
  • \$\begingroup\$ So you would use a 2nd MCU to make an SPI - DRAM interface for 1st MCU ? That's a good idea ! Any MCU recommandation ? \$\endgroup\$ – FR_A91 Aug 30 '17 at 11:56
  • \$\begingroup\$ Something fairly fast, with an easy DRAM interface, and an SPI interface that you can use as a slave. Nothing specific. \$\endgroup\$ – Brian Drummond Aug 30 '17 at 12:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.