Skip to main content
Lead
February 23, 2019
Question

How can I extend much more RAM on STM32?

  • February 23, 2019
  • 7 replies
  • 9777 views

Hello!

I have just currently developed a matrix library for embedded systems. It works for all systems. The problem is that using matrices, takes lot of both ram memory and flash memory. So i need a better controller, but the largest RAM from STM32 i could find was 1 MB RAM from the STM32F7 controllers.

I wonder if there is a way to extend flash and ram for STM32?

My library:

https://github.com/DanielMartensson/EmbeddedLapack

You can see the programs I using. It's the system identification algorithm and model predective control algorithm.

This topic has been closed for replies.

7 replies

Tesla DeLorean
Guru
February 24, 2019

Look at the two STM32F7 DISCO boards with SDRAMs

Also STM32F429I-DISCO and STM32F469I-DISCO

Tips, Buy me a coffee, or three.. PayPal VenmoUp vote any posts that you find helpful, it shows what's working..
DMårtAuthor
Lead
February 24, 2019

But it's SDRAM?

STM32MP151AAC3 custom board with STM32-OS as operating system: https://github.com/DanielMartensson/STM32-ComputerSTM32MP257FAK3 custom board with STM64-OS as operating system: https://github.com/DanielMartensson/STM64-Computer
Tesla DeLorean
Guru
February 24, 2019

Ok, and the STM32F746G-DISCO also has 128 Mb (16MB) of NOR FLASH

Tips, Buy me a coffee, or three.. PayPal VenmoUp vote any posts that you find helpful, it shows what's working..
DMårtAuthor
Lead
February 24, 2019

Wow! 64 Mb RAM! That's very much! I will buy one of those!

STM32MP151AAC3 custom board with STM32-OS as operating system: https://github.com/DanielMartensson/STM32-ComputerSTM32MP257FAK3 custom board with STM64-OS as operating system: https://github.com/DanielMartensson/STM64-Computer
Tesla DeLorean
Guru
February 24, 2019

You could probably save some memory if you define some of your arrays as "static const" rather local/auto variable where it copies them to RAM, thus consuming twice the resources.

Tips, Buy me a coffee, or three.. PayPal VenmoUp vote any posts that you find helpful, it shows what's working..
DMårtAuthor
Lead
February 24, 2019

Thank you. I will think of it. Normally all matricies are not constant.

STM32MP151AAC3 custom board with STM32-OS as operating system: https://github.com/DanielMartensson/STM32-ComputerSTM32MP257FAK3 custom board with STM64-OS as operating system: https://github.com/DanielMartensson/STM64-Computer
S.Ma
Principal
February 24, 2019

FMC = parallel bus memory interface for typically SDRAM (display interface)

QSPI/OctoSPI = 4 bit or 8 bit parallel interface for serial flash, smaller form factor with little lower performance than parallel. sometime serial SRAM exist

SDIO microSD interface, typically for Flash NAND memory with file system with lower data throughput than QSPI due to file format/system

DMårtAuthor
Lead
February 24, 2019

So I cannot use the STM32F746G-DISCO board for my C-library and C-programs listed at my GitHub?

STM32MP151AAC3 custom board with STM32-OS as operating system: https://github.com/DanielMartensson/STM32-ComputerSTM32MP257FAK3 custom board with STM64-OS as operating system: https://github.com/DanielMartensson/STM64-Computer
S.Ma
Principal
February 24, 2019

Double support at core opcode level is fron stm32f76x

DMårtAuthor
Lead
February 24, 2019
STM32MP151AAC3 custom board with STM32-OS as operating system: https://github.com/DanielMartensson/STM32-ComputerSTM32MP257FAK3 custom board with STM64-OS as operating system: https://github.com/DanielMartensson/STM64-Computer
S.Ma
Principal
February 24, 2019

Search for

ARM Cortex M7 CPU with DPFPU in the description to confirm 64 bit double format support.

If not you will read FPU instead (32 bit float).

Do the reading and conclude.

DMårtAuthor
Lead
February 24, 2019

Weird. In this document, they say that STM32776xxx have DPFPU.

https://www.st.com/content/ccc/resource/technical/document/application_note/0e/53/06/68/ef/2f/4a/cd/DM00169764.pdf/files/DM00169764.pdf/jcr:content/translations/en.DM00169764.pdf

But the link above, say something else.

But anyway. I cannot use the Discovery board STM32F746G-DISCO.

STM32MP151AAC3 custom board with STM32-OS as operating system: https://github.com/DanielMartensson/STM32-ComputerSTM32MP257FAK3 custom board with STM64-OS as operating system: https://github.com/DanielMartensson/STM64-Computer
Tesla DeLorean
Guru
February 24, 2019

There are several STM32F7 parts. The F72x,F73xF74x,F75x parts have the smaller single precision FPU, where as the F76x,F77x have the large double precision FPU. The functionality not performed by the FPU is handled in software.

Why can't you use the STM32F746G-DISCO? You're writing/testing software.

The real problem seems that the STM32 is under resourced for your specific application.

Tips, Buy me a coffee, or three.. PayPal VenmoUp vote any posts that you find helpful, it shows what's working..
MNapi
Senior II
February 24, 2019

It is just impossible you would need external data and address bus to plug it in.

look for example for I2C RAM it can give you a few MB.

OLD fassion CPU like Intel, Zilog have data and address pins so you can connect as high as the address line allows. Here you are stock with whatever you have inside.

Tesla DeLorean
Guru
February 24, 2019

The STM32 provides for similar external bussing. The Z80 had NO internal memories beyond the register file.

I2C is hideously slow in the context of a processor running at a few hundred MHz

Now the STM32 will run a lot faster using its internal tightly coupled memories, and the external interfaces will eat a lot of pins, so there is a balance.

Tips, Buy me a coffee, or three.. PayPal VenmoUp vote any posts that you find helpful, it shows what's working..