CPU IO口开漏输出设置问题
如图所示,LED_CS1_CTRL通过排线连接到STM32 CPUPE端口中的一个管脚,但是我无论这个CPU管脚设置成高低电平发现三极管都是导通的,有人建议我设置成开漏模式,结果效果还是一样,大神们帮忙看看这是啥原因?? 按道理开漏时候 CPU输出高,管子应该不导通,为啥现在还是可以导通呢本帖最后由 edmundlee 于 2019-3-30 19:22 编辑
st的IO要接5v的话, 必须用ft类型的IO, 你肯定是选错了IO了 本帖最后由 wenyangzeng 于 2019-3-30 20:16 编辑
要使Q2截至,B极电压必须达到E极电压的5V,而CPU供电是3.3v,IO输出高电平时只能推到3.3v,所以在这种情况下Q2无法截止,解决办法是Q2换NPN型管,LED接C极到+5V,E极接地,IO高电平LED亮,反之亦反。 本帖最后由 toofree 于 2019-3-31 01:23 编辑
先搞清楚“开漏”是什么?
开漏是指NMOS管的漏极开路,或NPN管的集电极开路,尽管大部分资料中没有说明必须是NMOS或NPN管,但是原理介绍中从没有找到过PMOS或PNP管的痕迹。
你这用的是PNP管,完全不适用。三极管和MOS管使用时,对BE或对GS都有泄放电阻,你这个没有,不符合套路。
如果接到STM32的5V容忍管脚上的话,改改电路和IO脚的用法还是能实现功能的。
使用5V输入容忍管脚,通过切换IO为输入方向,来使PNP管截止;图上标的IO口输入5V,只是理论上的,实际情况可能内部有钳位二极管,使电压要低一些,那么此时需要调整两个电阻的大小比例,使PNP管BE间电压小于0.7V。
置输出方向,IO输出0,来使PNP管完全导通;
开漏设置的IO口要想得到高电平,必须接上拉电阻才有高电平输出,而电阻上压降超过0.5V左右,三极管还是要导通,所以电路设计欠妥。应该将NPN型三极管接5V与e极之间,GPIO开漏且不用上拉电阻直接接b极,e极通过串一限流电阻接地。三极管用NPN型!不能错了 上面"应该将NPN型三极管接5V与e极之间"写错
应为"应该将LED接入NPN型三极管c极与5V之间" 用PNP管没问题的, 象这样的LED驱动电路很常用, 只要选用FT的IO就可以(不要加内部上拉), FT的IO不存在什么钳位二极管的问题, 不信的可以去查一下规格书。
PNP管的BE脚需要并联一高阻值电阻大慨100K就可以了
用PNP而不用NPN主要原因是输出电压, 用NPN+E极输出, 那么输出电压只能是 ~= 3.3V-0.6V。
如果说非要用NPN, 根本就没必要从5V取电, 接3.3V就可以了, 因为输出电压不会有什么分别的 aiherong 发表于 2019-3-31 10:58
开漏设置的IO口要想得到高电平,必须接上拉电阻才有高电平输出,而电阻上压降超过0.5V左右,三极管还是要导 ...
这类驱动电路是用在 类似共阳数码管,不是你所想的单一LED的驱动 结贴,原因找到了是硬件上LED_CS1_CTRL这个管脚下拉接地导致了开漏不起作用 引脚设成开漏输出,并外接上拉电阻到5V。注意下这个脚是不是5V容限。
页:
[1]
2