Electronic – How do MCUs and RAM wire up for programmatic access

armmicrocontrollerram

I am new to electronics and microcontroller programming and need either confirmation that my understanding on a few items is correct, or I am in desperate need of correction on them!

I have a C-based server that requires about 2GB RAM to function properly. I am interested in seeing if there's any way to flash this program to an ARM-based MCU, such as the Raspberry Pi or the STM32. If my understanding of MCU componentry is correct, the Raspberry Pi simply cannot handle this RAM demand, because its a Broadcom/ARM chip affixed to an SoC with fixed memory ICs.

However, it is also my understanding that non-SoCs such as the STM32 can be wired up to any kind of memory chip. I found these 4GB memory cards, and am wondering if it is possible to place one of these on a PCB alongside an ARM-based MCU, thereby allowing the ARM chip to actually run a very large program on it.

So I ask: is this possible to do? If not, why? How are they incompatible with each other? If so, how are they typically wired up? Does an engineer look at the datasheets for both chips and figure out the wiring/IO between them?

I guess at the end of the day, I'm wondering why there aren't more MCUs out there with crazy big memory; and I'm thinking it's either because most embedded/MCU programs don't need that much memory, or its because – for some reason – they can't.

Best Answer

The answer is economy.

The optimal processes for CPU and RAM are different, so when both are on the same chip some compromise must be found. For a small chip (not that much RAM) this does not hurt so much, less than adding an external RAM and using a lot of IO pins to interface to it. For a large RAM (currently the switchover seems to be at ~ 100Kb) it makes more sense to put the CPU and RAM on different chips. Making large RAMs is a very specialized high-volume buisiness, so better use what is there in the market than developm a new chip.

The RAM you link to is PC-style DDR3 dynamic RAM module. Such a module has a specific interface which is not compatible with the (old) standard address-lines + data-lines + control bus found on most MCU's. I think you would need a glue chip (bridge) to make such a connection. And yes, engineers read the specs and make the wiring (including anyb glue chips needed, power supply things, careful timing etc.) This might sound simple but it is not.

Related Topic