热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

电机过流的一次bug排查记录

一、bug现象描述如下:有一天,某员工给自己的组件换一个语音模块,其中电机和主板是通过单总线连接,据该员工回忆曾经在换语音

一、bug现象描述如下:

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

在这里插入图片描述
电机已经DVT试产,功能和硬件测试已经通过,但是自从该员工操作过后,电机只是有时正常工作,有时工作不正常,通过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的系统硬件中断,同时我们的通讯波形也会被拉低。






推荐阅读
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • 本文详细介绍了Android中的坐标系以及与View相关的方法。首先介绍了Android坐标系和视图坐标系的概念,并通过图示进行了解释。接着提到了View的大小可以超过手机屏幕,并且只有在手机屏幕内才能看到。最后,作者表示将在后续文章中继续探讨与View相关的内容。 ... [详细]
  • 带添加按钮的GridView,item的删除事件
    先上图片效果;gridView无数据时显示添加按钮,有数据时,第一格显示添加按钮,后面显示数据:布局文件:addr_manage.xml<?xmlve ... [详细]
  • 微信小程序导航跟随的实现方法
    本文介绍了在微信小程序中实现导航跟随的方法。通过设置导航的position属性和绑定滚动事件,可以实现页面向下滚动到导航位置时,导航固定在页面最上方;页面向上滚动到导航位置时,导航恢复到原始位置;点击导航可以平滑跳转到相应位置。代码示例也给出了具体实现方法。 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
  • Java图形化计算器设计与实现
    本文介绍了使用Java编程语言设计和实现图形化计算器的方法。通过使用swing包和awt包中的组件,作者创建了一个具有按钮监听器和自定义界面尺寸和布局的计算器。文章还分享了在图形化界面设计中的一些心得体会。 ... [详细]
  • 本文介绍了一个Magento模块,其主要功能是实现前台用户利用表单给管理员发送邮件。通过阅读该模块的代码,可以了解到一些有关Magento的细节,例如如何获取系统标签id、如何使用Magento默认的提示信息以及如何使用smtp服务等。文章还提到了安装SMTP Pro插件的方法,并给出了前台页面的代码示例。 ... [详细]
  • 今日份分享:Flutter自定义之旋转木马
    今日份分享:Flutter自定义之旋转木马-先上图,带你回到童年时光:效果分析子布局按照圆形顺序放置且平分角度子布局旋转、支持手势滑动旋转、快速滑动抬手继续旋转、自动旋转支持X轴旋 ... [详细]
  • 1简介本文结合数字信号处理课程和Matlab程序设计课程的相关知识,给出了基于Matlab的音乐播放器的总体设计方案,介绍了播放器主要模块的功能,设计与实现方法.我们将该设 ... [详细]
  • 今天就跟大家聊聊有关怎么在Android应用中实现一个换肤功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根 ... [详细]
  • android 触屏处理流程,android触摸事件处理流程 ? FOOKWOOD「建议收藏」
    android触屏处理流程,android触摸事件处理流程?FOOKWOOD「建议收藏」最近在工作中,经常需要处理触摸事件,但是有时候会出现一些奇怪的bug,比如有时候会检测不到A ... [详细]
  • SmartRefreshLayout自定义头部刷新和底部加载
    1.添加依赖implementation‘com.scwang.smartrefresh:SmartRefreshLayout:1.0.3’implementation‘com.s ... [详细]
  • python3 logging
    python3logginghttps:docs.python.org3.5librarylogging.html,先3.5是因为我当前的python版本是3.5之所 ... [详细]
  • 详解Android  自定义UI模板设计_由浅入深
    学习安卓已有一些日子,前段时间整理了不少笔记,但是发现笔记不变分享与携带。今天开始整理博客,全当是与大家分享交流与自身学习理解的过程吧。结合最近在做的一个新闻类app及学习中的问题,一点一点整理一下, ... [详细]
author-avatar
涅槃重生武哥
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有