Main Site Documentation

Adding memory to an STM32F405


#1

Hi all,

I recently created a custom board with an stm32F405 MCU and an ENC28 PHY. This works great, but for a new project I would like to expand this design with a webserver for configuration purposes.

When I tried to run the server on the new board, I quickly ran into memory issues when serving the pages, since I have a lot of replacing to do to make the pages dynamic.

So, I’m considdering adding additional memory to the board, but this is completely new for me. I suppose I have to find a suitable chip and modify the firmware so the MCU is aware of it?

Anyone any experiece with doing something like this?


#2

I would check STI’s Discovery boards for reference. I know that F429 has support for SDRAM and their Discovery board has it. Not sure about F405 though.


#3

You need 100pin package as minimum to get at the FMC (Flexible memory controller) and if you want to add SDRAM you will need at least 144pin package


#4

As a note FMC only available on F42xxx/F43xxx devices


#5

I’m confused.
In the datasheet of the 32F405 it says: FMSC memory controller available, but only in 144 pin package.

Would that involve huge changes to the firmware in order to make it work? I was intending to use the CERB family firmware as a starting point, but I assume that won’t be simple?


#6

@ Architect - No, also on some F40xxx and F41xxx devices. For example, the STM32F407IG. But as Bill Gates mentioned, you need one of the larger packages.


#7

So, let’s assume I would pick the 144 pin package: What kind of changes have to be made to the firmware? I assume the MCU needs to be aware of the additional memory?

How much RAM should I add? I used my webserver before on EMX and that works fine, but I believe that EMX has 10 MB or something? Any suggestions on suitable chips?

I will take a look at the discovery reference design later tonight, as suggested by Architect.


#8

Hmm. Then their datasheet must be wrong, unless you are talking about the FSMC and not the FMC.


#9

FMC it’s kind of extended or replacement version of FMSC with support of SDRAM.


#10

@ Architect - Yes, you are right… I was thinking of the FMSC, which doesn’t support SDRAM. However, one could use a pseudo-static DRAM with the FMSC.


#11

@ NickS

Yes, you need 144 pin package.
Take a look for source code of firmware for STM3240G-EVAL.

http://www.st.com/web/en/catalog/tools/FM116/SC959/SS1532/PF252216

In file “system_stm32f4xx.c” look for the function void SystemInit_ExtMemCtl(void)

That function doing SRAM initialization.

I followed suggestion by “jay”, that really helped me a lot from forum thread:

https://www.ghielectronics.com/community/forum/topic?id=11451&page=2#msg117998

But my personal suggestion, better to go with STM32F429.


#12

Ok, I think I have enough to get me started.
For electronics design, I will look into the discovery board.

As far as changing the firmware, I think I will get started on getting the cerb sources to compile with gcc. According to some people on the forum this is quite a challenge on its self.

@ slawek: would you mind explaining why you would go with the F429? And thank you for the link to jay’s reply.

@ Architekt: You are right about the datasheet. It mentiones FSMC.


#13

@ NickS

Your are welcome.
About F429, it’s has more peripherals, 2MB Flash and 256KB on board and with FMC controller you can use cheaper SDRAM, but the price difference just a few bucks. I was able to compile and run cerberus firmware on it without any problems. Only the problem i had is to properly configure memory map and scatter files to use external SDRAM. But i hope guys from Oberon will release soon the source code for the firmware 4.3 and will try again.


#14

Unless you need the tft controller use the 427 as they are easier to come by and with revision Y silicon they can run at 180mhz.


#15

Oh yeah, revision Y silicon and 180Mhz. STM FTW.


#16

I too suggest just going to the 100-pin STM32F427 chip that has the extra memory. It’s probably a big change from the 64-pin you’ve been using up to now, but it is a simple change in hardware that has longer term benefits and is simpler to use since you don’t have to think about external memory.


#17

@ Brett - I will probably use the STM32F427, but I’m affraid if the RAM is large enough though. I probably still end up adding additional memory.

@ slawek - What SDRAM did you use in your design? Any chance you would share the schematics for adding this to the F427? I was looking into the discovery reference designs, but can’t find anything that makes sense to me…

@ Bill Gates - No, I don’t need the display controller at this time. Thanks for pointing that out.


#18

@ NickS

I have played with 32F429IDISCOVERY.

All documentation located here:

http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF259090

Schematics and design details:


#19

Looks like it uses this one:

http://www.issi.com/WW/pdf/42-45S16400J.pdf

8 megabyte - not bad!

$3.45 at DigiKey:
http://www.digikey.com/product-detail/en/IS42S16400J-7TLI/706-1132-ND/2708624


#20

@ Cuno
Cuno, Do you have any plans to release source code for management of external SDRAM in stm32f42x MCU’s?