打印
[51单片机]

STM32上能用的开关电路在51上不能用怎么办?

[复制链接]
701|32
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
飛饵|  楼主 | 2020-4-3 19:38 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 飛饵 于 2020-4-5 19:20 编辑

这一键开关机电路在stm32上没问题。
单片机是stc89c52rc,图里的R6换成了2K,不然集电极电流不够大带不动整个系统。

现在问题是按下按键能供电,但不能松手,一松手马上掉电。原本怀疑Q2基极电阻R7太大,换成了620欧,结果还是不行。
但PwrOn/Off端直接接电源就不会掉电了,所以现在怀疑是不是IO口拉电流不够控制不了NPN??
如果按平常的思路IO口加上拉,那不如Q2换成PNP???



----------------------------------------------------------------------------------------
------------------------- 分割线 2020.04.05--------------------------------------
----------------------------------------------------------------------------------------
之前按照大家说的换了电阻解决了部分问题,但关不了机。
后来发现PwrOn/Off要保持低电平半秒以上才能关机,就试着在PwrOn/Off端加了个220uF电容,貌似问题就这样解决了。。。。但不知道具体什么原理,请各位大佬分析一下








使用特权

评论回复

相关帖子

来自 2楼
xch| | 2020-4-6 16:56 | 只看该作者
飛饵 发表于 2020-4-6 16:51
c52是5v的,3v的好像是le52

就用这样的电路。MCU控制打开电源的逻辑是低电平有效。
51内核的MCU一般复位时输出高电平。 所以设计电源开关控制电路应当设计出在复位时保持关机,否则无法关机。

使用特权

评论回复
评论
xch 2020-4-6 17:54 回复TA
@飛饵 :这个电路还不算简单。 
xch 2020-4-6 17:52 回复TA
@飛饵 :因为复位时上拉电流来不及充电容使得三极管来不及再次导通。躲过一劫。但 
飛饵 2020-4-6 17:46 回复TA
另外我想知道我的那个解决办法,第二个电路图里为什么加个电容就正常了呢? 
飛饵 2020-4-6 17:45 回复TA
谢谢,这样做确实能用,又简单。 
板凳
airwill| | 2020-4-3 21:10 | 只看该作者
单片机是stc89c52rc, 可能高电平输出能力问题,  看看能否设置推挽强输出

使用特权

评论回复
评论
airwill 2020-4-8 23:08 回复TA
@飛饵 :2图的作用可能不是电容, 而是上拉电阻 
飛饵 2020-4-6 15:01 回复TA
@airwill :试了不行,唯独第二个图的电路能解决所有问题,就是不懂为什么加个电容就正常了 
airwill 2020-4-6 07:38 回复TA
@飛饵 :查了下手册, 确实没有这个功能 那就只能省着点用了, 先把下拉电阻去了, 再适当调整 R7 
飛饵 2020-4-4 14:00 回复TA
好像89系列不能设置io口模式吧 
地板
wh6ic| | 2020-4-3 21:28 | 只看该作者
1、试试 Q1 换成相应封装的 P-MOSFET,应该可以直接解决问题

2、R6换成了2K才够用,51下建议:R6继续减小为 1.5K,  R5、R8 增加为 100K,Q2基极加一粒比如 10K 的上拉电阻(如果关不了机,可以将R7换成470R)

使用特权

评论回复
5
飛饵|  楼主 | 2020-4-4 19:39 | 只看该作者
wh6ic 发表于 2020-4-3 21:28
1、试试 Q1 换成相应封装的 P-MOSFET,应该可以直接解决问题

2、R6换成了2K才够用,51下建议:R6继续减小 ...

第一个做不了,没有PMOS

第二个,按你说换了电阻,松手不掉电了。
但关不了机,IO口输出低电平后是掉了一下电,但又立刻上电了,Q2的电阻怎么换都不行,而且拿PwrOn/Off接地发现要半秒钟以上才能断电,IO口的低电平保持不了这么久呢

使用特权

评论回复
6
lisingch| | 2020-4-4 21:17 | 只看该作者
用过相似电路,不过Q1用的PMOS,工作正常。

使用特权

评论回复
7
飛饵|  楼主 | 2020-4-4 21:39 | 只看该作者
lisingch 发表于 2020-4-4 21:17
用过相似电路,不过Q1用的PMOS,工作正常。

也是51控制吗?你看看4楼说的情况有什么解决办法吗

使用特权

评论回复
8
lisingch| | 2020-4-4 21:50 | 只看该作者
做过双极仿真,你看看。51、STM应该没啥区别,电平控制。

开关.rar (13.41 KB)

使用特权

评论回复
评论
飛饵 2020-4-4 21:54 回复TA
这电路和我那个没啥区别呢,我就纳闷为什么我的在51上用不了。我搞个PMOS上去看看行不行吧 
9
lisingch| | 2020-4-4 22:14 | 只看该作者
查查元件是不是有坏的

使用特权

评论回复
评论
飛饵 2020-4-5 19:43 回复TA
并没有,但有解决办法了,只是不太懂原理,能帮分析下吗 
10
linxi6414| | 2020-4-5 19:23 | 只看该作者
在R5和R8上并一个104的电容,这个电路我在多种场合用过 ,一直没有问题。

