cancel
Showing results for 
Search instead for 
Did you mean: 

STM32 resetting on first sdram access

Fabrizio Pizzolato
Associate II
Posted on August 29, 2017 at 10:09

Good morning, I have a STM32F429 based board, the MCU is interfacing a Micron SDRAM (MT48LC4M32B2). We successfully configured the sdram interface using the FMC driver. We use 1.4.3 version.

We had a first production round where about half of the boards have the following problem: on the very first access to the sdram the MCU hard resets. I could verify that a 1ms negative pulse is present on the MCU reset line. After this reset the application restarts and access to the SDRAM is executed with no problems. 

Note: by saying first access I mean the first time the memory is used. I always configure it (by using low level functions from the driver) without problems. At a later time (actually through an external command) I create a pointer to the first memory location in sdram and try to use it, and this is when the problem occurs.

Anybody here had similar problems? Any ideas on how to identify the problem?

thank you very much

13 REPLIES 13
Posted on August 29, 2017 at 17:29

OK so my theory is implausible.

A small resistor in series with reset pin should help finding out whether the source of reset is internal or external.

JW

Posted on August 29, 2017 at 17:37

Thanks anyway, any help in this problem is really appreciated.

Posted on August 29, 2017 at 17:39

For the sake of experiment, I collected all references to the initialization of sdram using hal. The minimum file size is more than a thousand lines - all related mentions of initialization in one place. The project was going and working successfully, but it is impossible to understand how it is going under the GCC.

In such cases, it is better to use direct access to registers.

http://en.radzio.dxp.pl/stm32f429idiscovery/sdram.html

 
Posted on August 30, 2017 at 10:08

Thanks also for this, I will check it out; in case I'll have news (even to say it's just an electrical problem in my pcb) I will let you know.