电机有时运行正常有时运行出问题的硬件bug排查记录

bug现象描述如下:

  有一天,某员工给自己的组件换一个语音模块,其中电机和主板是通过单总线连接,据该员工回忆曾经在换语音芯片时曾将电源线不小心短路过。

 

电机已经DVT1试产,功能和硬件测试已经通过,但是自从该员工操作过后,电机只是有时正常工作,有时工作不正常,通过Freemaster仿真也不报错

 

 

 

不存存在报错,而且更诡异的是电机有时候可以通讯正常工作,有时通讯无法正常工作。

解决问题过程如下:

第一步、不要下载新程序,保证原来的现场,排查硬件的供电电源5V 和 12V,通过测试发现供电正常,通过读取存在Flash的故障记录,发现故障记录里面没有任何故障,因此该机器没有发生常见的故障:过流,过压,过温等

第二步 、测试不正常工作时的通讯电路波形,发现不能正常工作时,通讯波形是异常的,高电平被拉低,同时通过Freemaster手动启动电机,电机还是无法启动。

第三步、仿真看程序是如何运行的,发现不能正常工作时,程序死在系统默认的一个中断里面

 

 HardFaultHandler  一直进入该系统中断,导致其他比它优先级更低的程序无法得到执行,因此这样也就解释了当我们手动在Freemaster启动电机时,电机也无法启动的原因。

通过询问原厂,如果死在该中断一般的可能的原因,原厂回复如下:

 

因此初步断定不是软件的原因,那么硬件是哪块出现了问题呢?  由于该硬件部分已经量产上十万台,因此硬件的layout初步断定应该是不存在问题的,否则这个问题前期早就暴露出来了

因此只有元器件损坏这个选项了,那么哪个元器件损坏了呢?  回到问题造成的原点,造成这个问题的发生的原因是什么?原因是某员工换系统的模块造成的,那么首先第一怀疑对象就是接耦的部分,

连接的部分就是一个串口电路:

因此怀疑该部分存在问题,首先我们的同事去掉了TVS管D14,发现电机工作正常了。因此初步怀疑TVS管被损坏了,但是诡异的是当我们把TVS管重新安装上去,电机又能正常工作,因此我们怀疑又转向了:是不是该板子的焊接存在问题,因为该板子这个电路存在过返工? 通过先后对比发现一般来说,TVS管焊接错误的可能性比较小,因为该TVS管不焊接时也能正常工作。这个时候某人突然想到了一个点:TVS是一个双向PN结管,是不是存在这样一种可能,TVS的一个方向的PN结是正常的另外一个PN结是坏的。

 

 

我们之所以重新焊接上去能够工作正常只是因为我们正好用了它正常的一个PN结。

想通了这点,我们马上把TVS管调一个头重新焊接一下验证,发现果然出现了电机有时候能正常启动工作有时不能正常启动工作的一模一样的现象。说明我们的判断是合理的,因此这个时候我们应该回到理论上来

为什么TVS管坏,会影响电机MCU的工作呢?回到前面的电路:

 

初步解释如下: 我们TVS管如果遭到损坏了以后,就无法正常的稳压,会存在错误的导通,导致我们的整个MCU的地不干净,因此会频繁出发MCU的系统硬件中断,同时我们的通讯波形也会被拉低。

posted on 2022-09-02 15:01  Ablerry  阅读(345)  评论(0编辑  收藏  举报