• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

发个一键式开关机电路,大家来讨论下电路会有什么问题

如题,如果大家和我一样当初没有想到这个问题,我后续会加以说明

  

如图,这个电路用来控制电源的总开关,其中VBAT是12V铅酸电池,EN和ON/OFF都连接到MCU的I/O口,MCU的供电也来自LOAD的输出。

原理很简单,按下EN键,LOAD处得到供电,MCU也得到供电,同时MCU判断ON/OFF被拉低,MCU将EN拉高,那么松开按键后,供电将一直维持。再次按下EN键,ON/OFF被拉低,MCU将EN置低,松开按键后,MCU得不到供电,LOAD处断电。

上面的电路,并非我自己设计,不过是照搬别人的,上面的描述,也看似没有问题,但是问题确实是存在的。

补充一下,MCU是洪晶的STC系列。

全部回复(27)
正序查看
倒序查看
2013-08-12 16:20
什么问题,先描述一下
0
回复
rj44444
LV.9
3
2013-08-12 17:10
@贺赫无名
什么问题,先描述一下
先说一下问题,这个电路可以正常开机,但是,不能正常关机。
0
回复
2013-08-14 08:03
@rj44444
先说一下问题,这个电路可以正常开机,但是,不能正常关机。
怎么不能关?EN输出低时,Q2关、、MCU复上电是延时一小段时间后,等待S1释放后再开EN。长时间按下需程序好好处理才行。
0
回复
2013-08-14 08:06
@贺赫无名
怎么不能关?EN输出低时,Q2关、、MCU复上电是延时一小段时间后,等待S1释放后再开EN。长时间按下需程序好好处理才行。
还要去键抖处理。LOAD端需并大电解
0
回复
rj44444
LV.9
6
2013-08-14 08:20
@贺赫无名
怎么不能关?EN输出低时,Q2关、、MCU复上电是延时一小段时间后,等待S1释放后再开EN。长时间按下需程序好好处理才行。
这些都不是问题关键点,并电解,去抖动这是自然的事情
0
回复
abccba
LV.9
7
2013-08-16 15:09
@rj44444
这些都不是问题关键点,并电解,去抖动这是自然的事情

开关后面的电源也是MCU的供电电源,MCU主动关闭自己的电源,在掉电的过程中看MCU管脚的变化了,如果失电过程中EN还有瞬间拉高的情况,就又自己启动了。不知道考虑的对不对?

0
回复
rj44444
LV.9
8
2013-08-16 15:31
@abccba
开关后面的电源也是MCU的供电电源,MCU主动关闭自己的电源,在掉电的过程中看MCU管脚的变化了,如果失电过程中EN还有瞬间拉高的情况,就又自己启动了。不知道考虑的对不对?
营长厉害!问题确实差不多是这样的。松开关机键后,MCU掉电复位,对于洪晶的51系列,复位时所有管脚都会弱上拉(几百uA的拉电流能力),这就导致EN灌入一个很微弱的电流,MOS处于饱和区,无法关断。
0
回复
abccba
LV.9
9
2013-08-16 16:17
@rj44444
营长厉害!问题确实差不多是这样的。松开关机键后,MCU掉电复位,对于洪晶的51系列,复位时所有管脚都会弱上拉(几百uA的拉电流能力),这就导致EN灌入一个很微弱的电流,MOS处于饱和区,无法关断。

,这个确实不容易发现,但MUC电路的上电初始化状态,在最后核查电路时都要检查一下的。像这个电路就要改成上电IOPin高时,Q2应该是关闭状态,可以把Ra1改成较小电阻接到R3前面,就是ENpin,MCU初始化时再将该pin改成强上拉状态。直接改小Ra1也行吧?

D4的意图不太明白,没看出在什么情况下这点有反压或反流,如果是想提高Q2的开关阈值电压以提高抗干扰性能,Ra1改小以后就不用了。

,这一贴是升官帖,升团级了。

