3
\$\begingroup\$

Chips like the ESP8266 or ESP32 typically only have a couple of hundred kB of RAM. Alternatively, you can buy boards with chips like the NXP i.MX 6, with which you can have gigabytes, but suddenly you're at the level of "embedded Linux" in terms of complexity, and it also looks fairly hopeless to solder such a board together yourself.

Is there a middle ground which...

  • is still simple to program (... think "ESP"; maybe a simple RTOS but no MMU and processes and drivers etc etc)
  • ... it also doesn't need high performance (probably not clocked a lot more than 100 MHz
  • has access to a couple of hundred megabytes of RAM
    • which doesn't need to be extremely fast, but at least a couple megabytes per second would be nice (... think "streaming out a couple uncompressed audio streams")?
\$\endgroup\$
8
  • 2
    \$\begingroup\$ Why not stream from a SD card? \$\endgroup\$
    – bobflux
    Commented Mar 26, 2021 at 21:17
  • 2
    \$\begingroup\$ Lots of RAM = wiring up said RAM = lots of pins = complicated processor \$\endgroup\$
    – DKNguyen
    Commented Mar 26, 2021 at 21:18
  • \$\begingroup\$ An FPGA with a DDR memory interface and the soft core of your choice is probably your best bet. \$\endgroup\$ Commented Mar 26, 2021 at 21:21
  • 1
    \$\begingroup\$ Gigabytes of slow memory is probably a better fit for NAND than DRAM, especially if you want a simple microcontroller. \$\endgroup\$ Commented Mar 26, 2021 at 21:25
  • 3
    \$\begingroup\$ Latanius, Streaming fast doesn't necessarily mean that you need hundreds of megabytes of RAM. I could easily handle several uncompressed audio streams using an early 1990's ADSP-2111, for example. My own application on that chip at that time supported bit-banging (zero hardware support -- all control lines handled in software) a 1.5 MHz 16-bit ADC (external) as well as all of the necessary processing required for that stream rate. Piece of cake. But I didn't need 100's of Mbyte of RAM. Why do you feel you need it? \$\endgroup\$
    – jonk
    Commented Mar 26, 2021 at 23:12

2 Answers 2

5
\$\begingroup\$

Sure, there's middle grounds, such as cortex-M4 MCUs with memory controllers for SDRAM.

They make sense in only select applications: once you have loads of memory, you either yearn for something that's very number-crunching, like an actual DSP as CPU, or even things that aren't microprocessors, especially FPGAs. Or, you need that much RAM to run multiple processes with isolated jobs, in which case, yes, maybe you're crossing over into lands where a memory-managing/segmenting OS on an application processor is what you actually need.

is still simple to program (maybe a simple RTOS but no MMU and processes and drivers )

I think you're forgetting that MMUs make writing software easy, not harder! If you think programming your MMU is hard, then you're probably not actually doing things with a lot of RAM in different processes, or your appreciation of "complexity" is skewed from what the rest of us consider hard to do right :)

Any embedded developer I've ever talked to will tell you that writing a service to run under Linux or Vxworks is way easier than writing a safe, reliable, self-recovering task on a microcontroller that handles a lot of data. An OS job is to make the developer's life easier. That developer being you.

... it also doesn't need high performance (probably not clocked a lot more than 100 MHz

I wonder why you need much RAM if you can't go through it performantly? Maybe a "small" microcontroller with a SPI RAM is sufficient for what you need. Or flash? who knows your actual use case...

at least a couple megabytes per second

That does sound like you want a CPU in the 100 MHz range or more, or you'll have little use for that much data. More than half a century of system design has yielded that for basically all microprocessor applications, you only need RAM that's significantly slower than the CPU is at processing data. (This looks different for dataplane applications, where a CPU the job of only controlling data flow, not ever touching the data itself, but I guess you're not building a network switch"

\$\endgroup\$
1
  • \$\begingroup\$ Awesome, thanks for the detailed answer! That "couple of megabytes" was probably something that I didn't quite end up thinking through... but then I did end up learning a lot from it (e.g. why people aren't trying to solve problems with this particular combination, along with how you'd do it if you'd really have to). (I think the question was more of the "how would you get people on the moon with a cannon" kind: in response, you get to hear about all of "physics", "spaceships" and "actual cannons" :)) \$\endgroup\$
    – Latanius
    Commented Mar 27, 2021 at 0:37
0
\$\begingroup\$

Once upon a time there was Allwinner's V3S which was an ARM processor and 64 Mega bytes of RAM embedded in TQFP 100 package.

Sochip was the authorized distributor which made also it's demo board.

It costed 3 bucks for 5k parts.

There was an amateur who started an interesting project called Lichee Pi Zero:

https://www.google.com/url?sa=t&source=web&rct=j&url=https://www.licheepizero.us/&ved=2ahUKEwjb5Kvz9M7vAhVmDGMBHVJYD0IQFjABegQIFRAC&usg=AOvVaw03RljRW8gOU0fQbJa_qJ2X

Suddenly it became obsolete and replaced by a bigger one with more RAM but packaged in a BGA module.

To answer question:

Renesas sells a family of ARM processors with 3/5/10 Mbytes of embedded RAM. It's the RA family. The RAM type is: static and not dynamic.

NXP has recently introduced a family of ARM processors with 5 Mbytes of embedded RAM.

You need Yocto to create your custom Linux distro to fit in 5 or 10 Mbytes of RAM.

You will not have problems in creating a custom distro under 10 Mbytes. You might have some problems under 5 Mbytes.

\$\endgroup\$
1
  • \$\begingroup\$ if you're into this kind of thing: Microchip has what they call "SOM"s, pretty much that, but better integrated. Their System-in-Packages (just the CPU and the RAM, essentially, in a flat multi-die IC package) like 10 USD, I think, in singles. Rockchip does similar things, too. \$\endgroup\$ Commented Mar 26, 2021 at 23:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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