2016-05-31 09:41 PM
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?2016-05-31 11:28 PM
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.2016-06-01 02:31 AM
Hi takniki.vindhyachal,
I recommend you to take a look to the FSMC examples in the : - ''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 : -Hannibal-2016-06-01 05:05 AM
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.2016-06-01 09:06 PM
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 it2016-06-01 10:21 PM
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.2016-06-02 01:02 PM
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.