0
回复
rj44444
LV.9
10
2013-08-16 16:45
@abccba
[图片],这个确实不容易发现,但MUC电路的上电初始化状态,在最后核查电路时都要检查一下的。像这个电路就要改成上电IOPin高时,Q2应该是关闭状态,可以把Ra1改成较小电阻接到R3前面,就是ENpin,MCU初始化时再将该pin改成强上拉状态。直接改小Ra1也行吧?D4的意图不太明白,没看出在什么情况下这点有反压或反流,如果是想提高Q2的开关阈值电压以提高抗干扰性能,Ra1改小以后就不用了。[图片],这一贴是升官帖,升团级了。

恭喜恭喜!D4没有使用。实际上最后仍然沿用了这个电路结构,不过将R3和Ra1改小,保证弱上拉的电流在Ra1上的压降不足以开启Q2 就行了

0
回复
2013-08-17 08:04
@rj44444
恭喜恭喜!D4没有使用。实际上最后仍然沿用了这个电路结构,不过将R3和Ra1改小,保证弱上拉的电流在Ra1上的压降不足以开启Q2就行了
很多IO口输出场合是需要上电复位后直接输出低电平的。MC51是需要接较小的下拉电阻才能实现。
0
回复
2013-08-17 08:08
@贺赫无名
很多IO口输出场合是需要上电复位后直接输出低电平的。MC51是需要接较小的下拉电阻才能实现。
D3好像也没有啥用啊,应该可以省掉,D4是为了抬高Q2射极电位,目的是EN必须1.2V以上才能开启Q2。
0
回复
rj44444
LV.9
13
2013-08-17 10:08
@贺赫无名
D3好像也没有啥用啊,应该可以省掉,D4是为了抬高Q2射极电位,目的是EN必须1.2V以上才能开启Q2。
D3不能省,应为电池是12V铅酸电池,IO不能承受这个电压
0
回复
dapeng
LV.5
14
2013-08-19 08:17
@rj44444
D3不能省,应为电池是12V铅酸电池,IO不能承受这个电压

Ra1上面并一个电容呢?

0
回复
2013-08-19 09:11
@rj44444
D3不能省,应为电池是12V铅酸电池,IO不能承受这个电压
隔离那个12V的
0
回复
ljhyjx
LV.1
16
2013-08-21 12:27

我以前用三极管(Q1也用三极管)做的电池开关也遇到这个问题。试了好多办法,不能用增大R3来解决,因为那将导致Q1不能饱和导通,也试了用电容的办法都不行。

最后解决办法是把EN再接一个PNP三极管,c极接EN,e极接LOAD,b极串电阻接单片机IO口,把你的程序改为:导通时该IO口为0,要关断时让他为1就行了。这样即使单片机失电时该IO口有正电压,这个PNP三极管也是截止状态。

0
回复
abccba
LV.9
17
2013-08-21 16:19
 
0
回复
abccba
LV.9
18
2013-08-21 16:32
@abccba
[图片] 
 
0
回复
rj44444
LV.9
19
2013-08-21 21:58
@abccba
[图片] 
这些都没试,因为我按照之前的方法把解决了,这只是UPS中的一个开关机部分。我自己不会写程序的,所以,我不能回答团长。
0
回复
abccba
LV.9
20
2013-08-21 22:28
@rj44444
这些都没试,因为我按照之前的方法把解决了,这只是UPS中的一个开关机部分。我自己不会写程序的,所以,我不能回答团长。

,我也是把电路当爱好,没事的时候来消遣。在这里发的电路我也是没试过,只是单纯地交流,说不准哪位再遇到时可能有一些帮助。上面的图是不能通过发射极接IO口来检测开关S1状态的,原因是IO口所设置或缺省的弱上拉模式时,这个口线不会有下拉到地的电流,所以在开关接地后,该IO口依旧保持高电平,不过可以加以改进就可以,这样的话就只需一条口线即可实现开关检测又可以回锁开关:

 

