cancel
Showing results for 
Search instead for 
Did you mean: 

Interfacing external SRAM STM32F205ZCT6

vindhyachal
Associate II
Posted on June 01, 2016 at 06:41

In one of application I need to hold large amount of data in SRAM around 20MB.

Which external SRAM should be used & any example code for interfacing it with STM32F205ZCT6. External SRAM required only for data holding for brief time not for code execution.

Systeminit.c file in keil project has setting for external SRAM but which SRAM to use & its timings?
6 REPLIES 6
knielsen
Associate II
Posted on June 01, 2016 at 08:28

In my experience, SRAM is hard to get in large capacities. A quick search on

digikey shows they have some 8 MByte devices available. You could put 4 of

them on the four banks of the FSMC to get a total capacity of 32 MByte.

PSRAMs are an order of magnitude less expensive than SRAM, and should work

(though I didn't try it). Again from my experience, this kind of capacity is

only available in small BGA packages (which may or may not be an issue for

you).

Once you have selected an SRAM (or PSRAM) IC, you need to check its

datasheet for the required timings to set.

What kind of access to the data do you need? Since you mention ''holding the

data for a brief time'', you might be able to use an SD memory card on the

SDIO. This would be a very simple solution if block-wise operation (512 byte

blocks) is sufficient. The SDIO can do around 10 MByte/second.

If you can select a different MCU, some of the other STM32 have a memory

controller (''FMC'') that can handle SDRAM. SDRAM can be obtained in much

larger capacities (and much cheaper).

Hope this helps,

 - Kristian.

Walid FTITI_O
Senior II
Posted on June 01, 2016 at 11:31

Hi takniki.vindhyachal,

I recommend you to take a look to the FSMC examples in the

http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32cube-embedded-software/stm32cubef2.html

:

- ''FSMC_SRAM'' to access the IS61WV102416BLL-10MLI SRAM memory mounted

on STM322xG-EVAL evaluation board.

at this path: STM32Cube_FW_F2_V1.3.0\Projects\STM322xG_EVAL\Examples\FSMC\FSMC_SRAM

- ''FSMC_SRAM_DataMemory'' to use the IS61WV102416BLL-10MLI SRAM mounted on STM322xG-EVAL as data memory (including heap and stack).

at this path: STM32Cube_FW_F2_V1.3.0\Projects\STM322xG_EVAL\Examples\FSMC\FSMC_SRAM_DataMemory

Also, you can furtherrefer to these discussions would be helpful :

https://my.st.com/public/STe2ecommunities/mcu/Lists/STM32Discovery/Flat.aspx?RootFolder=https://my.st.com/public/STe2ecommunities/mcu/Lists/STM32Discovery/STM32F429I-DISCO%20external%20SDRAM%20as%20data%20Memory&FolderCTID=0x01200200770978C69A1141439FE559EB459D75800084C20D8867EAD444A5987D47BE638E0F&...

https://my.st.com/public/STe2ecommunities/mcu/Lists/STM32Discovery/Flat.aspx?RootFolder=https://my.st.com/public/STe2ecommunities/mcu/Lists/STM32Discovery/EXTERNAL%20RAM%20WITH%20STM32F429DISCO&FolderCTID=0x01200200770978C69A1141439FE559EB459D75800084C20D8867EAD444A5987D47BE638E0F&currentviews=583

-Hannibal-

Posted on June 01, 2016 at 14:05

Somehow I suspect your design budget will not support 32MB of SRAM.

You need to think long and hard about your chosen architecture and processing algorithm. On a constrained device you need to decompose the task so it can be handled within the available memory. External memory is significantly slower.

The costs of SDRAM are manageable but you'll need to use a different STM32. On the F4 series it is not fast, and not cached.

Have you considered something like the Raspberry Pi 2? ie memory, horse-power and embedded linux.

Tips, buy me a coffee, or three.. PayPal Venmo Up vote any posts that you find helpful, it shows what's working..
vindhyachal
Associate II
Posted on June 02, 2016 at 06:06

I will interface this SRAM since it is in TSOP package. ( http://www.digikey.com/product-detail/en/issi-integrated-silicon-solution-inc/IS61WV102416BLL-10TLI/706-1055-ND/1557456 )

Datasheet says it is 1Mx16. Does that mean it is 2Mx8 i.e 2Mbytes SRAM.

Will the same example code work for this also.

I think MCU which I have chosen have FSMC so I can interface it

knielsen
Associate II
Posted on June 02, 2016 at 07:21

Yes, it is 2 MByte. It should work fine with with your FSMC. I think it should work with your examples, as it is a very fast SRAM, though it is of course always good practice to check the timings in the datasheet against the values used in the code.

You originally wrote that you needed to store 20 MByte of data, but the FSMC can only support up to 4 SRAM ICs directly, for a total of 8 MByte with your selected SRAM. But if 2 MByte is sufficient, then the IS61WV102416BLL-10TLI should be a good and simple solution.

Posted on June 02, 2016 at 22:02

So 1x 2MB (16Mb) chip that will run $15 vs a 32MB (256Mb) SDRAM that might run $4, would give you some budgetary leeway to pick a different CPU, especially if you need the space outline in the original post.

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