嵌入式产品偶发性问题定位总结

        本人从事嵌入式研发多年,从有线到无线都略有涉及,下面谈谈我对关于嵌入式产品问题定位的思路和方法。因为普通软件的话,通过打印、仿真、屏蔽二分法都可以判断出来,今天就不多说了,今天分享下一些隐形问题或偶发性问题的定位思路。

         一、有线类

        第一步,查看总线硬件特性。顾名思义,有线类产品分为uart、spi、i2c、sdio、usb等等,如果出现问题,由以下几个步骤处理问题:

        1、首先对总线的硬件特性熟悉,通过示波器查看波形是否正确,这里推荐使用逻辑分析仪,因为抓取波形更方便查看,硬件定位的话用示波器,方便看到纹波。

        2、i2c的话要着重查看发送命令后,对方是否有ACK回复,如果没有的话,在确保地址码以及命令正确后,可以考虑是对方模块的问题。

        3、spi的话要查看CPHA以及CPL等特性,一定要注意CS片选,因为有些设备必须操作前CS拉低,操作完之后CS拉高,如果一直处于拉低的状态,设备操作异常。(这点坑以前有遇到过)

       第二步,总线波形及命令正常情况下的定位。如果在前面总线波形、命令都是正常的情况下,可以考虑是总线另一端的模块或芯片的问题,注意,这里不是说对方芯片坏了,而是由于我们的配置以及坏境造成他们的异常,通常有以下几个方式定位:

       1、注意总线另一端模块或芯片空闲的GPIO一定要上拉或下拉,给个状态。(之前就是由于一个factory管脚没有给个状态,因此偶发性的芯片异常,导致生产次品率居高不下)

       2、总线另一端模块或芯片的复位管脚,一定要注意时间达到预期水平。(之前调试FM1288消回音芯片,由于复位GPIO管脚的复位时间不够,导致模块间歇性的失灵,因为复位时间跟他们规格书上一致,实际上复位时间要长一点才行)

       3、注意上电时序。之前有遇到过一个主控芯片(跑安卓系统的),连接一个串口设备,每次开机都有一定几率出现蓝牙异常,找了厂家多次定位问题,始终没有得到解决,后来通过定位发现,如果把串口设备去掉,就好了,才得知,每次上电时候,串口设备与主控芯片上电速度不同步(主控芯片是通过串口设备那段供电而来),因为电流通过串口回流到主芯片,从而导致主芯片没上电,串口端都有电流流过,因此出现异常,这个定位也花了蛮久时间

       以上是定位问题得到的一点点经验,分享出来供大家参考,有其他说明问题一起分享

你可能感兴趣的:(经验分享)