您的位置:首页 > 其它

使用光耦隔离PWM信号的经历

2014-04-26 00:15 831 查看

光耦合器(opticalcoupler,英文缩写为OC)亦称光电隔离器或光电耦合器,简称光耦。它是以光为媒介来传输电信号的器件,通常把发光器(红外线发光二极管LED)与受光器(光敏半导体管)封装在同一管壳内。当输入端加电信号时发光器发出光线,受光器接受光线之后就产生光电流,从输出端流出,从而实现了“电—光—电”转换。以光为媒介把输入端信号耦合到输出端的光电耦合器,由于它具有体积小、寿命长、无触点,抗干扰能力强,输出和输入之间绝缘,单向传输信号等优点,在数字电路上获得广泛的应用。

以上是光耦合器的定义,我使用光耦隔离电机的输入PWM信号,信号的频率为10KHZ,周期为100us。
在使用光耦前我只对它的工作原理有了解,唯一的使用是在搞智能车时,队友设计硬件时用了一个光耦,我只是负责写程序,对如何硬件设计也没有深入的学习。现在搞履带机器人要用到光耦隔离PWM信号,起初我使用的是EL357N,这一个是老师推荐的,他说可以使用,我也就直接用上了,输入输出端上拉电阻都是随意写的1K。设计的PCB

原理图如下:

当时R42和R43都是1K,两端输入高低电平也反过来了,当时没有考虑好,等板子回来以后才意识到这个问题,没办法了,只能用软件来调节了,能用软件来解决的问题还不是大问题,关键是输出信号和输入信号的频率不一致,输出的频率是10KHZ,但占空比完全对不上了,将光耦重新焊上也还是不行,程序是完全没有问题的,我想就有可能是硬件设计上出题,于是我找datasheet,开始在各个数据上找解决方法。

二极管的电压Type Value
是1.2V,最大是1.4V,这不是关键,关键是电流条件是20mA,我想是不是我输入端电阻太大,以至于不能产生足够大的电流来驱动二极管,于是我改了一下电阻,输入为5V电压,二极管压降为1.4V,电流为20mA,(5V-1.4V)/20MA=180欧,我选了一个240欧的电阻,焊上去以后实际测试,发现低占空比可以有输出波形,但波形是不对的,我又查看技术文档,发现输出的负载电阻也是有限制的,如下图:

从图中可以看出LoadResistance越小,开关时间就越小,这时我再看我的波形,发现上升时间

是太长了,所以我换了一个小的电阻360欧,发现明显波形是比以前正常多了,但上升时间还

是很大,可以看出输出的趋势是遵循输入的占空比的,但就是上升时间太长,对致输出的波

形看起来好像换了一个占空比,输出到电机H桥的IR2104后,IR2104的控制输出信号就会与起初设定的占空比严重不符。

这时我再看芯片资料里面它有没有提到上升时间或延迟时间,我就发现这个了:

上升时间就有18us,我一个周期才有100us,怪不得波形会乱呢,总算找到原因了,这个光耦芯片不能达到我想要的频率。

我只能换一个芯片,这一次用了HCPL2630,芯片资料上显示可以达到MHZ级别的隔离,图如下:

使用以后发现果然如芯片资料写得一样,10KHZ的输入波形,输出也是一样的占空比,波形一点没乱,PCB原理图如下,当然电阻也是经过测量的,我输入输出电阻都是用的470欧,满足输入端对于电流的要求。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: