cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F407 WITH STRANGE BEHAVIOR

giovani
Associate II
Posted on April 04, 2017 at 15:07

I am facing a very strange problem, we first assemble 3 prototype boards of a project that uses the STM32F407IGT6 everything worked perfectly, we have developed 3 firmware for this project:

1 - Bootloader: Checks if necessary to update the application firmware jumps to firmware 2 or else jumps to firmware application

2 - Update Application: updates the application firmware

3 - Application

After all the tests and the approved project we realized the purchase of a small batch of our supplier (50 units).

To our surprise when we were to write the firmware many does not boot the firmware of the application or better loads the bootloader makes the jump to the application, but there is an error (stackoverflow) when it will execute the following in the last line:

LDR R0, = SystemInit

BLX R0

LDR R0, = __ main

BX R0

I could not find what is causing this error, we decided to replace the STM32F407 with one that we bought from Digikey, to our surprise it worked and we did it in 10 more equipments all worked.

Someone could help us, because I can not understand what is happening and now that it should be a line product we can not have to be replacing the microcontroller of all equipment.

I wonder if you have a solution for this or if someone has already had this kind of problem?

Thank you,

Giovani

4 REPLIES 4
giovani
Associate II
Posted on April 04, 2017 at 18:56

Picture with the values of the registers before executing the statement

BX R0.

0690X00000606hKQAQ.png
Posted on April 04, 2017 at 19:06

there is an error (stackoverflow)

What do you mean by this?

JW

giovani
Associate II
Posted on April 04, 2017 at 20:29

In 4 boards the unique one that works VCAP1 and VCAP2 voltage is 1,270V their IDCODE are the same:

DEV_ID =0X0413

REV_ID =0X1007

Voltage on VCAP1, VCAP2 of the others boards is 1,260V

Posted on April 04, 2017 at 19:17

Perhaps a Hard Fault?

Review the ID Code/Stepping of the failing part. External markings would be helpful to pin down differences.

Look at DBGMCU->IDCODE

Check regulator VOS and Overdrive settings, voltages on VCAP pins

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