cancel
Showing results for 
Search instead for 
Did you mean: 

Stm32f303VC gets hang due to external heat

piyush2399
Associate II
Posted on February 29, 2016 at 13:55

Hi Sir/Mam,

                  Basically we are using the stm32f303VCT6 mcu as our main controller. It takes the gps co-ordinates of the moving vehicle from the on board gps module and then computes some algorithm on co-ordinate as well as some of our internal data and let us know about the position and vicinity of the silence zones nearby our car. Now my issue is whenever i try to run my whole unit during daytime it gets hangs very fast, whereas during the evening time especially when there is no sunlight it performs perfectly as it should.

                      Just for you information i am in india and keeping my unit on the dash board of the car which gerally get somewhat heated, i suspect is the reason for my mcu to get hang?. If yes then can anyone suggest me how can i resolve the issue. Also going by the datasheet of the mcu it says the temperature range of about -40 to 85 degree Celsius.

Any help would be highly appreciated, thanks

Regards

Piyush Saxena
10 REPLIES 10
Posted on February 29, 2016 at 15:07

You could run it slower, and with less aggressive flash settings.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
AvaTar
Lead
Posted on February 29, 2016 at 16:22

And more important, measure the actual worst-case temperature in your device during operation.

The automotive industries uses the more expensive -40°C ... +125°C qualified ICs for a good reason.

Posted on February 29, 2016 at 17:20

I would certainly agree that measuring the temperature at the device/board as it bakes on the dash would be a good starting point to understand what is going on. That and an appreciation of what's hanging up.

ST's approach here is more one of full specification over full temperature. Something they have likely reviewed in sample parts over the process window, but not something they have explicitly tested on each part, like you would for something like a TCXO where those characteristics are modelled on a per-part basis.

I'd hypothesise that if you pulled the operating speed to 64 MHz and left the wait states at 2, or ran at 72 MHz and pushed the wait states to 3, it would provide you with some head room. But this is something you'd have to evaluate, along with getting a better idea of what exactly is hanging/crashing, and if that is with the STM32 or something else in your system. A good Hard Fault Handler is recommended.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
piyush2399
Associate II
Posted on March 02, 2016 at 12:25

Hi Clive1,

               I am running the stm32f303vct6 mcu at only 48mhz whereas its maximum speed specified is about 72mhz. Do you think that even the 48mhz speed is still on the higher side and by scaling it down to 32Mhz may resolve my heating issue.

Also i checked the operating condition is from -40 to 85 degree Celsius for the stm32f303vct6 series, Whereas for the stm32f303vct7 ic the temperature range is about -40 to 105 degree Celsius. Will my issue be resolve by using the T7 version of the mcu.

Also is there any other way to radiate the heat from the mcu,because i was searching for the heat sinks but attaching them on to the existing package looks very difficult.

thanks

Regards

Piyush Saxena

AvaTar
Lead
Posted on March 02, 2016 at 14:49

>Also is there any other way to radiate the heat from the mcu,because i was searching for the heat sinks but attaching them on to the existing package looks very difficult.

 

You got that wrong. The problem is not heat generated >>by<< the MCU, but the environmental temperature. If this temperature is higher than that of your MCU, a heat sink will only help to heat the MCU up.

>Will my issue be resolve by using the T7 version of the mcu.

 

Measure the actual temperature during operation, and then investigate your device in a temperature chamber. Other parts might fail, too. I haver personally witnessed optoelectronics to (reversibly) cease operation at about 90°C.

> I am running the stm32f303vct6 mcu at only 48mhz whereas its maximum speed specified is about 72mhz. Do you think that even the 48mhz speed is still on the higher side and by scaling it down to 32Mhz may resolve my heating issue.

 

I would not bet on that - you need to investigate and test it.

Flash erase/write times rise exponentially with temperature. This might break your algorithms, and cause unexpected faults.

Posted on March 02, 2016 at 17:49

I think it is the speed related to the flash array, you'd need to change that relationship with the wait states, not just the CPU/BUS speeds. The CPU speed will impact critical paths in that design, and the BUS speed, paths in the peripherals. I don't have enough insight into the gate level design to know where these are exactly, but they are most likely to be with with adders/counters, so things like TIM and DMA.

The device is assuming the temperature of it's surroundings, so unless you can mitigate those, by the colour of the dash, or with active cooling, I'm not sure that heat sinks will help. Again you need to determine what the conditions are, and how it is failing. If you can reproduce the failure in a thermal chamber, this will be a lot easier to debug and monitor.

A lot of parts do not function well at industrial temperatures, or with heavy humidity, so you'll need to review everything on the board, not just the STM32. If you are going to be using the devices in these ranges, you need to select the appropriate parts, and evaluate them.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Danish1
Lead II
Posted on March 03, 2016 at 10:58

How strongly do you know that the problem is within the stm32 microcontroller, rather than on the interaction between the stm32 and external circuits or peripherals (for example your GPS signal source)?

You say the end result is the stm32 having a hard fault or whatever, but might that occur if the voltage-regulator decides it is too hot and momentarily shuts down?

Or if the stream of GPS stops or gets corrupted because the voltage-levels are no longer seen as clear logic-high / logic-low?

Or (if you talk to an lcd screen) that the screen stops responding because it is out-of-temperature-range?

Or, for example, maybe you have one pin that is not soldered properly, and warping under extreme heat can cause it to lose contact? Have you seen this problem on more than one instance of the hardware?

Have you been able to reproduce the problem on the bench e.g. with an oven or heat gun?

Hope this helps,

Danish

piyush2399
Associate II
Posted on March 08, 2016 at 07:42

Hi Clive1,

               I have added 1 wait state as recommended in datasheet and by doing it i found that the system is responding as needed. I tested the module by commissioning it on the dashboard area of my car and even there it worked perfectly. Now since its working fine i believe, i am trying to understand what is the relation between heat and the flash and the wait state. How did it helped to increase the performance? Also does adding the wait state affects the execution speed of the mcu(performance of the system). Can you help me understand what has helped it to work or even a link or some reference point would be good enough for me.

Also now do you think using the T7 series would also add more safety for my design rather than T6 version.

Thanks

Piyush Saxena

piyush2399
Associate II
Posted on March 08, 2016 at 07:53

Hi Danish Ali,

                    Thanks for you response, just for your information i came to conclusion that mcu was not working properly since i tested the system by just running the led blinking code only and still it was getting hanged hence i came to conclusion that mcu was not working as it should. Later i also reproduced the same bug by blowing hot air on to the mcu and it still got hanged, so i was pretty sure that the bug has something to do with the temperature.

But later when i reduce the system frequency to 32 mhz i found that it worked for a quite higher temperature as it should (almost as per its specification). So after discovering this i was somewhat puzzled about the cause of issue.

Thanks

Piyush Saxena