stm32F103ZET6发热严重
使用stm32F103ZET6驱动20路继电器,全部开启后发热严重到死机。各位大神帮帮小弟看看。芯片电压都正常。驱动电路如下本帖最后由 wenyangzeng 于 2019-7-11 19:23 编辑
GPIO的驱动能力不仅要考虑单独GPIO的最大灌出电流,还要考虑芯片的允许总供应电流。假设每路GPIO驱动电流为10mA,显然20路GPIO的驱动电流达到200mA,已经超过芯片所能承受的极限了。况且1楼图中晶体管Q6基极没有限流电阻,驱动电流肯定超限了。
Q6的基极电阻呢? 查查手册,看是不是管脚输出总电流超限了 如果排除前面的原因,可以一路一路的测试,是否正常,全部正常,再一路一路的增加,增加到15路如果正常,就要考虑电路的限流了。 还有一个可以尝试的,把 Q6 换成一颗 2N7002 这样的 MOSFET。MOSFET 是电压驱动器件,输入电阻接近无穷,大多数情况下可以省略栅极电阻。 wenyangzeng 发表于 2019-7-11 19:20
GPIO的驱动能力不仅要考虑单独GPIO的最大灌出电流,还要考虑芯片的允许总供应电流。假设每路GPIO驱动电流为 ...
优秀 2、3、6楼正确,使用三极管要限流喔! 本帖最后由 toofree 于 2019-7-12 10:41 编辑
MCU管脚驱动Q6的用法有问题,Q6基极需要串联电阻,并且基极与发射极之间要有对地电阻。
假设你的Q6放大系数为100倍,假设光耦U9输入正向压降1.2V。
那么此时Q6集电极电流估算为(5-1.2)/330=12mA,同时Q6基极电流为0.12mA,理想情况串联电阻值最大为(3.3-0.7)/0.12=21.6K。
保守使用,你可以串联一个5.1K的电阻,那么此时MCU到Q6基极电流为(3.3-0.7)/5.1K=0.51mA。如果基极与发射极间加一个电阻50K,那么多出来的电流为0.7/50K=0.014mA。
单路总电流0.51mA+0.014mA=0.524mA
那么20路的最大电流10.5mA,MCU发热不会太大。
你这电路用了三级驱动,实际U9的电流根本不需要12mA那么大,有个两三毫安足够了。U9到Q8构成达林顿结构,用法可能也有问题。
你的继电器是什么型号?如果驱动电流小于100mA的话,用一只达林顿光耦就可以了。
Q6 为什么不加电阻?
页:
[1]
2