广告

【博客大赛】即将量产,一个上电时序,我们“灭火”的战斗坚持到黎明 ...

2018-6-14 17:31 5464 7 8 分类: 汽车电子 文集: 技术经验分享
     现在快速发展的社会,我们都很浮躁。大家都基本贴上了急功近利的标签。市场总是变化的,当看到一个方向有利可图的时候,大家都会像潮水一样涌向那边。于是乎,市场总是逼着研发快速出产品。所以现在的产品开发周期短,成本要求低,客户体验好,质量把控严。这些标准对技术工程师的要求也越来越高。殊不知,做产品是一门工程学,一个好的产品也是“十年磨一剑”的。历数那些留在人们心中的品牌产品无不是经过多少年慢慢磨练出来的。这不故事就是由此来的。
     给客户做的一个产品还有一个月就要量产了,突然接到上级通知,产品里的一个模块需要切换供应商。虽然产品开发的流程与制度,那些条条框框都摆在那,但是领导的一句话,所有的这些都会变成扯淡。只有硬着头皮,顶着一个月的压力,撸起袖子开干。模块与我们产品的接口是不能变的,只需做一个同样尺寸的模块,就可以满足要求。所以自己评估下硬件工作量也不是很大,软件自己评估了下也可行。
   参考芯片的datasheet,做好原理图,发给原厂FAE , check后做了修改,就开始lay板了。开始还进展顺利,PCB出来,贴片完成,把新模块贴到机器上,交给软件调试了。软件与我们不在一起,机器寄给他们调试,一个多星期后,发过来个版本说可以测试。离导入量产只剩下半个月了,只能抓紧时间测试,期待尽早发现问题,不然,等到量产时候如果有问题自己只有哭了。
    测试了几次,问题就来了。发现偶尔机器上电,这个模块的功能点击应用没有反应。查软件,发现在没有反应的时候,软件I2C读取芯片里面的寄存器,却读不到数据。硬件开始查模块AVDD3.3V和DV33供电(开始只测试了模块的22个PIN脚信号),未发现异常。测试了复位信号RESET#,复位时间也满足要求。继续测试,每次I2C上也有数据发给模块,但是异常时候却收不到模块应答。苦苦思索,没有答案。

继续测试,发现模块不是每次起不来。如果断电久一点,再上电,模块就起不来,但是如果断电后马上上电,模块就会OK。貌似发现了攻城的突破口,一丝激动。应该与上电时序有关系。马上查datasheet,查找芯片的上电时序。一瓢冷水突然泼过来,芯片有好几个引脚供电,但是没有上电时序的详解,打电话问FAE,了解到这个芯片也是第一次开始量产,目前规格书确实没有上电时序的介绍。天啊,这芯片尽然在我们这开始量产,而且还在这么短的时间,顿时没有了信心。懈怠了会,只有继续,谁让咱们是做技术的。做技术和当兵一样,技术工程师如果怕问题和当兵的怕打仗没啥区别,量产前发现的问题逃避不解决,就如战场上的逃兵。

只有继续用示波器对比测试芯片各个电源引脚断电后马上上电与等会再上电看看电源引脚上有无异常。开始怀疑某个电源必须先上电才行,因为断电后放久一点再上电异常,断电后马上上电OK。过一段时间后应该是某电源上有电容放电完了,而马上上电上一次电容上的电荷还没有放电完毕,立刻再上电相当于提前上电了。顺着这个思路继续与FAE用示波器测试,果然不出所料。

此芯片需要3.3V和1.8V 2种电源。LDO2_EN,DCVDD1和DBVDD1我们用模块引脚的3.3V直接供电,而LDO_IN我们用3.3V在模块上通过LDO转换过来的。LDO2_EN通过100K上拉电阻连接到3.3V。继续测试发现在LDO2_EN有猫腻。芯片异常的时候,LDO2_EN有0.9V电压,而芯片正常时候,LDO2_EN有3.3V电压,估计0.9V电压偏低无法使能LDO2,所以芯片不能正常工作。示波器继续抓取波形:

继续抓取Power on 与 Power off波形如图4:

原因慢慢露出水面,可能LDO_IN要比LDO2_EN先上电,因为每次断电后立即上电,此时LDO_IN discharging time 小于5 秒,LDO_IN电压还有近400mv,此时芯片上电每次都正常。为了验证,继续做通断电实验,示波器再抓取波形:

