打印

单片机控制继电器不稳定问题

[复制链接]
18147|97
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
用TI的8051核心的MCU控制继电器来完成白炽灯的开关动作。
电路图如下:

1.用直流稳压电源从整流桥正负极输入24V电压,不带负载灯,MCU工作正常功能正常。
2.从阻容降压取电,带负载灯,控制pin每隔三秒输出不同电平。一般只有第一次能点亮负载的白炽灯,其后会出现MCU死机,Flash被擦除,控制IO电平刚置高即被拉低,还有控制间隔时间混乱(比如六秒高,十秒低)等等情况。
开始认为是阻容降压提供的电流不够,但是接DC稳压电源,限流到40mA发现MCU工作稳定,继电器工作正常;然后认为是2N5551没有被正常驱动,后来发现在DC供电情况下,三极管工作正常。
现在的主要状况是,上电后,过三秒控制pin拉高,继电器吸合,负载灯亮,然后三秒后正常关闭,再过三秒后继电器有吸合的声音,但是灯不亮,控制pin地电平(怀疑是高电平后迅速被拉低,所有有动作音,但是实际没吸合),然后再过三秒,还是能听到释放的声音,但是此后的循环都看不到灯亮,只能听到继电器动作的声音。如此几个循环后,MCU死机或者flash被擦除。
Layout如图:

请教大家对于目前这种问题的看法,你认为rout cause在哪里?
如果是继电器干扰的问题,请不吝给出解决方案,因为该产品是小型化的产品,所以PCB尺寸有限,relay估计会贴着MCU放的,这种不稳定会是致命的。
评论
13413697407 2019-5-11 00:17 回复TA
高手在吗,我的使用电源模块(220转5)控制继电器,出现继电器无法一直吸合的状态,继电器一直吸断吸断咋办 

相关帖子

沙发
康康同学| | 2011-7-8 23:23 | 只看该作者
我的一个产品用AVR控制继电器动作的时候也出现这种问题,死机或flash被擦除,难道一定要隔离?

使用特权

评论回复
板凳
DivingBear|  楼主 | 2011-7-8 23:48 | 只看该作者
我手里有个用PIC16F667控制继电器的动作,用的都是最简单的电路,几乎没有什么保护,但是工作很正常,所以我怀疑和LAYOUT有关系。

使用特权

评论回复
地板
t.jm| | 2011-7-9 08:33 | 只看该作者
不记得你之前是不是问过这个电路的,看起来好像!
建议你:
1)U33改为固定的78L33,能减小U33自身的静态电流,R78改为4.7K(减小一切不必要的电流)!
2)把C47改为470uF/35V的,(63V电压太高了没必要,47uF小了点)。

使用特权

评论回复
5
DivingBear|  楼主 | 2011-7-9 11:57 | 只看该作者
之前确实问过这个电路,不过是主要是前半部分的降压整流的部分。后续调试的时候,发现单片机和继电器工作不正常,感觉阻容降压提供的电流应该足够了,我用DC稳压电源限流20mA@24V,至少MCU工作没有出现异常。而我换用1uF的电容,能提供60mA的电流,MCU反而不能稳定工作,会出现各种异常。
1)U33改固定的78L33确实能减少静态电流,谢谢。R78我调过到过10K,电流没有明显变化。
2)C47我目前用的是100uF/50V的,考虑到浪涌和叠加等安全因素,选择两倍电压的耐压值是比较安全的。
看来Jm你是倾向于供电不足导致MCU工作异常吧?

使用特权

评论回复
6
jjjyufan| | 2011-7-10 09:51 | 只看该作者
安规电容用的多大的?MCU端稳压电容加大点,
关键在于继电器吸合的时候,你量下C47端电压,电压过低,虽然可以听到吸合声音,但未必会真的吸合。
之前做过忒多的阻容降压遥控开关,有问题可以站内信

使用特权

评论回复
7
DivingBear|  楼主 | 2011-7-10 15:36 | 只看该作者
谢谢Jjjyufan的解答。
安规电容现在用的0.68uF,然后我在C47和稳压管之间加了一个100Ω@1/2W的限流电阻,然后测量C47的端电压,继电器不动作的时候28.8V,继电器吸合的时候26.8V。因为未隔离,所以不敢用示波器量,用的万用表量得,有没有瞬间的drop不知道。但是我用DC稳压电源给系统供电的时候,用示波器抓过3.3V,继电器动作的时候PK-PK才120mV。
周六又做了几个小实验,我越来越怀疑是继电器在释放的时候,输出端有大的电磁扰频干扰了MCU的地,造成MCU死机,复位,控制IO输出电平变化,计数器紊乱等问题。理由如下:
1.在继电器输出端接上220v的负载(白炽灯或者节能灯),第一个开关循环能正常完成,第二个循环就无**常吸合了,而且时间间隔也跑乱了,而虽然可以听到继电器闭合的声音,但是量控制脚的电压接近0,这时候的GND可能都已经变化了。
2.不接负载,只接220V交流电,开关的循环间隔时间正常,偶有不闭合的情况
3.不接220V交流电,MCU控制下的继电器工作正常。
基于这种考量,我在想应该从两方面入手,一方面在继电器输出端加保护电路,抑制继电器释放时候产生的电磁干扰,一方面加强MCU的抗干扰能力,特别是输入电压的抗干扰能力。从LM317的输入端加大电容,在3.3V的输入端也加大电容等等,还有要从layout入手,比如单点接地。
想继续请教你,输出端的保护电路,MCU的电压保护方面的元器件选择应该如何入手?还有layout方面还有什么要注意的?谢谢