0
回复
rj44444
LV.9
21
2013-08-22 08:48
@abccba
[图片],我也是把电路当爱好,没事的时候来消遣。在这里发的电路我也是没试过,只是单纯地交流,说不准哪位再遇到时可能有一些帮助。上面的图是不能通过发射极接IO口来检测开关S1状态的,原因是IO口所设置或缺省的弱上拉模式时,这个口线不会有下拉到地的电流,所以在开关接地后,该IO口依旧保持高电平,不过可以加以改进就可以,这样的话就只需一条口线即可实现开关检测又可以回锁开关:[图片] 
呵呵,按照你说的,应该是可以的。我的程序都是找别人写的,我只提出要求
0
回复
ztb1
LV.1
22
2013-09-10 15:46
@abccba
[图片],我也是把电路当爱好,没事的时候来消遣。在这里发的电路我也是没试过,只是单纯地交流,说不准哪位再遇到时可能有一些帮助。上面的图是不能通过发射极接IO口来检测开关S1状态的,原因是IO口所设置或缺省的弱上拉模式时,这个口线不会有下拉到地的电流,所以在开关接地后,该IO口依旧保持高电平,不过可以加以改进就可以,这样的话就只需一条口线即可实现开关检测又可以回锁开关:[图片] 

也来凑个热闹:下面这个图K1按下后没有单片机也可以保持供电。单片机复位后PWOFF设置为输入模式,当读取到低电平时变为输出模式,输出低电平关闭电源。这个图的好处是当MOS开关管改为NPN晶体管后可以适应接近Vcc的低电压的输入,这时R5就不能是0了,正常供电时要使得3.3V线的电压接近3.3V。

 

0
回复
anflower
LV.2
23
2013-09-11 17:08
@ztb1
也来凑个热闹:下面这个图K1按下后没有单片机也可以保持供电。单片机复位后PWOFF设置为输入模式,当读取到低电平时变为输出模式,输出低电平关闭电源。这个图的好处是当MOS开关管改为NPN晶体管后可以适应接近Vcc的低电压的输入,这时R5就不能是0了,正常供电时要使得3.3V线的电压接近3.3V。[图片] 

关注

 

0
回复
rj44444
LV.9
24
2013-09-11 21:09
@ztb1
也来凑个热闹:下面这个图K1按下后没有单片机也可以保持供电。单片机复位后PWOFF设置为输入模式,当读取到低电平时变为输出模式,输出低电平关闭电源。这个图的好处是当MOS开关管改为NPN晶体管后可以适应接近Vcc的低电压的输入,这时R5就不能是0了,正常供电时要使得3.3V线的电压接近3.3V。[图片] 
嗯,这看似也是一个不错的方法
0
回复
oufei19
LV.3
25
2013-10-09 15:51
@abccba
[图片],我也是把电路当爱好,没事的时候来消遣。在这里发的电路我也是没试过,只是单纯地交流,说不准哪位再遇到时可能有一些帮助。上面的图是不能通过发射极接IO口来检测开关S1状态的,原因是IO口所设置或缺省的弱上拉模式时,这个口线不会有下拉到地的电流,所以在开关接地后,该IO口依旧保持高电平,不过可以加以改进就可以,这样的话就只需一条口线即可实现开关检测又可以回锁开关:[图片] 
这个电路能关机吗?开机后,按EN等于没按
0
回复
dsc78
LV.2
26
2013-12-07 21:46
@abccba
开关后面的电源也是MCU的供电电源,MCU主动关闭自己的电源,在掉电的过程中看MCU管脚的变化了,如果失电过程中EN还有瞬间拉高的情况,就又自己启动了。不知道考虑的对不对?
开机时判断on/off那个IO口就可以了
0
回复
48125W
LV.2
27
2014-01-08 12:11

一键开关机?

就直接在电源回路串联个开关可以么?

0
回复
2016-02-22 16:19
看看
0
回复