你永远想象不到,用户把你的产品用在哪了!
扫描二维码
随时随地手机看文章
具体是这样的:一个很简单的串口RS485电路,如下图所示,用了这个电路后,就不要单独信号去管理485芯片的收发分时了(是不是很方便,我也这么想的)。
问题就是出现在这个电路上,我们做环境实验的时候,是在55℃做的一点点问题都木有,该收收,该发发。但是一到了用户那里,工作一小会就挂了,啥也木的了。经过本人的现场排查(踩点),你知道用户放在哪里吗?他放在一个发热量巨大的发动机旁边(我TM,算了客户是上帝)!
本人亲自实际测了一下周围环境温度都48℃以上,而且为了防尘,我的板卡和一个发热巨大的主控放在一个盒子里面,并且还没有风扇,这就导致盒子里面的温度至少70℃(你们是要搞烧烤吗)。那个安装环境啊,没法说,还不方便测量,我也很绝望啊!
然后我灵机一动,就对身后的嵌入式软件小哥说,是不是你软件配置有问题,人家ARM高温了会降频,你是不是没有配置好,导致收发有问题的(因为暂时我也不知道问题所在啊)。
回到公司后,我就用热风枪使劲对着ARM吹,结果毛事没有,好家伙,锅是甩不掉了,剩下的电路一步一步的吹吧,当吹到三极管时(图中Q4),果然没得数据了,看来是三极管的事情。可是祸不单行啊,不吹后,当温度降下来了也没得数据了,难道吹坏了?
仔细一瞅,嘿!把电阻给吹掉了(F***,在硬件的道路上一帆风顺是不存在滴),焊上电阻后调小风量,加大热度继续吹,还是出事了,那就目标锁定,测波形吧。
分别测量上图中所标识的1、2、3点,其中电路设计中用的限流电阻为1K,三级管为9013。首先测量在常温下三个测试点得波形吧,第一点波形为隔离芯片ADuM1201输出引脚,其波形如下图所示,输出电压幅值为5V(忽略掉背景那个人影)。
第二点波形为9013三级管基极控制电压,其波形如下图所示,输出电压峰值约为700mV,波动范围约为200mV,即当电平为0.7V时三极管导通,当电平为0.5V时三级管关断。
第三点波形为9013三级管集电极极电压,其波形如下图所示,输出电压幅值约为5V。
然后本人吹风小能手上线,对着就是一顿猛吹,另一个手还要测波形,幸好没有烫出泡(不然就算工伤)。重新测量了上述三个测量点,第一点的波形如下图所示,波形和加热前波形基本一致,所以即加热并不会改变ADuM1201隔离芯片的输出电压特性。
那么继续测量第二点吧,当继续加热到温度约为55℃时,第二点波形如下图所示,其电压的波动范围变小约为100mV即高电平减小到0.6V,但是低电平还是约为0.5V。随着温度的继续升高,当温度到65℃时,第二点电压基本保持在0.5V,且三极管保持导通状态,因此RS485无法实现数据的发送。
好了,第三点上线,当加热到温度约为55℃时,第三点波形如下图所示,随着温度的升高,第三点出电压保持为低电平,RS485电路为接受状态。
我K这不是坑我吗,让我来瞅瞅这三极管的特性吧(谁让我上学的时候没有好好学习呢),三级管的物理结构为两个PN结,其Ube电压特性如下图所示,其开启电压约为0.7V,而且基极与发射电压特性与二极管特性相同。
右下图可以知道,随着温度的升高,Ube的特性曲线整体右移,因此三级管的导通压降降低,使得控制MAX485芯片的RE引脚一直处于低电平,所以无法发送数据。
既然知道温度对三极管的影响了,那我改呗,由上面的分析可以知道,最终三极管基极钳位到0.5V,是因为5V上拉10K电阻与1K限流电阻分压后将三极管基极钳位到0.5V。将限流电阻R65改为0R后波形如下图所示,可以看出电压波形在0V到0.7V之间波动。
改为0R限流电阻后,继续加热RS485电路,波形如下图所示,可以看出波形无明显变化,且串口可以正常发送数据。但由于三极管的基极将ADuM1201发送引脚强制拉倒0.7V,增大了ADuM1201的输出电流,长期运行时会对器件寿命有严重影响,不改彻底了不是我的性格(主要是怕日后在找我麻烦)。
为了彻底解决这个问题(一劳永逸),经过我苦思冥想(假的),根据三级管的温度特性,导致了在高温运行下基极门限电压降低。若只是将ADuM1201输出限流,电阻减小,会造成器件寿命减少,影响产品质量。因此,现将三极管9013改为MOS管GMS2302,由于MOS管为压控型器件,其本身不会消耗太多功耗。
MOS管GMS2302常温下,栅极电压波形如下图所示,可以看出波形范围为0V到5V。
MOS管GMS2302温度约为80℃下,栅极电压波形如下图所示,其电压波形无变化且串口可以正常发送数据。
所以呢,在设计中,我要有刨根问底(躲坑)的精神,把问题彻底解决了。
这个案例是我亲生经历的一个案件,虽然不大,但很具有借鉴意义——最后得出的结论就是:可以指导我们在以后硬件设计过程中,若作为开关使用最好选择MOS管,且合理选择限流电阻。
好了,到此结束。
作者:叫啥才能不重名呢