使用特权

评论回复
8
t.jm| | 2011-7-11 08:30 | 只看该作者
把C47改为470uF/35V就可以了,有D10稳压35V耐压就够了。

使用特权

评论回复
9
DivingBear|  楼主 | 2011-7-11 09:27 | 只看该作者
谢谢t.jm的回复,好的,我把C47放大。
请教各位专家,可有什么好的方案能保护继电器输出端在闭合放开阶段的电磁干扰呢?

使用特权

评论回复
10
jjjyufan| | 2011-7-11 09:39 | 只看该作者
貌似你的安规用大了,
之前我做这类产品,安规都是用的0.33uf 带个24V(汇港16A的哪种)继电器,78l05整流5V供MCU,继电器未吸合时电压为28V,吸合时20V,
后端3.3V,你的电流需要多大?你的MCU在什么未知,是用引线接到另外一块板子上的吗?

使用特权

评论回复
11
jjjyufan| | 2011-7-11 09:41 | 只看该作者
另外建议你找个10-30W的隔离变压器,
上示波器看看

使用特权

评论回复
12
t.jm| | 2011-7-11 09:41 | 只看该作者
如果电源没问题,被一个继电器吸合、断开就干扰的MCU最好就别用了,就算在线圈那里加些电阻电容就不被干扰也要换其它的。

使用特权

评论回复
13
t.jm| | 2011-7-11 11:08 | 只看该作者
13# DivingBear
TI MSP430的产品我也在用,也有控制继电器的,没这个问题的。
这点抗干扰是起码的要求,你这里应该是电源的问题才导致MCU不能正常工作的。

使用特权

评论回复
14
jjjyufan| | 2011-7-11 11:30 | 只看该作者
完整的电路图和PCB图再发我看看jjjyufan@126.com

使用特权

评论回复
15
t.jm| | 2011-7-11 11:36 | 只看该作者
LZ测试太慢了,很多人都给了些意见也没见测试信息反馈回来。
请LZ把C47由47uF改为470uF以后的测试结果反馈一下!

使用特权

评论回复
16
DivingBear|  楼主 | 2011-7-11 12:55 | 只看该作者
To T.jm:
抱歉啊,这点儿我确实做的不够好,我没有470uF/35V的,用了3个100uF/50V的并了一下,然后在3.3V输出的位置并了而一个22uF的陶瓷电容,因为不能用示波器,只能定性分析一下,等明天隔离电源到了,我抓一些波形大家参考一下。
1.运行了十几分钟,MCU未出现死机,复位以及被擦除的情况,此为重大改善。但是计数器运行似乎有点问题,不带负载的时候,设定为3秒H,3秒L,带上负载后,变为5,6秒H,5,6秒L,只是这个时间间隔倒是很稳定。
2.继电器大概动作了100次,其中有二十多次负载未闭合,此时用万用表测量MCU输入电压,未见明显的波动。而控制三极管的IO口的电压波动非常大。

使用特权

评论回复
17
t.jm| | 2011-7-11 13:06 | 只看该作者
本帖最后由 t.jm 于 2011-7-11 13:08 编辑

17# DivingBear
你的问题基本可以定性了!
1)C47滤波电容太小导致MCU工作不正常!这个我昨天帮你初步估算过,47uF的滤波纹波是很大的,50HZ时ΔU*47uF*100=40mA(假设为40mA),ΔU=8.5V(很大了)。
2)C253提供的电流太小导致继电器吸合不够可靠!
我是基本有把握改用470uF的电容后会有改善才催你测试的,你就按我4L的建议去做吧。

使用特权

评论回复
18
DivingBear|  楼主 | 2011-7-11 13:09 | 只看该作者
本帖最后由 DivingBear 于 2011-7-11 13:11 编辑

我用DC稳压电源抓了控制IO的电平如下,拉高拉低都未见明显的drop或者ripple。

使用特权

评论回复
19
DivingBear|  楼主 | 2011-7-11 13:11 | 只看该作者
好的,感谢T.jm,我再把电容加大看看。

使用特权

评论回复
20
DivingBear|  楼主 | 2011-7-11 13:33 | 只看该作者
我把电容加大到500uF,情况一如之前,负载时亮时不亮,但是大概跑了20个循环以后,负载常亮,关闭电源再打开也是常亮,控制IO直接输出1.12V,不知道是不是程序被擦除了,正在读

使用特权

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

本版积分规则

9

主题

75

帖子

0

粉丝