0
\$\begingroup\$

I need to interface some sort of RAM with an ARM processor for my embedded project. Around 128 MB to be exact. I found a computer RAM which claims to be DDR and 1 GB. As I only need 128 MB of RAM for my project, can I just get those individual chips from the RAM and use it in my project? Or is some sort of external circuitry a must? I want to access it through the address and the data bus.

\$\endgroup\$
6
  • 3
    \$\begingroup\$ Which STM32? You must check first if it has DDR support before you can connect it. \$\endgroup\$ – Justme Jul 8 '20 at 17:45
  • 1
    \$\begingroup\$ First you need to find a CPU with a RAM controller. Then find a open source SBC design as a starting point. But why not just buy something off the shelf from vendors like olimex? \$\endgroup\$ – user3528438 Jul 8 '20 at 17:46
  • \$\begingroup\$ If the speed isn't too important, I would look for something easy to interface, like SPI RAM. DDR RAM is designed for speeeeeeed so it's a bit complicated. \$\endgroup\$ – user253751 Jul 8 '20 at 18:18
  • \$\begingroup\$ @user253751 The speed is important, but not too much. I am looking for something around 480 mhz. \$\endgroup\$ – James B. Reese Jul 8 '20 at 19:06
  • \$\begingroup\$ If you're married to an STM32, then the only ones which wall talk to DDR SDRAM are the STM32MP1 devices. However if you can manage with non-DDR SDRAM then an STM32H7 can talk to a pair of Winbond W989Dxxx devices which will give you a total of 128MB (1Gb). I hope you're confident routing high-speed PCBs ... \$\endgroup\$ – brhans Jul 9 '20 at 0:39
3
\$\begingroup\$

The individual chips are 128M × 4 bits, so the number of chips you need would depend on how wide you want your data bus to be. For example, if you want an 8-bit data bus, you'd need 2 chips.

If you want a full 32-bit data bus, you'll need 8 chips — half the chips on the module — so you might as well just get a module socket and plug the whole thing in.

You can get SDRAM chips that are up to 16 bits wide; you'd only need two of those to fill up the width of a 32-bit bus.

\$\endgroup\$

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.