为了验证,从模块外另外找到一个比模块3.3V先上电的1.8V电源,飞线到LDO_IN,做通断电实验,发现每次OK。不管什么时候上电芯片都正常工作。奋战到这一步,大家都欣喜不已。抓紧再验证了2台机器,通断电实验,也是每次OK。到此刻,大家才确定算找到了原因,下一步就是找到最优化的解决方案,最小化的改动PCB板,最低成本的解决问题,最短时间的导入。

     讨论后,决定在板上增加2个三极管控制,用LDO_IN 的1.8V使能3.3V后得到LDO2_EN的3.3V,这样保证LDO_IN_1.8有电压后,才会有LDO2_EN的3.3V。其它地方没有做改动。改PCB板后,立即回来焊接了10PCS,装了10台机器,做通断电实验没有发现此问题了。终于在量产前解决了这个硬件的BUG。


    晚上的加班测试,分析,直到最后有了初步定论后大家都身心疲惫,看看时间已经是凌晨3点多。晚餐为了节省时间,大家点的外卖麦当劳。回到家,洗漱后,看看窗外,黎明的曙光已经照射进来。不管怎么问题总算解决了,可以安心的睡觉了,也许下一个灭火的战斗还在等待这我,但是我们还是要及时总结,避免这样的问题再次发生。

   总结一下,在我们设计的时候,每一个细节还是要确认好,上电时序是最基本的要求,一定要按照datasheeet来设计。顺便说一下,后来FAE联系了芯片原厂,芯片也确实有这样要求,只是在datasheet上没有体现。虽然没有体现,但是作为工程师做设计,这些基本的考虑是我们必须要主动确认好的。一个小小的疏漏,导致你可能奋战一个通宵。如果在量产后再发现,后果会更严重。以此为教训,分享出来给大家,希望大家以后在做设计的时候都注意。同时我们还必须注意夯实自己的基础,即使时间再紧张,基础不能丢,很多时候出问题都是因为基础不扎实引起的。


 
    
广告

文章评论 1条评论)

登录后参与讨论

szyhlan_397802806 2018-6-16 16:21

嗯,好像很有道理,但好像也很悲哀,假如这个问题解决不了,那么要怎样给客户回复呢?企业的信誉在哪里呢?而问题出在哪里呢?是工程师不行么?还是工程师不够努力呢?显然都不是,但企业损失却是必然的,显然是这个模块的变更指令除了问题,是否可以这样更改,显然这更改决定没有考虑到可能的风险,可见企业做出这样的更改决定无疑是一种赌博心理,这也反映出企业并没有充分规划,完全是随意性,而企业依赖于工程师的加班加点来完成,而新产品的开发并非简单工作量堆积,显然是藐视技术的重要性;对于真正的企业家来说,这完全可以在这之前做好模块替换的工作,等到测试验证后无忧替换,又何来的这个被动局面呢?当然,会有很多种理由来证明这临时替换的必要性,但终究是企业没有做好自己,没有规避可能存在的风险,企业管理就是最大限度避开可能存在的风险或以最低的代价转型;虽然结果是在最后一刻解除了危机,但企业并没有意识到危机的存在,这才是最大的悲哀,而未来还有很多很多这样的危机,失手也是在所难免,信誉也就这样逐渐丢失,而这完全是自己的不作为并非外因所致,企业健康、良性发展就只是一句空话,我们都学过ISO9000,而这明明就是违反ISO9000的初衷,可大家却都视而不见,真不知是为了ISO还是为了拿到ISO证书。
相关推荐阅读
book_shine 2018-07-25 09:35
读《活着》有感
   人到中年后不知不觉的都会发现身边的点点滴滴变化了很多。喜欢回忆,老觉得时间过得慢,做选择的时候越来越越困难等等。平时工作之余,晚上睡觉前喜欢看点书,静下心来,走进作者的世界,...
book_shine 2018-06-21 15:00
【博客大赛】不用到PCB板厂-半小时自制2层PCB板
    作为一个电子工程师没有自制几个电子小玩意,估计等到不做电子工程师的时候,蓦然回首,些许会有些遗憾吧。有时候没有去做,估计考虑到成本是一个很大因素。物料成本,PCB板制板成本...
book_shine 2018-06-19 17:16
【博客大赛】断开PCB板上2mm的GND连接,破坏了环路,也解决了BUG ...
        做汽车导航产品也有些年了,主要做硬件工作,前装,后装,加装的产品都做过。人生的道路上有几个岔道口,关键时候的选择也就那几个。毕业时候,也有选择做...
我要评论
1
7
广告