cancel
Showing results for 
Search instead for 
Did you mean: 

Supply Voltage for Sensors STM32F407VG

syifnrl
Associate II

I am working on stm32f407vg as the mcu for my mobile robot. I use encoder and limit switch sensors and supply it by 5v from lipo battery (through 5A step down converter). stm32 keep overheating the longer i use it. Is it because i supply the sensors with 5v instead of 3.3v?

1 ACCEPTED SOLUTION

Accepted Solutions

obviously !

600mA ...and you believe, cpu is still alive ??   (i dont believe...)

why not switch at 3v3 level? you want kill the cpu with every idea you have ??

If you feel a post has answered your question, please click "Accept as Solution".

View solution in original post

8 REPLIES 8
RhSilicon
Lead

👀:backhand_index_pointing_right:http://www.emcu.eu/stm32-used-in-5v-environment/

LCE
Principal

Is it because i supply the sensors with 5v instead of 3.3v?

Yes - I think so. Even though the IOs might be "5V compatible / tolerant", that does not mean that you can spam the STM IOs with 5V signals.
I guess that the IOs are protected by diodes going to internal VCC (3.3V) and ground, and the current through these diodes creates the heat.

Especially with many IOs connected to 5V, you must either use level shifters, or check if you can use other sensors, or supply the existing with 3.3V.

AScha.3
Chief II

you should not connect 5V to a 3V3  cpu !  even most (!!!) pins are 5v tolerant, don't push your luck .

if getting hot, you might already damaged the cpu , try without any 5V at cpu pins, if still hot , its damaged. replace. and keep signals at 3v3.

the 5v tolerant pins have not standard protection diodes, more like zener-diodes to give some protection at voltage > 6..7V at pins. but never force 5v or more, without resistor in line, to keep current low in every circumstance.

and this 5v-tolerance is only for input-pins, never drive output-pins to 5v device ! here standard protection to 3v3 level is active !

If you feel a post has answered your question, please click "Accept as Solution".

The overheating problem actually started when I use micro switch sensors (mostly omron), I've used level shifter on omron external encoder and for the rest of encoders, it works fine with 5v or 3.3v. If I look at the datasheet of all encoders on my robot, the maximum current consumptions doesn't exceed the maximum current consumption stm32 can provide/sunk. But for micro switch, it can take up to 600mA. Is it possible that the micro switches I used are the problems?

 

obviously !

600mA ...and you believe, cpu is still alive ??   (i dont believe...)

why not switch at 3v3 level? you want kill the cpu with every idea you have ??

If you feel a post has answered your question, please click "Accept as Solution".

Thank you for your help!

I guess that the IOs are protected by diodes going to internal VCC (3.3V)

Not on 5V tolerant pins. Check the AN4899 section "4.2 GPIO equivalent schematics". 🙂

Thanks!

I don't know about that - simply because I would never think about connecting 5V / 3.3V without anything in-between, let it be a level shifter (at least simple npn + 2Rs) or at least a voltage divider. :D