cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F407 running temperature.

russdx
Associate II
Posted on December 02, 2012 at 01:01

I have made a custom pcb using the stm32f407. the pcb is very small 50mm x 28mm. I have noticed the stm32 runs quite warm though.

Its cooler when in dfu mode. but when running my program its quite warm not hot like hard to touch but just feels a little bit hot.

Is this normal? 

the same program running on the stm32f4 discovery board seams to run slightly cooler (maybe bigger pcb more heat dissipation?)

Im running it at 3.3v with a 8mhz cystal

My program basically had 4 timers running one at 50us that triggers a SPI1 DMA transfer of 128bits. Whist receiving usb packages of 2048bytes 60 times a second.

Should i be worried by this? or does it just run a bit warm due to running at 168mhz

Thanks 🙂
5 REPLIES 5
Posted on December 02, 2012 at 01:49

From what I recall the STM32F4-Discovery board runs at 3V, and we typically run the F1 and F2 down at 2.85V

Grinding in while() loops will suck at lot move power, definitely use _WFI in idle loops.
Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
russdx
Associate II
Posted on December 02, 2012 at 02:15

ok cool

the data sheet saysmaximumvdd of 4.0v so im well within that. i guess i could use a 3v regulator not a 3.3v one 🙂 never come across this _WFI how do i go about using this on my while loops? am idamagingthe chip running it slightly warm like this? or reducing its life? Edit: only tight while loop in my program

void
DelayMicro(__IO uint32_t nTime)
{ 
TimingDelay = nTime;
while
(TimingDelay != 0){
__wfi();
};
}

does not seam to make a difference though :(
Posted on December 02, 2012 at 04:09

am i damaging the chip running it slightly warm like this? or reducing its life?

I guess I'd be more concerned with thermal cycling, and mechanical issues including the pcb, pads, package, and solder.

If that's the only loop between you and 168 MHz, I'd also be surprised. Consider profiling where the CPU is spending time, and if you can run it slower.

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

i found 2 other while loops in my code.

im also using the stm usb stack have not checked this. that might have a few in it as well.

it seams to be running at around 24degrees. i put a heat gun on it and had it up to 60degrees for around 2min and it seamed fine. so im guessing it will be fine 🙂

ill go through my code and try and optimise it 🙂

when i say run it slower? do you mean the whole cpu? can i change the clock settings?

thanks for all your help 🙂
Posted on December 02, 2012 at 16:43

Since CMOS circuits dissipate power when switching, a major focus of low power design is to reduce the switching activity to the minimal level required to perform the computation.

Lowering the voltage lowers the gate speed, in this case mainly the external interfaces, as the core runs at a lower, regulated voltage. The external switching shouldn't be ignored as the power is a function of the capacitive loading (resistance to change) and the square of the supply voltage, along with how rapidly it is changing. Thus while the part might work at higher voltages, having them lower reduces the power disapation and heat generated.

You can change the PLL setting to reduce the core frequency below 168MHz. What you change it too depends on what clocks you need for other peripherals and interfaces. Running at 120MHz would mirror the settings of the F2 part.
Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..