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

news2025/6/2 0:28:37

一、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的系统硬件中断,同时我们的通讯波形也会被拉低。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/334725.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小白系列Vite-Vue3-TypeScript:007-配置axios并封装api

上一篇我们介绍了ViteVue3TypeScript项目中Element Plus的安装和配置,本篇我们来介绍一下如何配置axios并封装api。axios是一个基于promise的HTTP库,可以用在浏览器和node.js中,其最大的亮点就是支持了ES6里的Promise Api。废话不多说&#x…

Node =>Express学习

1.Express 能做什么 能快速构建web网站的服务器 或 Api接口的服务期 Web网站服务器,专门对外提供Web网页资源的服务器Api接口服务器:专门对外提供API接口的服务器 2.安装 在项目所处的目录中,运行以下命令,简装到项目中了 npm …

ChatGPT与马斯克 在 “ 遥感 ” 中的初探索

有人说:一个人从1岁活到80岁很平凡,但如果从80岁倒着活,那么一半以上的人都可能不凡。 生活没有捷径,我们踩过的坑都成为了生活的经验,这些经验越早知道,你要走的弯路就会越少。 1前言 文章开始前&#x…

栈和队列基本原理

栈和队列基本原理1.栈1.1 栈基本原理1.2. 栈操作步骤1.2.1 插入数据流程【压栈】1.2.2 移除数据流程【出栈】1.3. 栈代码实现2.队列2.1 队列基本原理2.2 队列操作步骤2.2.1 插入数据2.2.2 移除数据2.3. 队列代码实现3.栈与队列对比1.栈 1.1 栈基本原理 栈顶【末尾】&#xff…

突破边界:“超融合+”带来的商业化精益之路

相信大家都看了《流浪地球2》,其中人类一次次超越极限,以勇气和责任完成伟大征程的情节让我们深深感动。在现实的科技发展中,我们可能不会像科幻作品那样完成惊险万分地完成突破。但超越极限,却时时刻刻发生在科技产业当中。“超融…

K_A12_002 基于STM32等单片机采集光敏电阻传感器参数串口与OLED0.96双显示

K_A12_002 基于STM32等单片机采集光敏电阻传感器参数串口与OLED0.96双显示一、资源说明二、基本参数参数引脚说明三、驱动说明IIC地址/采集通道选择/时序对应程序:四、部分代码说明1、接线引脚定义1.1、STC89C52RC光敏电阻传感器模块1.2、STM32F103C8T6光敏电阻传感器模块五、基…

星河案例 | 冲量在线助力中国电信打造数据要素融通与AI能力开放外拓新范式

2022 年大数据“星河”案例征集活动由中国信息通信研究院、中国通信标准化协会大数据技术标准推进委员会(CCSA TC601)共同组织,旨在促进大数据技术产品及相关产业发展,加快培育数据要素市场、充分发挥数据作为生产要素的独特价值,树立行业标杆…

OnGUI Box 控件||Unity 3D OnGUI 常用控件

OnGUI Box 控件Unity 3D Box 控件用于在屏幕上绘制一个图形化的盒子。Box 控件中既可以显示文本内容,也可以绘制图片,或两者同时存在。GUIContent 和 GUIStyle 对于 Box 控件同样适用,既可以用来修饰 Box 控件的文本颜色,也可以用…

第2章 信息系统项目管理基础

项目管理基础 项目的概念 项目是为提供一项独特产品、服务或成果所做的临时性努力。 项目的特点 主要特点(PMI归纳的) 临时性,独特的产品、服务或成果,逐步完善其他特点 资源约束:资源成本是项目成功实施的约束条件之…

预测物联网设备健康状态,你可能需要这套解决方案

1. 应用场景随机振动[注1]会发生在工业物联网的各个场景中,包括产线机组设备的运行、运输设备的移动、试验仪器的运行等等。通过分析采集到的振动信号可以预估设备的疲劳年限、及时知晓设备已发生的异常以及预测未来仪器可能发生的异常等等。本篇教程会提供给有该方…

小白系列Vite-Vue3-TypeScript:008-安装配置mock

上一篇我们介绍了ViteVue3TypeScript项目中axios的安装和配置,并手动封装了api。本篇我们来在上篇基础上介绍如何引入mock,并在本地模拟后台接口请求来达到本地测试的目的。在现在前后端分离的开发模式中,前端页面很多渲染的数据都需要通过ht…

仿真及设计工具下载安装方法详细说明

标题仿真及设计工具下载安装方法详细说明 软件的下载: 物流仿真的软件下载请进入:链接: https://pan.baidu.com/s/12iP3TTkXw-D5DAMu3mQbwQ 提取码: 8888里面放置了所有版本的软件 可以根据自己的使用环境进行选择下载最新版本。软件的安装&#xff1a…

CUDA中的图内存节点

CUDA中的图内存节点 文章目录CUDA中的图内存节点1. 简介2. 支持的架构和版本3. API基础知识3.1. 图节点 APIs3.2. 流捕获3.3. 在分配图之外访问和释放图内存3.4. cudaGraphInstantiateFlagAutoFreeOnLaunch4. 优化内存复用4.1. 解决图中的重用问题4.2. 物理内存管理和共享5. 性…

C. Least Prefix Sum codeforces每日一题

🚀前言 🚀 大家好啊,这里是幸麟 🧩 一名普通的大学牲,最近在学习算法 🧩每日一题的话难度的话是根据博主水平来找的 🧩所以可能难度比较低,以后会慢慢提高难度的 🧩此题标…

ImportError: /lib64/libm.so.6: version `GLIBC_2.23‘ not found问题解决方法

1.环境:Centos7,GCC version 9.1.0,python3.7,TensorFlow1.14.0.因为/usr/lib64/libstdc.so.6: version CXXABI_1.3.8 not found问题,我将GCC版本升级到了9.1.0,但是运行TensorFlow的时候出现了ImportError…

网页CAD开发快速入门

演示说明 提示:目前提供两种在网页中浏览编辑CAD图纸方案,详细说明见:MxDraw帮助 网页中打开CAD最简步骤: 第一步: 安装插件运行环境,下载安装(可能需要退杀毒软件):https://demo.mxdraw3d.com:3562/MxDrawx86Setup…

Python语言零基础入门教程(十一)

Python 列表(List) 序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。 Python有6个序列的内置类型,但最常见的是列表和元组。 序列都可以…

springboot 关闭所有日志,包括起始springboot图标和运行输入日志

关闭所有日志分2部分: 1 关闭运行输出日志 , 2 关闭springboot启动图标 1 关闭运行输出日志 (这里没有使用日志框架设置日志) 在 application.properties 中 添加 logging.level.你自己项目的包名off例如:logging.level.com.example.licenseoff 注:of…

leetcode 2306. Naming a Company(命名公司)

字符串ideas中有一系列的名字,用这些名字给公司命名,命名规则如下: 在ideas中选出2个不同的单词,交换它们的首字母, 交换首字母后的两个单词如果不和ideas中的任一单词相同,那么就可以用它们命名&#xff0…

Vue - 驼峰和短横线分割命名注意事项

Vue - 驼峰和短横线分割命名注意事项一. 驼峰和短横线分割命名注意事项1.1 组件注册命名1.2 父子组件数据传递时命名1.3 父子组件函数传递一. 驼峰和短横线分割命名注意事项 我们一般定义组件的方式有两种: 短横线分隔命名:kebab-case。首字母大写命名…