cancel
Showing results for 
Search instead for 
Did you mean: 

How to disable use of external DRAM Module on the STM32746G Discovery Board?

Andrew Hazelton
Associate III
Posted on October 08, 2017 at 03:59

Hi All.

I am currently building a project based on the �STemWin Demonstration� example in the below directory, on the STM32746G Discovery Board. All of the examples use the external DRAM Module (MT48LC4M32B2B5-6A  by MICRON). This IC is now obsolete and I would prefer not to use it. Can someone please help me with the below 2 queries?

1)  Is the setup such that the use of the external DRAM Module automatic? As in, if you declare an  Array (i.e. int  Array[300] ) will the FMC automatically use the external DRAM if it needs to? Or can you only read/write to the external DRAM Module using functions HAL_SDRAM_Read() / HAL_SDRAM_Write()?

2)  How do I turn off the use of the external DRAM Module as I don�t wish to use this later on my custom PCB? The problem that I am finding is that if you simply comment out the 'BSP_SDRAM_Init();' LCD screen fails to load and a black clear is displayed.  This is strange as I cannot find any of the following functions used in the project: BSP_SDRAM_ReadData, BSP_SDRAM_ReadData_DMA, BSP_SDRAM_WriteData, BSP_SDRAM_WriteData_DMA, HAL_SDRAM_Write, etc. I cannot see how the STemWin stack interfaces with the external DRAM Module.

Compiler:            IAR Workbench v8.11.3

Graphics:            STemWin

Hardware:           STM32746G Discovery Board

Demo Project:   C:\...\STM32Cube_FW_F7_V1.8.0\Projects\STM32746G-Discovery\Demonstration\STemWin\EWARM

#stemwin #external-dram
2 REPLIES 2
Posted on October 08, 2017 at 05:05

If it is initialized it is within the addressable space of the processor, whether anything uses it will depend if the memory is described to the linker via a linker script, scatter file, or .ICF

For it to work the pins, peripheral and memory must be initialized, typically via SystemInit(), as before it is configured the CPU has no access to it.

Tips, buy me a coffee, or three.. PayPal Venmo Up vote any posts that you find helpful, it shows what's working..
Posted on October 24, 2017 at 06:56

 ,

 ,

Hi. ,

 ,

I believe that what I need to do is to change the address space in the below defines in the LCDConf.c source file. I have

♯ define GUI_NUM_LAYERS 1

 ,so I believe that only the ,

LCD_LAYER0_FRAME_BUFFER

needs to be changed. But no matter what address I specify it will not work. ,

/* From SDRAM */

 ,

♯ define LCD_LAYER0_FRAME_BUFFER ((int)0xC0200000)

 ,

♯ define LCD_LAYER1_FRAME_BUFFER ((int)0xC0400000)

Below is my RAM space setup.

0690X00000608WFQAY.png