使用特权

评论回复
评论
飛饵 2020-4-5 19:40 回复TA
试了下还是不行,得用我的那个方法才行,但是不清楚具体什么原理,大佬能分析下吗 
11
xch| | 2020-4-6 16:05 | 只看该作者
stc89c52rc 的工作电源是+5V?

使用特权

评论回复
12
飛饵|  楼主 | 2020-4-6 16:51 | 只看该作者
xch 发表于 2020-4-6 16:05
stc89c52rc 的工作电源是+5V?

c52是5v的,3v的好像是le52

使用特权

评论回复
13
飛饵|  楼主 | 2020-4-6 19:05 | 只看该作者
xch 发表于 2020-4-6 16:56
就用这样的电路。MCU控制打开电源的逻辑是低电平有效。
51内核的MCU一般复位时输出高电平。 所以设计电源 ...

现在回过头想不明白为啥之前会掉一下电后又自动上电?
按理说单片机掉电了说明电源已经断开了吧,要说电源端的滤波电容在放电,那应该是放完电单片机就掉电了呀。难道单片机先掉电,然后电容放电,这时单片机复位完让Q2导通才导致电路又供上电了?这过程不符合逻辑吧?
或者还有别的原因??

使用特权

评论回复
评论
飛饵 2020-4-6 22:11 回复TA
@xch :为啥电压趋0过程中MCU还会复位呀?不是给复位脚一个电平一段时间才会复位吗?越看越懵了。。。 
xch 2020-4-6 19:59 回复TA
掉电是个过程。MCU工作电源电压逐渐趋0过程,达到复位电平时MCU处于复位状态。这时候MCU管脚输出高电平驱动电源开关再次打开,使得电源电压再次上升退出掉电进程 
14
菜鸟同学| | 2020-4-6 19:24 | 只看该作者
你这个51 IO的驱动能力弱,也就是内阻大了点,也和你三极管选用有关系,51 IO默认上电是高电平,你可以再搞一个IO并联在你现在的IO上面,同时控制,这样驱动能力应该会强一点。活着基级电流改的再小一点。100欧姆试试。实际测试一下三极管基级电压是啥样的,示波器一看就清楚了。

使用特权

评论回复
15
hwpga| | 2020-4-6 19:25 | 只看该作者
为什么用stc89c52rc
这款破 解  费 不会超过2K
stc89c52好像没推挽模式,驱不动三极管是正常的


Q2换成2n7002,别的什么都不用改,7002和3904是用量最大的管子


使用特权

评论回复
16
xch| | 2020-4-7 08:05 | 只看该作者
飛饵 发表于 2020-4-6 19:05
现在回过头想不明白为啥之前会掉一下电后又自动上电?
按理说单片机掉电了说明电源已经断开了吧,要说电 ...


使用特权

评论回复
评论
飛饵 2020-4-7 15:33 回复TA
感谢,查了下掉电复位的机制再结合你说的,终于搞懂了 
17
wh6ic| | 2020-4-7 08:54 | 只看该作者
Q2 也换成 8550 PNP 试试。8951 复位后IO脚默认是上拉输出,的确影响关断过程
可能是Q1之后的电容太大了,导致需要比较长时间才能关断。相应,R6必须2K以下,与这个电容可能也有关系

使用特权

评论回复
18
fzyuan| | 2020-4-7 09:05 | 只看该作者
本帖最后由 fzyuan 于 2020-4-7 09:15 编辑

修改了这条回复,原因是在发出后发现这个型号的MCU端口不支持“推挽”。

STM32和STC51在端口属性上最大的区别在于:
51的端口在复位阶段是“准双向口”,有内部上拉(弱上拉)的,其上拉电流的典型值为270uA,而其要命的是,好像楼主用的这个型号不支持推挽模式
而STM32的端口在复位阶段应该是“高阻”。

当MCU的“PwrOn/Off”端口输出低电平时,电路确实关断了,但是当“+5V”的电压下降到STC51的复位电压时,
“PwrOn/Off”实际有开始输出“高电平”了,于是电源又被打开了。

所以,我们要保证在MCU进入复位电压之前,就能确保开关不会回弹。R8要够小才能保证不回弹,但是这又可能导致无法开机。


建议:更换MCU型号。

使用特权

评论回复
19
飛饵|  楼主 | 2020-4-7 16:06 | 只看该作者
fzyuan 发表于 2020-4-7 09:05
修改了这条回复,原因是在发出后发现这个型号的MCU端口不支持“推挽”。

STM32和STC51在端口属性上最大的 ...

谢谢,学习了。查资料无意中发现MCU还有“低电压检测复位”这种机制,重新分析了下过程和你说的一样。
加个电容后能解决,是因为虽然复位期间又输出高电平,但大电容充电时间比较长,此时电流又弱,没法充电到导通电压,所以直到电压掉到0都没能让Q2到导通,没错吧??
不过最后还是用xch老哥的方法了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

117

帖子

1

粉丝